马上到来的这个虎年是壬寅年。
寅虎卯兔,寅年大家肯定都是知道的。但为什么是壬寅年而不是别的什么寅年呢?首先,咱们得搞清楚天干地支是怎么纪年的。
天干地支纪年
十二地支对应十二生肖:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥。如果你直接背不下来,可以配合生肖背:子鼠丑牛寅虎卯兔,辰龙巳蛇午马未羊,申猴酉鸡戌狗亥猪。如果这个你还背不下来,那我建议你放弃治疗,让你的小孩去背好了。简单又实用的传统文化,比三字经什么的容易多了。
十天干:甲、乙、丙、丁、戊、己、庚、辛、壬、癸(guǐ)。这个可以看情况选择是否让你的小孩背。如果将来他上高中选的是理科,化学老师会让他背的。
有点奇怪吧?明明是标准的人文社科类知识,却要放在化学课上学。我不知道现在的情况有没有改变,反正多年以前我上学的时候就是这样子的。如果哪位说他当年上学的时候老师教了天干地支,那百分之百是课外知识,我敢肯定教科书里面没有。
废话不多说壬寅年是,先上干支表:
天干与地支按顺序一一组合,60年一个循环,称作一个甲子。为什么不是12×10=120?答案很简单:因为12和10的最大公约数是2。奇数序号的天干只可能跟奇数序号的地支组合,偶数序号的天干只可能跟偶数序号的地支组合。你看没有“甲丑”年不是?
那马上到来的这个虎年为什么是壬寅年呢?很显然,这个决定权取决于60年甲子循环的开端。那么这个开端,是什么时候定下来的呢?
答案可能没有大家想象当中那么古老。它不是黄帝时期,也不是商周时期,甚至不是秦始皇时期。它是东汉时期。
其实在西汉时期,汉武帝就差点儿把这个事情给搞定了。他颁布的《太初历》,就把太初元年(公元前104年)定为甲寅年。但遗憾的是,他的《太初历》弄得不够好,经历了一百多年,已与天象不合。于是东汉元和二年(公元85年),汉章帝又进行了历改,颁布了《四分历》。《四分历》里面规定,汉文帝后元三年(公元前161年)为循环的开始,为庚辰年。之前和之后所有年份的干支,都基于这个时间点来推算。据此,汉武帝的太初元年也从甲寅年,被迫变成了丁丑年。
建历之本,必先立元,元正然后定日法,法定然后度周天以定分至。三者有程,则历可成也。《四分历》仲纪之元,起于孝文皇帝后元三年,岁在庚辰。上四十五岁,岁在乙未,则汉兴元年也。又上二百七十五岁,岁在庚申,则孔子获麟。二百七十六万岁,寻之上行,复得庚申。岁岁相承,从下寻上,其执不误。
——《后汉书·律历志》
干支年份的推算
由公历年份推算公元元年之后的天干的办法很简单:(年数-3)÷10的余数。比如2022年,2022-3=2019,除以10余9。天干的第九个是壬,所以2022年的天干是壬。
地支同理,(年数-3)÷12的余数。2022-3=2019,除以12余3。地支的第三个是寅,所以2022年的地支是寅。2022年是壬寅年。
接下来咱们看一看天干地支如何纪月。
天干地支纪月
如果我们用最朴素的想法来思考这个事情,一年十二个月,正好对应十二地支。只要规定好哪个月是子月,那么月份的地支问题就解决了。实际情况跟这个差不多。我在里面说过,农历的一“岁”是从十一月开始的,所以十一月就是子月。紧接着十二月是丑月,正月是寅月,以此类推。
但这种办法有一个问题,可能有人已经看出来了:闰月怎么办?跟它闰的那个月的地支相同么?
解决这个问题的办法,是让干支纪月按照二十四节气来定义月份的起止。也就是说:
立春则进入寅月;
惊蛰则进入卯月;
清明则进入辰月;
... ...
这样一来,干支纪月每年永远是十二个月,但这也同时导致了干支纪月和正常的农历月是不对应的。
举个例子,2012年农历闰四月。四月初一到四月十四属于辰月,四月十五(公历5月5日)立夏进入巳月,一直到闰四月十五。闰四月十六(公历6月5日)芒种进入午月,直到五月十八。
以上是干支纪月如何算地支,下面咱们看看干支纪月是如何算天干的。
干支纪月月份的天干,与它所在年份的天干有关。具体对应关系可以通过查下面这张表获得:
另外我们也可以通过计算的办法来得到:首先推算所要计算年份的寅月的天干,其余月份的天干按顺序往后推。寅月天干的计算方式为:
公历年份÷5,(余数-2)×2-1
若获得的值为负,则加10。
仍然以2022年为例:2022÷5 余 2,(2-2)×2-1 =-1,-1+10=9,所以2022年寅月的天干是“壬”。2022年壬寅年的寅月正好是壬寅月!
天干地支纪日
天干地支纪日和天干地支纪年可以说是一毛一样:天干与地支按顺序一一组合,60天一个循环。只要规定好循环的开端,任何一天的干支就定了。这个其实就跟一周七天循环差不多。只不过7天一循环很简单,60天一循环可就容易出错了。至少看起来是这样。
然而实际上,干支纪日却比干支纪年要鲁棒得多。目前我们已经确切知道:从春秋鲁隐公三年(公元前720年)二月己巳日起一直到现在,两千七百多年,干支纪日从未间断和错乱过。
了解了干支纪日的由来之后,大家不难看出,干支纪日是自己跟自己玩儿的,跟农历的年月日没有半毛钱关系。所以求解农历任何一天的干支,是没有公式的。最好的办法,是到万年历上面去查。
至于求解公历任何一天的干支,近年来有人发明了一个高氏日柱公式。但这个公式非常复杂,并且需要预设一些常数,贴出来估计也没人看。
1900年之后的干支纪日求解,有一个简化版的公式,尽管也挺复杂的:
(年数-1900+3)×5+55+⌊(年数-1900-1)/4⌋+日数-60×N
其中壬寅年是,日数是所求天在这一年的序号,1月1日的日数是1、2月1日的日数是32、以此类推。
N为前面部分数值之和除以60所得的正整数。
有了这个公式,咱们看看2022年壬寅年的壬寅月有没有壬寅日。
2022年的壬寅月从公历2月4日开始,到3月4日结束,一共29天。我们计算一下第一天,也就是2月4日是什么日。2月4日是2022年的第35天,所以我们有:
(2022-1900+3)×5+55+⌊(2022-1900-1)/4⌋+35-60×N
=125×5+55+⌊30.25⌋+35-60×N
= 625+55+30+35-60×N
=745-60×12
= 745-720
=25
通过干支表可知,25是戊子,所以2月4日是戊子日。通过干支表我们还可知,壬寅是第39,壬寅日是戊子日后14天,也就是2月18日,仍落在壬寅月内。所以公历2022年2月18日是壬寅年壬寅月壬寅日!