年的干支
方法一:
首先要能记住十大天干和十二地支,十天干:甲、乙、丙、丁、戊、己、庚、辛、壬、癸;十二地支:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥;
天干地支纪年法首先是天干在前,地支在后,比如今年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 char sky[][3]= {"甲","乙","丙","丁","戊","己","庚","辛","壬","癸",};
const char earth[][3]={"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥",};
const char [][3]={"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"};
/*********************************************************************************************************
** 函数名称:
** 功能描述:输入公历日期得到一个甲子年(只允许2000-2099年)
** 输入: year 公历年
** p
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void ( char year, char *p)
year += 16;
year %= 60;
*p=year;
void (char *, char *, char no)
char i;
for(i=0;i {
*++=*++;
void (void)
char ;
char [2];
char [2];
[2];
(18,&); //2018 ,: = 34;
(,( char *) sky[],2); //戊
(,( char *)earth[],2); // 戌
(,( char *)[],2); // 狗
//即2018年为戊戌狗年