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