天干地支计算
年的干支
办法一:
首要要能记住十大天干和十二地支,十天干:甲、乙、丙、丁、戊、己、庚、辛、壬、癸;十二地支:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥;
天干地支编年法首要是天干在前,地支在后,比方本年2005就为-乙酉年。
天干算法:
3对应的十天干便是
甲、乙、丙、丁、戊、己、庚、辛、壬、癸,
数字为时代的最终的一位数字,比方2005年,最终一位是对应的天干便是乙;
地支的算法:用时代数除今后边的余数就代表某个地支,
余数分别为:0(能整除)、
代表地支为:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥,
比方2005年为例:时代末尾数为对应的天干为乙,2005除以余数为对应的地支为酉,所以2005年为乙酉年。
办法二:
对应数字:0
相应天干:甲、乙、丙、丁、戊、己、庚、辛、壬、癸
对应数字:0
相应地支:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥
公元年份-3,除以10得余数可得天干,如1984年,(193)|10=1所以天干为甲;
公元年份-3,除以12得余数可得地支,如1984年,(193)|12=1所以地支为子;
所以公元1984年为甲子年。
办法三:
用一个你知道的年份的天干地支来计算,比方用2006年算1955年的天干地支,先要知道2006年是丙戌年,用201955=再用51除以余数为标明天干是丙往前推一位,答案是乙,接着用51除以余数为标明地支是戌往前推三位,答案是未,那么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癸亥
比方,记住几个独特的年份如1984年为甲子年,类推1924,1864,1804,……均为甲子年。说到的壬戌是第59顺位,那么用甲子年份加上59减1得到的1919181802……都是壬戌年!
比方,《辛亥革命》的辛亥年是1911年(48号干支),《戊戌变法》的戊戌年为35号干支,比辛亥年早13年,则“1913=1898”故《戊戌变法》是1898年。
比方,2008年:203=2005,2005÷余数为查六十年甲子(干支表)25号干支,得知是戊子年。
比方,求1991年干支:1991÷60=33余年干支序号数=11-3=8。查干支表知该年为辛未年。(如能诀六十甲子表就太好了)
(留意:年干支的是以立春为分界的,正月立春今后诞生的,用本年干支;在立春前诞生的,用上一年的干支)
月的干支
月的地支是固定不变的:正月是寅,二月是卯,三月是子,顺次类推..
月的天干回忆比较容易,只需在你年干的基础上记住几句歌诀就可以了:
甲己之年丙做首;乙庚之年卯为头;
丙辛必定寻庚起;丁壬壬位顺盛行;
还有戊癸何方觅,甲定之上好寻求。
意思便是说,若遇甲或己的年份,正月是丙寅;遇上乙或庚之年,正月为戊寅;遇上丙或辛之年,正月为庚寅;遇上丁或壬之年,正月为壬寅;遇上戊或癸之年,正月为甲寅。按照正月之干支,其他月份按干支计算即可。有表如下:
年份一月二月三月四月五月六月七月八月九月十月十一月十二月
甲、巳丙寅丁卯戊辰己巳庚午辛未壬申癸酉甲戌乙亥丙子丁丑
乙、庚戊寅己卯庚辰辛巳壬午癸未甲申乙酉丙戌丁亥戊子己丑
丙、辛庚寅辛卯壬辰癸巳甲午乙未丙申丁酉戊戌己亥庚子辛丑
丁、壬壬寅癸卯甲辰乙巳丙午丁未戊申己酉庚戌辛亥壬子癸丑
戊、癸甲寅乙卯丙辰丁巳戊午己未庚申辛酉壬戌癸亥甲子乙丑
(留意:阴历的闰月是不记干支的)
日的干支
咱们都知道,日的干支,甲子为榜首日,乙丑为第二日,丙寅为第三日……为一周。一周完了再由甲子日起,循环往复,循环下去。例如阴历己巳年(1989年)正月初一是丁酉日,初二是戊戌日……到三月初七正好是60天,因而三月初二又是丁酉日。
找日干支的办法最多,但都是比较有挑战性的。有时机我会同我们共享下!当然最容易的便是查万年历了!
时的干支
时的地支是固定的,这个就不多说了。
时的天干由日天干也可容易得到:
甲己还生甲,乙庚丙作初
丙辛从戊起,丁壬庚子居,
戊癸何方发,壬子是真途即若该日是甲或己的,在子时上配上甲为甲子;该日是乙或庚的,在子时上配上丙为丙子;丙辛日子时配上戊为戊子;丁壬日为庚子;戊癸日为壬子。知道了子时的天支,便可推知其他。
示例代码:
constunsignedcharsky[][3]={"甲","乙","丙","丁","戊","己","庚","辛","壬","癸",};
constunsignedcharearth[][3]={"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥",};
constunsignedcharshengxiao[][3]={"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"};
voidGetSkyEarth(unsignedcharyear,unsignedchar*p)
{
year+=16;
year%=60;
*p=year;
}
voidStrCopy(char*target,unsignedchar*source,unsignedcharno)
{
unsignedchari;
for(i=0;ino;i++)

{
*target++=*source++;
}
}
voidtestSkyEarth(void)
{
unsignedcharSEyear;
unsignedcharskyBuf[2];
unsignedcharearthBuf[2];
unsignedcharshengxiaoBuf[2];
GetSkyEarth(18,SEyear);//2018,result:sEyear=34;
StrCopy(skyBuf,(unsignedchar*)sky[SEyear%10],2);//戊
StrCopy(earthBuf,(unsignedchar*)earth[SEyear%12],2);//戌
StrCopy(shengxiaoBuf,(unsignedchar*)shengxiao[SEyear%12],2);//狗
}
//即2018年为戊戌狗年