步履随笔

干支纪日转换到公历的秘诀大揭秘(下)

发表时间: 2025-01-04 12:36

干支纪日转换到公历的秘诀大揭秘(下)

干支纪日从几千年开始至今,一直没有中断,纪日也没有错误,是一部了不起的历法。关于干支的一些基础知识需要牢牢掌握,因为它代表了中华传统文化中最复杂最深奥的部分,也是最有意思的内容之一。

上期我们介绍了干支序号及年份干支的推算,本期我们继续介绍月干支、日干支和时干支的推算,干货满满哦。

月干支推算

先上公式,后再解释:

月干=年干x2+月数

超过10则减去10的倍数,0视作10,所得的余数就是天干的序数

甲子年的正月是丙寅月,也就是说甲1对应丙3,按照这个对应关系推算下去,乙丑年的正月是戊寅,即乙2对应戊5;丙寅年的正月是庚寅,即丙3对应庚7……所以得出规律:每年正月的天干等于年干ⅹ2+1。知道了正月的天干,那每个月的天干也就知道了。

要注意,公元2017年5月12日(农历丁酉年四月十七)国家发布了《中华人民共和国国家标准GB/T33661—2017〈农历的编算和颁行〉》规定了干支纪年生肖纪年起于正月初一0点。也就是说干支纪年不再是以立春为岁首,而是以农历正月初一为岁首。

地支=月份+2

大于12则减去12,所得余数就是地支的序数。

地支有12个,我们现在的历法遵循的正月建寅,即农历一月是寅月,但在编制历法的过程中又往往是从子月开始,即把冬至作为历法的起算点。从寅月到子月,间隔两个月,所以月份需要+2。

例如要求2025年2月5日的月干支,

先求年干,利用上期学过的方法,(2025–3)÷10,余数为2,得出年干为乙;

月干=2ⅹ2+1=6,序数是5,所以天干为戊。注意,这里的月份为农历月份,公历2月5日是农历的正月初八,所以月份为1。

月支=1+2=3,序数是3,所以地支为寅。

综合月干与月支,则2025年2月5日的月干支为戊寅。

干支纪月中的天干与干支纪年中的天干有一定的联系。我们把六十甲子表稍微调整一下,把甲子和乙丑放到最后二位。你会发现,带“寅”的干支只有五个:丙寅、戊寅、庚寅、壬寅和甲寅。

比如:

第一年:甲子年,正月是丙寅,二月是丁卯……十二月是丁丑。

第二年:乙丑年,正月是戊寅,二月是己卯……十二月是己丑。

第三年:丙寅年,正月是庚寅,二月是辛卯……十二月是辛丑。

第四年:丁卯年,正月是壬寅,二月是癸卯……十二月是癸丑。

第五年:戊辰年,正月是甲寅,二月是乙卯,其它各月依次类推。

继续下去,到了第六年(己巳年),正月又是丙寅,二月又是丁卯……十二月又是丁丑。这正好说明,月干支又开始了新一轮的五年期循环。

日干支推算

网上有很多种方法,但大多不太准确。在这里给一个公式,比较准确,供小伙伴们参考:

天干g= 4c + [c/4] + 5y + [y/4] + [3(m+1) / 5] + d –3

地支z= 8c + [c/4] + 5y + [y/4] + [3(m+1) / 5] + d + 7 + i

其中c为世纪数减1,y为年份后两位数字,m是月份,d为日期,i为月份修正值(奇数月i=0,偶数月i=6),“[]”为取整运算。

如果先求得了天干g,那么

z=g+4c+10+i

g的个位数就是天干序数z除以12的余数就是地支序数。这里需要注意的是:1月和2月是当做上一年的13月和14月来计算的,因此c和y也要按上一年的年份来取值。

这个公式是仿照蔡勒公式推导出来的,蔡勒公式是德国数学家克里斯提安·蔡勒提出的一种用于计算任意给定日期是星期几的算法,公式如下图所示:

感兴趣的小伙伴自己去试着推导一下,会有意外的惊喜哦。

举个例子吧,我们来推算一下2025年1月28日的日干支

因为1月要看作上一年的13月,所以2025年1月28日要看作是2024年13月28日来计算。

天干g =4ⅹ20+[20/4]+5ⅹ24+[24/4]+[3ⅹ(13+1)/5]+28–3

=80+5+120+6+8+28–3

=244

个位数是4,所以天干为丁。

地支z =244+4ⅹ20+10+0

=244+80+10

=334,

334÷12,余数是10,所以地支为酉。

综合天干与地支序数,则2025年1月28日为丁酉日,这一天是除夕日。

我们再来推算一下2025年1月29日的日干支

天干g =4ⅹ20+[20/4]+5ⅹ24+[24/4]+[3ⅹ(13+1)/5]+29–3

=80+5+120+6+8+29–3

=245,

个位数是5,所以天干为戊。

地支z =245+4ⅹ20+10+0

=245+90

=335,

335÷12,余数是11,所以地支为戌。

综合天干和地支的序数,则2025年1月29日为戊戌日,这一天是大年初一。

日干支推算起来是比较麻烦的,如果不习惯这个公式,那就自己动手查万年历吧。

时干支推算

同样方法很多,在网上一搜一大堆各种公式,在这里我们还是老老实实遵循古人总结的规律吧,那就是很有意思的“五鼠遁元”日上起时法。

古人把一昼夜分为十二个时辰,每一个时辰用一个地支来命名,所以十二时辰的地支是固定的。我们要推算时干支,只需要推算出时辰天干就可以啦。

在古代由于历书中都不标记干支纪时,于是人们根据干支日、时柱的出现规律做出了能快速获知干支纪时的推导口诀:

五鼠遁日起时诀

甲己还加甲乙庚丙作初

丙辛从戊起丁壬庚子

戊癸何方觅壬子是真途

在这里解释一下:

甲己还加甲—逢日干是甲或己的日子,子时的时干从上起。

乙庚丙作初—逢日干是乙或庚的日子,子时的时干从上起。

丙辛从戊起—逢日干是丙或辛的日子,子时的时干从上起。

丁壬庚子居—逢日干是丁或壬的日子,子时的时干从上起。

戊癸起壬子—逢日干是戊或癸的日子,子时的时干从上起

“五鼠”指的是六十甲子中地支为“子”的五个甲子:甲子丙子戊子庚子壬子,子为子时,子为鼠嘛。

举个例子吧,我们来推算一下2025年1月28日20点的年月日时干支。

第一步:求年干支。(2025–3)÷10,余数是2,得天干为乙;(2025–3)÷12,余数是6,得地支为巳,则年干支为乙巳。但要注意的是,1月29是农历正月初一,也就是说1月29日0点之前仍然是甲辰龙年,1月29日0点后才是乙巳蛇年。所以1月28日年干支还是甲辰

第二步:求月干支。公历1月28日是农历12月29日,年干为1,所以1ⅹ2+12=14,减去10,余数是4,得天干为丁;12+2=14,减去12,余数是2,得地支为丑,则月干支为丁丑

第三步:求日干支。上文已经推算过了,我们直接拿来用,则1月28日月干支为丁酉

第四步:求时干支。丁酉日这一天的天干是丁,根据口诀“丁壬庚子居”,逢日干是“丁”或“壬”的日子,这一天子时的时干从庚上起,即子时的时干是“庚”,也就是说子时的干支为庚子。20点对应戌时,查五鼠遁日起时表,从子时数到戌时,对应的是从庚子数到庚戌

所以2025年1月28日20点为甲辰年丁丑月丁酉日庚戌时