干支纪年和纪日算法

合集下载

农历及农历干支纪年、纪月、计日、计时方法

农历及农历干支纪年、纪月、计日、计时方法

⼀年分成⼗⼆⽉,⼆⼗四节紧相连。

按照公历来推算,每⽉两⽓不改变。

上半年是六⽢⼀,下半年逢⼋⽢三。

这些就是交节⽇,有差不过⼀两天。

⼆⼗四节有先后,下列⼝诀记⼼间:⼀⽉⼩寒接⼤寒,⼆⽉⽴春⾬⽔连;惊蛰春分在三⽉,清明⾕⾬四⽉天;五⽉⽴夏和⼩满,六⽉芒种夏⾄连;七⽉⼤暑和⼩暑,⽴秋处暑⼋⽉间;九⽉⽩露接秋分,寒露霜降⼗⽉全;⽴冬⼩雪⼗⼀⽉,⼤雪冬⾄迎新年。

抓紧季节忙⽣产,种收及时保丰年。

⽇的定义:以地球⾃转⼀周为⼀⽇。

其中以太阳离地平线最远的⼀个时⾠为⼦时,作为⼀天的第⼀个时⾠。

那么,⼦时就是在现在0:00前后⼀个⼩时之内。

那么,这样,夏历中的⼀天的开始是在当天的23:00。

⽉策规则:朔⽇为每⽉起点(初⼀⽇);朔⽇(⽉初⼀⽇)到下个朔⽇(下⽉初⼀⽇)有多少天、这⽉就有多少天。

有30天为⼤⽉、有29天为⼩⽉;唐朝(公元619年)以前⽤的是平朔、唐朝(公元619年)以后⽤的是定朔。

年策与置闰规则:以冬⾄⽇必须在⼦⽉(寅正11⽉),上个冬⾄⽉(⼦⽉农历寅正11⽉)到下个冬⾄⽉(⼦⽉\农历寅正11⽉)有12个⽉就不置闰、上个冬⾄⽉(⼦⽉、农历寅正11⽉)到下个冬⾄⽉(⼦⽉、农历寅正11⽉)如有13个⽉就要置闰、以上个冬⾄⽉(⼦⽉农历寅正11⽉)后的第⼀个没中⽓⽉设为闰⽉、在⼏⽉后⾯就称闰⼏⽉。

例如:2032年农历冬⾄⽉到2033年农历冬⾄⽉之间有12个⽉,就不置闰。

2033年农历冬⾄⽉到2034年农历冬⾄⽉有13个⽉就必须置闰,在2033年冬⾄⽉(11⽉)后的第⼀个⽆中⽓之⽉就是2033年冬⾄⽉后的第1个⽉,就定为闰⽉。

它正好在冬⾄⽉(⼦⽉[11⽉])后,所以就叫闰⼦⽉(闰11⽉)。

农历⼲⽀纪年、纪⽉、计⽇、计时⽅法:天⼲地⽀六⼗花甲表:甲⼦⼄丑丙寅丁卯戊⾠⼰巳庚午⾟未壬申癸⾣甲戌⼄亥丙⼦丁丑戊寅⼰卯庚⾠⾟巳壬午癸未甲申⼄⾣丙戌丁亥戊⼦⼰丑庚寅⾟卯壬⾠癸巳甲午⼄未丙申丁⾣戊戌⼰亥庚⼦⾟丑壬寅癸卯甲⾠⼄巳丙午丁未戊申⼰⾣庚戌⾟亥壬⼦癸丑甲寅⼄卯丙⾠丁巳戊午⼰未庚申⾟⾣壬戌癸亥⼲⽀纪年法:甲⼦为第⼀年,⼄丑为第⼆年,丙寅为第三年……六⼗年为⼀周。

如何用天干地支计算年月日时

如何用天干地支计算年月日时

如何用天干地支计算年月日时如何用天干地支计算年月日时?中国古代的一种纪年法。

即以甲、乙、丙、丁、戊、己、庚、辛、壬、癸为十干,子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥为十二支,把干、支顺序配合。

如甲子、乙丑等,经过六十年又回到甲子。

周而复始,循环不已。

我国农历现仍沿用干支纪年。

干支纪年萌芽于西汉,始行于王莽,通行于东汉后期。

汉章帝元和二年(公元85年),朝廷下令在全国推行干支纪年。

有人认为中国在汉武帝以前用干支纪年。

可是,这就是太岁纪年,用太岁所在纪年,干支表示十二辰(把黄道附一周天分为十二等分)。

木星11.862年绕天一周,所以太岁约86年多走过一辰,这叫做“超辰”。

在颛顼历上,西汉武帝太初元年(前104年)是太岁在丙子,太初历用超辰法改变为丁丑。

汉成帝末年,由刘歆重新编订的三统历又把太初元年改变为丙子,把太始二年(前95年)从乙酉改变为丙戌。

还东汉的历学者没用超辰法。

所以太岁纪年和干支纪年从太始二年表面一样。

但是用天干和地支搭配纪年的表现方式相传自黄帝时期就开始了,在殷墟商代考古发现过六十甲子表的残片。

1.干和支的含义:干支是天干,地支的合称。

干指天干,共有10个符号:12345678910甲乙丙丁戊己庚辛壬癸支指地支,共有12个符号:123456789101112子丑寅卯辰巳午未申酉戌亥2.干和支组合后用于纪年。

即:将十天干和十二地支按顺序搭配组合成干支,用于纪年。

按此排法,当天干10个符号排了六轮与地支12个符号排了五轮以后,可构成60干支。

续排下去又将恢复原状,周而复始,即如民间所说“六十年转甲子”。

[编辑本段]六十年甲子(干支表)12345678910甲子乙丑丙寅丁卯戊辰己巳庚午辛未壬申癸酉11121314151617181920甲戌乙亥丙子丁丑戊寅己卯庚辰辛巳壬午癸未21222324252627282930甲申乙酉丙戌丁亥戊子己丑庚寅辛卯壬辰癸巳31323334353637383940甲午乙未丙申丁酉戊戌己亥庚子辛丑壬寅癸卯41424344454647484950甲辰乙巳丙午丁未戊申己酉庚戌辛亥壬子癸丑51525354555657585960甲寅乙卯丙辰丁巳戊午己未庚申辛酉壬戌癸亥[编辑本段]结合实际了解“十二地支”1.用十二种动物分别与十二地支相配成为“十二生肖年”。

天干地支纪年法及其换算方法

天干地支纪年法及其换算方法

天干由甲、乙、丙、丁、戊、己、庚、辛、壬、癸组成,地支由子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥组成。

天干和地支的循环周期分别是十年和十二年,两个周期综合一起,可以用来纪年。

根据天干地支纪年法,纪年的方式是将天干和地支按照一定的规律组合。

具体的纪年方式如下:天干和地支的组合有60个,称为“六十甲子”。

其中,甲子年是以甲子天干和子地支开始,依次向后排列,直到癸亥年结束。

然后又重新从甲子年开始,形成一个循环。

根据这个循环,可以很容易地将一个公历年份转换为天干地支纪年法中的年份。

比如,将2024年转换为天干地支纪年法中的年份,可以先找到甲子年的位置,然后向后数20个位置,即可得到甲子年往后第20年的年份,即2024年对应的天干地支纪年法中的年份为庚子年。

除了年份的换算外,天干地支纪年法还可以用于月份、日子以及时辰的换算。

具体的换算方式如下:月份的换算:根据天干地支纪年法,每个地支对应一个月份。

比如,子地支对应着正月,丑地支对应着二月,以此类推。

根据地支纪律,可以将公历中的月份转换为天干地支纪年法中的月份。

日子的换算:根据天干地支纪年法,每个天干和地支都与公历中的日子有对应关系。

比如,甲子天干和子地支对应着公历的1日,乙丑对应着2日,以此类推。

根据天干地支的对应规律,可以将公历中的日子转换为天干地支纪年法中的日子。

时辰的换算:根据天干地支纪年法,每个地支对应着一个时辰。

比如,子时对应着子地支,丑时对应着丑地支,以此类推。

根据地支纪律,可以将公历中的时辰转换为天干地支纪年法中的时辰。

总之,天干地支纪年法是中国传统的纪年方式,通过天干和地支两个周期组合起来,可以将公历中的年份、月份、日子和时辰转换为天干地支纪年法中的年份、月份、日子和时辰。

这种纪年法在中国历史上广泛应用,并且至今仍然在一些场合使用。

干支纪年与公历的换算

干支纪年与公历的换算

干支,俗称为“天干地支”,共有六十个,是由天干与地支组成甲子、乙丑、丙寅……,60个组成一个循环,反复使用。

称为六十甲子或六十花甲子。

中国古代用以表示年、月、日、时的次序。

考古发现,在商朝后期帝王帝乙时的一块甲骨上,刻有完整的六十甲子,可能是当时的日历。

这也说明在商朝时已经开始使用干支纪日了。

根据考证,春秋时期鲁隐公三年(前720年)二月己巳,曾发生一次日食。

这是中国使用干支纪日的比较确切的证据。

而使用皇帝年号纪年则是汉武帝时期建元年号。

干支法在中国古代一直使用,从未间断。

因此对研究历史非常有帮助,非常容易推算历史时间。

目录1 干支的一个循环2 干支纪年和纪日与公历的换算3 干支纪年4 干支纪月5 参考文献干支的一个循环甲子乙丑丙寅丁卯戊辰己巳庚午辛未壬申癸酉甲戌乙亥戊子己丑庚寅辛卯壬辰癸巳甲午乙未丙申丁酉戊戌己亥壬子癸丑甲寅乙卯丙辰丁巳戊午己未庚申辛酉壬戌癸亥干支纪年和纪日与公历的换算从已知的公历年份计算干支纪年:年份数减3,除以10的余数是天干,除以12的余数是地支。

从已知日期计算干支纪日的公式为:g = 4C + [C / 4] + 5y + [y / 4] + [3 * (M + 1) / 5] + d - 3z = 8C + [C / 4] + 5y + [y / 4] + [3 * (M + 1) / 5] + d + 7 + i其中奇数月i=0,偶数月i=6,C是世纪数减一,y是年份后两位,M是月份,d是日数。

1月和2月按上一年的13月和14月来算。

g除以10的余数是天干,z除以10的余数是地支。

干支纪年干支纪年,一个周期的第一年为“甲子”,第二年为“乙丑”,依此类推,60年一个周期;一个周期完了重复使用,周而复始,循环下去。

如1864年为农历甲子年,60年后的1924年同为农历甲子年;1865年为农历乙丑年,1925年同为农历乙丑年,依次类推。

由于干支纪年重复太多,一个周期仅为60年,因此自汉武帝同时采用皇帝年号纪年。

古代纪年月日法

古代纪年月日法

古代纪年月日法
(1)年号纪年法:由汉武帝开始有年号。

皇帝即位,都要改元,称元年,依次为二年、三年等。

例如,乾隆三十九年十二月。

(2)干支纪年法:
天干:甲、乙、丙、丁、戊、已、庚、辛、壬、癸
地支:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥
干支两字相配,六十年周而复始,用以纪年。

也可以用来纪日。

纪年,例如,丁卯三月;纪日,例如,是月丁未。

年号与干支可以兼用,例如:元丰七年六月丁丑。

简便的干支纪年推算法
公元年÷10,余数-3,得数为天干;
公元年÷12,余数-3,得数为地支。

例如1999年,1999÷10,余数为9,9-3=6,天干为已;1999÷12,余数为7,7-3=4,地支为卯,1999年就是已卯年。

如果余数小于3,加上一个除数再减3。

例如2001年,2001÷10,余数是1,加上10等于11,11-3=8,天干为辛;2001÷12,余数是9,9-3=6,地支为巳,2001年就是辛巳年。

如果余数-3得0,就是天干或地支的最末一位。

例如1995年,1995÷10,余数为5,5-3=2,天干为乙;1995÷12,余数为3,3-3=0,地支为亥,1995年就是乙亥年。

关于天干地支的记时、记日、记月、纪年法

关于天干地支的记时、记日、记月、纪年法

关于天干地支的记时、记日、记月、纪年法记时法学习天干地支纪时法首先要知道,每天24小时中,每2个小时对应一时辰,共计十二时辰,这十二时辰各自由天干地支所组成,这就是天干地支纪时所使用的元素。

天干地支纪时法规定十二时辰的地支是固定不变的,即子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥等十二时辰,每天十二时辰与24小时的对应关系如下表:中华时辰对应西历小时每日子时 23:00时~ 00:59时每日丑时 01:00时~ 02:59时每日寅时 03:00时~ 04:59时每日卯时 05:00时~ 06:59时每日辰时 07:00时~ 08:59时每日巳时 09:00时~ 10:59时每日午时 11:00时~ 12:59时每日未时 13:00时~ 14:59时每日申时 15:00时~ 16:59时每日酉时 17:00时~ 18:59时每日戌时 19:00时~ 20:59时每日亥时 21:00时~ 22:59时从上表我们得知每天十二个时辰的地支是固定不变的,接下来我们则需要推导出每一时辰的天干是什么,这样才算完成天干地支纪时。

“时”的天干由对照当天的“日干”来推求,推导时辰天干古人早已编成《五鼠遁》歌诀如下:甲己还加甲, 乙庚丙作初;丙辛从戊起, 丁壬庚子居;戊癸何方发, 壬子是真途。

具体推算方法:如甲子日,天干是“甲”,按照歌诀“甲己还加甲”,那么这天从子时起,子时的天干就是甲,也就是甲子时,接下来就是乙丑时,丙寅时,丁卯时……如此排完十二个时辰即可;又如某日是癸卯日,其日干是“癸”,按照歌诀“戊癸何方发,壬子是真途”,那么这天的子时配天干“壬”,也就是壬子时,癸丑时,甲寅时,乙卯时……循序排完十二个时辰便可。

总而言之,如果当天的天干是甲或己,则在子时上配上甲,为甲子时;该日天干是乙或庚的,则在子时上配上丙,为丙子时;天干为丙或辛的日子,则在子时配上戊,为戊子时;丁或壬为日干的,子时为庚子;戊或癸为日干的,子时为壬子。

天干地支纪年月日的计算方法

天干地支纪年月日的计算方法

天干地支纪年(月日时)法一、年的计算方法1、年的天干算法:用公元纪年数减3,除以10(不管商数)所得余数,就是天干所对应的位数;2. 年的地支算法:用公元纪年数减3,除以12(不管商数)所得余数,就是地支所对应的位数;天干:甲、乙、丙、丁、戊、己、庚、辛、壬、癸地支:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥例1. 我们以2010年为例;天干算法:2010-3=2007,2007/10=200余7,7对应天干第7位是庚,即天干为庚;地支算法:2010-3=2007,2007/12=167余3,3对应地支第3位是寅,即地支为寅;综上公元2010是用天干地支纪年为庚寅年。

为使各位信任此算法,本人再举一例来说明:例2. 我们再以1987年为例;天干算法:1987-3=1984,1984/10=198余4,4对应天干第4位是丁,即天干为丁;地支算法:1987-3=1984,1984/12=165余4,4对应地支第4位是卯,即地支为卯;综上公元1987是用天干地支纪年为丁卯年。

二、月的计算方法查表三、日的计算方法查表1、3、5、7、9、11月的日期分别加47、46、47、48、50、51。

2、4、6、8、10、12月的日期分别加18、17、18、19、20、21其中1月和5月一样,2月和6月一样(平年)天干:甲1、乙2、丙3..........壬9、癸0.(个位数)地支:子1、丑2、寅3..........戌11、亥0(除12得的余数)例如:阳历 2010.7.13 7月,日期加48 13+48=61 尾数为1则天干是甲 61/12=5. 余数是1,则地支是1,2010.7.13是甲子日又例:阳历 2010.10.1日 10月,日期加20 1+20=21 尾数是1则天干是甲 21/12=1 余数是9,则地支是9。

2010.10.1是甲申日。

四、时的计算方法。

天干地支纪年月日时方法

天干地支纪年月日时方法

天干地支简称“干支”,天干:甲、乙、丙、丁、戊、己、庚、辛、壬、癸;地支:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥(注:十二地支对应十二生肖——子:鼠;丑:牛;寅:虎;卯:兔;辰:龙;巳:蛇;午:马;未:羊;申:猴;酉:鸡;戌:狗;亥:猪。

)。

十干和十二支依次相配,组成六十个基本单位,古人以此作为年、月、日、时的序号,叫“干支纪法”。

早在公元前2697年,于中华始祖黄帝建国时,命大挠氏探察天地之气机,探究五行(金木水火土),始作甲、乙、丙、丁、戊、己、庚、辛、壬、癸等十天干,及子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥等十二地支,相互配合成六十甲子用为纪历之符号。

我国历法以月球绕地球一周的时间(29.5306天)为一月,以地球绕太阳一周的时间( 365.2419 天)为一年,为使一年的平均天数与回归年的天数相符,设置闰月。

据记载,公元前六世纪中国开始采用十九年七闰月法协调阴历和阳历。

天干地支,是古人建历法时,为了方便做60进位而设出的符号。

对古代的中国人而言,天干地支的存在,就像阿拉伯数字般的单纯,而且后来更开始把这些符号运用在地图、方位及时间(时间轴与空间轴)上,所以这些数字被赋于的意思就越来越多了。

古人(一说黄帝)观测朔望月,发现两个朔望月约是59天的概念。

12个朔望月大体上是354天多(与一个回归年的长度相近似),古人因此就得到了一年有12个月的概念。

在搭配日记法(十天干),产生阴阳合历,发展出现在的天干地支;较为成熟时应该是在夏商周三代。

【来源】它源自远古时代对天象的观测,是为“河图”。

河图和洛书,乃由天象观察中产生的,在三代时期就成为帝王的宝贵之物。

河图和洛书构造简明,它是中国古代的文化基石之一。

清代经学家廖平,曾将诗经,易经,内经三者反复印证,证实了内经的理论本于易经,而易经之数理又取则于河洛。

河图以十数合五方,五行,阴阳,天地之象。

图式以白圈为阳,为天,为奇数;黑点为阴,为地,为偶数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

干支纪年和纪日算法(怎样从已知年份和日期得到对应的干支纪年和纪日)摘要:从已知年份计算干支纪年很简单:年份数减3,除以10的余数是天干,除以12的余数是地支。

从已知日期计算干支纪日的公式和蔡勒公式很相像,如下:g = 4C + [C/4] + 5y + [y/4] + [3*(M+1) / 5] + d - 3z = 8C + [C/4] + 5y + [y/4] + [3*(M+1) / 5] + d + 7 + i (奇数月i=0,偶数月i=6)其中C是世纪数减一,y是年份后两位,M是月份,d是日数。

1月和2月按上一年的13月和14月来算。

g除以10的余数是天干,z除以10的余数是地支。

巧妙运用和干支有关的几个计算公式,还可以在没有万年历的情况下推算出古书里的干支纪日对应的公历日期。

------------------------------------------------------------------------------干支纪日,从夏朝就开始使用了。

根据对中国古代历史典籍《春秋》中记载的日食的研究,我国的干支纪日,从鲁隐公三年二月己巳日(公元前720年2月10日)开始,一直到今天,都未曾间断。

干支纪年的出现则略晚一些,直到东汉元和二年(公元85年)政府才下令在全国实行,至今也未曾间断。

因此,凡是需要接触中国历史的人,总不免要遇到查某一年的干支或某一日的干支,以及由年干支和日干支推算是哪一年或哪一日的问题。

通常,这类转换靠查历书都可以解决。

但既然干支也是一个循环系统,自然也就有从年份和日期求干支的公式。

在介绍求年干支和日干支的公式前,先把干支的特点介绍一下。

干支是天干和地支的组合。

天干有十个,即甲、乙、丙、丁、戊、己、庚、辛、壬、癸;地支有十二个,即子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥。

天干和地支从“甲子”开始,按顺序逐一相配,各用到最后一个时,再从第一个开始继续相配,就形成了六十个干支,也称“六十花甲子”。

为什么是六十个干支呢?这个从数学上很容易回答。

根据干支的构成条件,其循环周期必然是天干数和地干数的最小公倍数。

而60正是10和12的最小公倍数。

如果我们把“甲子”编为1号,“乙丑”编为2号,这样编下去,就可以得到一个干支和序号的对照表,如下:1.甲子2.乙丑3.丙寅4.丁卯5.戊辰6.己巳7.庚午8.辛未9.壬申10.癸酉11.甲戌12.乙亥13.丙子14.丁丑15.戊寅16.己卯17.庚辰18.辛巳19.壬午20.癸未21.甲申22.乙酉23.丙戌24.丁亥25.戊子26.己丑27.庚寅28.辛卯29.壬辰30.癸巳31.甲午32.乙未33.丙申34.丁酉35.戊戌36.己亥37.庚子38.辛丑39.壬寅40.癸卯41.甲辰42.乙巳43.丙午44.丁未45.戊申46.己酉47.庚戌48.辛亥49.壬子50.癸丑51.甲寅52.乙卯53.丙辰54.丁巳55.戊午56.己未57.庚申58.辛酉59.壬戌60.癸亥细心观察这张表,不难发现,由序号得到对应干支是很容易的,序号除以10的余数就是天干的序数(如果余数是0,则为最后一个天干癸),序号除以12的余数就是地支的序数(如果余数是0,则为最后一个地支亥)。

比如37号干支,因为37 mod 10=7(mod表示取余数),对应的天干是庚,37 mod 12=1,对应的地支是子,所以37号干支就是庚子。

显然,一个整数除以10的余数就是它的个位数,这就使求天干更方便了。

而由干支推它的序号,也不困难。

这其实就是一个同余方程组的求解问题,我们用初等数论中的中国剩余定理就可以解决。

比如要算戊午的序号是多少,根据上面由序号得到对应干支的原理,很容易得到如下方程组:{ x mod 10 = 5{ x mod 12 = 7.其中x是待求的干支序号。

根据中国剩余定理,有:x ≡6 * 5 - 5 * 7 (mod 60) = 55,即戊午的序号是55.这和上面的对照表的是一致的。

一般地,若天干的序号为m,地支的序号为n,则干支的序号为:x ≡6m - 5n (mod 60) (1)简单点说,如果6m-5n的结果是正数,这个数就是干支的序号;如果是负数,把它加上60就是干支的序号。

了解了干支及其序号的相互推算,下面我们先来介绍年干支的求算。

需要说明的是,干支纪年纪的是农历年,而不是公历年。

但因为农历年的岁首和公历年的岁首相隔较近,使农历年总是和某一公历年的大部分重合,因此,通常也用公历年的年份表示和它大部分重合的农历年。

这样我们就很容易给出农历年的干支序号为:x = (Y-3) mod 60,(2)其中Y是年份。

得到了干支序号x,就可以求出相应的干支来。

比如2004年的干支序号:x = (2004-3) mod 60 = 2001 mod 60 = 21,21 mod 10=1,天干为甲,21 mod 12=9,地支为申,因此,2004年是甲申年。

细心观察,我们可以发现,其实用Y-3直接除以10,就可以得到天干,用Y-3直接除以12,就可以得到地支。

这是因为x = (Y-3) mod 60等价于Y-3 = 60 * n + x,其中n是Y-3除以60的商数。

等式两边同时除以10,余数也必然相等。

而右边第一项是60的倍数,自然也是10的倍数,能够被10整数,于是Y-3除以10的余数就必然等于x除以10的余数。

因此,其实我们完全用不着先求干支的序号,而可以分别求天干和地支,合起来就是干支,这样就减少了一步运算。

而对于年份的天干,同样只须看末尾一位。

末尾为4的年份的天干总是甲,末尾为5的年份的天干总是乙……依次类推。

再来看日干支的求算。

我们可以仿照星期的求算,得到一个比较直观的计算日干支的公式如下:G = (Y-1)*5 + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D + 15,(3)其中Y是年份,D是累积天数,[...]表示取商数,也就是只取计算结果的整数部分。

把G除以60,余数就是干支的序号。

或者把G除以10或12,可以直接得到日天干和日地支。

不过,和形式相似的求星期的公式一样,这个公式还不够简炼,特别是第一项(Y-1)*5,在Y为四位数年份时,计算出来的结果是一个较大的四位数或五位数,口算很不方便。

我们用推导蔡勒公式的办法,可以改进这个公式。

先来看和年份有关的部分的改进。

我们知道,按公历的置闰规则,一个世纪的总天数可能是36524天,或36525天。

如果这个世纪中末尾为00的年份是闰年,这个世纪就只有36525天;否则就只有36524天。

我们不妨称有36524天的世纪为“平世纪”,有36525天的世纪为“闰世纪”。

对于平世纪,因为36524 mod 60 = 44,所以,每过一个平世纪,同一天的干支就向后推进44个序号。

同样,每过一个闰世纪,同一天的干支就向后推进45个序号。

这就使我们很容易得到一个计算每个世纪第一年(年份末尾为01)3月1日的公式:G = 44C + [C/4] + 15,(4)其中C是世纪数减一。

而计算任一年3月1日的干支的公式也可以很快得到:G = 44C + [C/4] + 5(y-1) + [y/4] + 15,即G = 44C + [C/4] + 5y + [y/4] + 10,(5)其中y是年份后两位数字。

下面我们再列出每月天数:月份1月2月3月4月5月6月7月8月9月10月11月12月--------------------------------------------------------------------------- 天数31 28(29) 31 30 31 30 31 31 30 31 30 31减30后的剩余天数 1 -2(-1) 1 0 1 0 1 1 0 1 0 1如果把1月和2月看成是上一年的13月和14月,同样可以得到下面的式子:D’ ≡[3*(M+1) / 5] + d - 2 (mod 10) (6)及D’ ≡[3*(M+1) / 5] + d - 2 + i (mod 12) (奇数月i=0,偶数月i=6),(7)其中,D’是从3月1日开始算起的累积天数,M是月份,d是日数。

把(6)(7)两式和(5)式合起来,再进行适当的化简,就得到了计算公历任意一天的天干和地支的公式:g = 4C + [C/4] + 5y + [y/4] + [3*(M+1) / 5] + d - 3;(8)z = 8C + [C/4] + 5y + [y/4] + [3*(M+1) / 5] + d + 7 + i (奇数月i=0,偶数月i=6)(9)如果先求得了g,那么z = g + 4C + 10 + i (奇数月i=0,偶数月i=6).(10)g的个位数就是天干序号,z除以12的余数就是地支序号。

这里需要再次强调:1月和2月是当做上一年的13月和14月来算的,因此C和y也要按上一年的年份来取值。

我们可以把(8)(9)两式和蔡勒公式对比一下:W = -2C + [C/4] + y + [y/4] + [13*(M+1) / 5] + d - 1,可以看出它们的形式非常相似,区别仅仅是几个常数的不同。

尽管现在中国已经不用干支纪日了,但有时还是需要计算日干支的。

比如,历法有所谓“三伏”和“入梅”“出梅”,都和日干支有关。

三伏包括初伏、中伏和末伏,是指夏天最热的一段时间,入梅和出梅是指江南一带梅雨季节的开始和结束,本来是和气候有关的用语。

但因为古代没有准确的天气预报,无法准确预测三伏和入出梅的时间,所以就在历书上硬性规定几个日子作为三伏开始和入出梅的日子,这样确定一个大致的日期以备参考。

现在虽然有了比较准确的天气预报,但三伏和入出梅作为一种传统历法,仍然流传下来。

历法规定夏至之后的第三个庚日为初伏开始,共十天;第四个庚日为中伏开始,十天或二十天;立秋之后的第一个庚日为末伏开始,共十天。

中伏的长度之所以不固定,是因为夏至、立秋的日期和庚日的日期是逐年浮动的,立秋之后的第一个庚日可能是夏至之后的第五个庚日,也可能是第六个庚日。

如果是前者,中伏就只有十天;如果是后者,中伏就长达二十天。

注意如果夏至当天是庚日,夏至之后第一个庚日是指夏至之后第十天,而不是夏至当天,这时初伏第一天就是夏至之后第三十天。

同样,如果立秋当天是庚日,末伏第一天就是立秋之后第十天,而不是立秋当天。

入梅则是指芒种之后的第一个丙日,出梅是指小暑之后的第一个未日,也有同样的规定。

知道了这些,我们可以算一下2004年的初伏、中伏和末伏都是什么日子。

这需要先知道夏至和立秋的日子。

如果知道夏至是6月21日,立秋是8月7日,那么运用公式(8),夏至这天的g为:g = 4 * 20 + [20/4] + 5*4 + [4/4] + [3*(6+1) / 5] + 21 - 3= 80 + 5 + 20 + 1 + 4 + 21 - 3= 128,个位数是8,天干是辛。

相关文档
最新文档