天干地支计算

2023-05-16

                            年的干支

方法一:
    首先要能记住十大天干和十二地支,十天干:甲、乙、丙、丁、戊、己、庚、辛、壬、癸;十二地支:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥;
    天干地支纪年法首先是天干在前,地支在后,比如今年2005就为-乙酉年。
    天干算法:
4、 5、 6、 7、 8、 9、 0、 1、 2、 3 对应的十天干就是
甲、乙、丙、丁、戊、己、庚、辛、壬、癸,
数字为年代的最后的一位数字,比如2005年,最后一位是5,对应的天干就是乙;
    地支的算法:用年代数除以12,后面的余数就代表某个地支,
余数分别为:4、 5、 6、 7、 8、 9、 10、 11、 0(能整除)、1、 2、3,
代表地支为:子、丑、寅、卯、辰、巳、午、 未、 申、酉、戌、亥,
    比如2005年为例:年代末尾数为5,对应的天干为乙,2005除以12,余数为1,对应的地支为酉,所以2005年为乙酉年。
方法二:
    对应数字:1、 2、 3、 4、 5、 6、 7、 8、 9、 0
    相应天干:甲、乙、丙、丁、戊、己、庚、辛、壬、癸
    对应数字:1、 2、 3、 4、 5、 6、 7、  8、  9、  10、 11、 0
    相应地支:子、丑、寅、卯、辰、巳、午、 未、 申、 酉、 戌、 亥
    公元年份-3,除以10得余数可得天干,如1984年,(1984-3)|10=1所以天干为甲;
    公元年份-3,除以12得余数可得地支,如1984年,(1984-3)|12=1所以地支为子;
    所以公元1984年为甲子年。
方法三:
      用一个你知道的年份的天干地支来推算,比如用2006年算1955年的天干地支,先要知道2006年是丙戌年,用2006-1955=51,再用51除以10,余数为1,表明天干是丙往前推一位,答案是乙,接着用51除以12,余数为3,表明地支是戌往前推三位,答案是未,那么1955年就是乙未年。  
方法四:
        查表法,前提是你要有个六十甲子表
                                   六十甲子表
       1 甲子 13 丙子 25 戊子 37 庚子 49 壬子
       2 乙丑 14 丁丑 26 己丑 38 辛丑 50 癸丑
       3 丙寅 15 戊寅 27 庚寅 39 壬寅 51 甲寅
      4 丁卯 16 已卯 28 辛卯 40 癸卯 52 乙卯
      5 戊辰 17 庚辰 29 壬辰 41 甲辰 53 丙辰
       6 已巳 18 辛巳 30 癸巳 42 乙巳 54 丁巳
       7 庚午 19 壬午 31 甲午 43 丙午 55 戊午
       8 辛未 20 癸未 32 乙未 44 丁未 56 已未
       9 壬申 21 甲申 33 丙申 45 戊申 57 庚申
       10 癸酉 22 乙酉 34 丁酉 46 已酉 58 辛酉
       11 甲戌 23 丙戌 35 戊戌 47 庚戌 59 壬戌
      12 乙亥 24 丁亥 36 已亥 48 辛亥 60 癸亥
    1,比如,记住几个特殊的年份如1984年为甲子年,类推1924,1864,1804,……均为甲子年。提到的壬戌是第59顺位,那么用甲子年份加上59减1得到的1982,1922,1862,1802……都是壬戌年!
    2,比如,《辛亥革命》的辛亥年是1911年(48号干支),《戊戌变法》的戊戌年为35号干支,比辛亥年早13年,则“1911-13=1898”故《戊戌变法》是1898年。
    3,比如,2008年:2008-3=2005,2005÷60,余数为25,查六十年甲子(干支表)25号干支,得知是戊子年。
    4,比如,求1991年干支:1991÷60=33余11,年干支序号数=11-3=8。查干支表知该年为辛未年。 (如能诀六十甲子表就太好了)
    (注意:年干支的是以立春为分界的,正月立春以后出生的,用本年干支;在立春前出生的,用上一年的干支) 
                                   月的干支
    月的地支是固定不变的:正月是寅,二月是卯,三月是子,依次类推.....
    月的天干记忆比较简单,只要在你年干的基础上记住几句歌诀就可以了:
                       甲己之年丙做首;乙庚之年卯为头;
                       丙辛必定寻庚起;丁壬壬位顺流行;
                       还有戊癸何方觅,甲定之上好追求。
    意思就是说,若遇甲或己的年份 ,正月是丙寅;遇上乙或庚之年,正月为戊寅;遇上丙或辛之年,正月为庚寅;遇上丁或壬之年,正月为壬寅;遇上戊或癸之年,正月为甲寅。依照正月之干支,其余月份按干支推算即可。有表如下:
    年 份 一月  二月  三月  四月  五月  六月  七月  八月  九月  十月  十一月  十二月
    甲、巳 丙寅  丁卯  戊辰  己巳  庚午  辛未  壬申  癸酉  甲戌  乙亥   丙子    丁丑
    乙、庚 戊寅  己卯  庚辰  辛巳  壬午  癸未  甲申  乙酉  丙戌  丁亥   戊子    己丑
    丙、辛 庚寅  辛卯  壬辰  癸巳  甲午  乙未  丙申  丁酉  戊戌  己亥   庚子    辛丑
    丁、壬 壬寅  癸卯  甲辰  乙巳  丙午  丁未  戊申  己酉  庚戌  辛亥   壬子    癸丑
    戊、癸 甲寅  乙卯  丙辰  丁巳  戊午  己未  庚申  辛酉  壬戌  癸亥   甲子    乙丑
(注意:农历的闰月是不记干支的)
                                       日的干支
 我们都知道,日的干支,甲子为第一日,乙丑为第二日,丙寅为第三日……60日为一周。一周完了再由甲子日起,周而复始,循环下去。例如农历己巳年(1989年)正月初一是丁酉日,初二是戊戌日……到三月初七正好是60天,因此三月初二又是丁酉日。
    找日干支的方法最多,但都是比较有挑战性的。有机会我会同大家分享下!当然最简单的就是查万年历了!
                                       时的干支
    时的地支是固定的,这个就不多说了。
    时的天干由日天干也可轻易得到:
                    甲己还生甲,乙庚丙作初
                    丙辛从戊起,丁壬庚子居,
                    戊癸何方发,壬子是真途    即若该日是甲或己的,在子时上配上甲为甲子;该日是乙或庚的,在子时上配上丙为丙子;丙辛日子时配上戊为戊子;丁壬日为庚子;戊癸日为壬子。知道了子时的天支,便可推知其余。

 

示例代码:

const unsigned char sky[][3]=  {"甲","乙","丙","丁","戊","己","庚","辛","壬","癸",};
const unsigned char earth[][3]={"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥",};
const unsigned char shengxiao[][3]={"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"};


/*********************************************************************************************************
** 函数名称:GetSkyEarth
** 功能描述:输入公历日期得到一个甲子年(只允许2000-2099年)
** 输 入:  year        公历年
**          p       

**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void GetSkyEarth(unsigned char year,unsigned char *p)
{
        year += 16;
        year %= 60;                
        *p=year;
}

void StrCopy(char *target,unsigned char  *source,unsigned char no)
{
    unsigned char i;
    
    for(i=0;i<no;i++)
    {
        *target++=*source++;
    }
}
 

void testSkyEarth(void)

{

        unsigned char SEyear;

       unsigned char skyBuf[2];

      unsigned char earthBuf[2];

     unsigned char shengxiaoBuf[2];

     GetSkyEarth(18,&SEyear); //2018 ,result: sEyear = 34;

    StrCopy(skyBuf,(unsigned char *)  sky[SEyear%10],2);   // 戊

    StrCopy(earthBuf,(unsigned char *)earth[SEyear%12],2);    //  戌    
    StrCopy(shengxiaoBuf,(unsigned char *)shengxiao[SEyear%12],2);    //  狗    

}

//即2018年为戊戌狗年

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

天干地支计算 的相关文章

  • 基于SSM网上商城购物系统的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 基于SSM的学生考勤管理系统的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 基于JavaWeb的宿舍管理系统的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 今天给大家介绍一篇基于SSM的教材管理系統的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 教材征订和下发系统

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 基于SSM的企业管理系统

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • jsp点击事件大全

    lt input onclick 61 34 document all WebBrowser ExecWB 1 1 34 type 61 34 button 34 value 61 34 打开 34 name 61 34 Button1 3
  • MySql数据查询中 left join 条件位置区别

    A 和 B 两张表都只有一个 ID 字段 比如A表的数据为 ID 1 2 3 4 5 6 B表的数据为 ID 1 2 3 判断 JOIN 查询时候条件在 ON 和 WHERE 时的区别 ON 和 WHERE 查询顺序有关 标准查询关键字执行
  • 身份证规则验证 Java代码

    package com mxg hmms util import java text SimpleDateFormat import java util Date 验证身份证号码 身份证号码 可以解析身份证号码的各个字段 xff0c 以及验
  • JAVA 定时器的三种方法

    package com utils import java util Calendar import java util Date import java util Timer import java util TimerTask Crea
  • 【python】文本处理:删除包含关键词的行、删除指定列、删除指定字符、替换关键字……

    目录 1 行处理 删除文件中包含关键词的行 删除TXT中的带 不带指定字符的行 xff08 并保留带指定字符的行 xff09 删除匹配or不匹配某些条件的行 2 字符处理 删除特定字符 1 1 删除特定位置的字符 1 2 删除指定字符 1
  • MySql按周,按月,按日分组统计数据

    MySql按周 xff0c 按月 xff0c 按日分组统计数据 DATE FORMAT select DATE FORMAT create time 39 Y u 39 weeks count caseid count from tc ca
  • Linux中编辑定时执行shell脚本,清除tomcat日志

    linux定时执行shell脚本 写一个shell脚本 xff0c 定时执行简单示例 很多时候我们有希望服务器定时去运行一个脚本来触发一个操作 xff0c 比如说定时去备份服务器数据 数据库数据等 不适合人工经常做的一些操作这里简单说下 S
  • Linux中的远程登录服务

    1 实验环境 两台单网卡的主机 一台为服务器 xff0c 主机名为westos system xff0c ip地址为192 168 2 100 一台为客户端 xff0c 主机名为westos client xff0c ip地址为192 16
  • 线程调度的方法()

    1 sleep 在睡眠的时候 会释放cpu 让给其他线程执行 即使没有其他线程 抢占cpu 也需要等待睡眠时间到了以后才能真正的指定 package com qf demo3 span class hljs keyword public s
  • Centos 后台服务 screen 关闭所有后台服务

    查看当前 screen 列表 xff1a screen ls 查看 screen 数量 xff1a screen ls awk 39 Socket 39 awk 39 print 1 39 按照数量来关闭 xff0c 如果当前所有六个 xf
  • Android解包打包system.img的方法

    1 system img为yaffs2镜像 2 解包 对system img的解包需要用到unyaffs这工具 下载地址 xff1a http code google com p unyaffs downloads list 下载以后和sy
  • 怎样解决迅雷下载时的版权限制-两招解决迅雷下载版权限制

    随着版权意识越来越强 xff0c 现在很多影视资源无法在网上下载 xff0c 即使能找到的 xff0c 大部分也会因为版权问题无法下载 比如我们常用的迅雷 xff0c 大量电影电视剧会因为版权限制无法下载 如何突破这种限制呢 xff01 下
  • 出现`Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR`错误的解决办法

    出现Could not create cudnn handle CUDNN STATUS INTERNAL ERROR错误的解决办法 问题分析 xff1a 出现Could not create cudnn handle CUDNN STAT
  • 【kotlin】android studio 配置kotlin插件(一)

    前言 2017 Google I O大会宣布将Kotlin语言作为安卓开发的一级编程语言 Kotlin由JetBrains公司开发 xff0c 与Java 100 互通 xff0c 并具备诸多Java尚不支持的新特性 谷歌称还将与JetBr

随机推荐