1582 年 10 月,欧洲有十天凭空不见了。
10 月 4 日星期四过完,第二天直接跳到 10 月 15 日星期五。中间那十天,从来没有人过过。
这不是传抄的笔误,是教皇格里高利十三世下的命令。原因说起来也简单:历法跟太阳对不上了,多算出十天,删掉。
一件事能看出历法的本质——它是人类给天体运行做的刻度盘。太阳走一圈算一年,月亮圆缺一轮算一月。可这两个周期除不尽,谁也凑不齐谁。怎么凑,就分出了不同的历法。
我们日常要打交道的,其实有三本:太阳历、阴历、干支历。三本的刻度基准完全不同,混着用就会出错。
一、先把一个叫法纠正过来
很多人把农历叫「阴历」。这个叫法不准确,而且差得有点远。
历法按基准分三类:
- 阴历:只看月亮。月份跟着月相走,不管太阳到哪儿。
- 阳历(太阳历):只看太阳。年份跟着回归年走,不管月亮圆缺。
- 阴阳合历:两头都看。月份跟月亮,年份跟太阳,中间的差额用闰月补。
农历属于第三种。它用朔望月定初一十五,又靠闰月把年长拉回回归年——两头都占,所以叫「阴阳合历」。真正只跟月亮走的阴历是伊斯兰历,那才是纯阴历。
把农历叫阴历,等于把混血说成单亲。

二、太阳历:跟着太阳走
太阳历的基准是回归年——太阳接连两次通过春分点的时间间隔,365.2422 天,也就是 365 天 5 小时 48 分 46 秒。
麻烦在于这个数字不是整数。一年按 365 天算,每年少 0.2422 天,四年就攒出将近一天,得补回去,这就是闰年。
补的办法走过弯路。公元前 45 年凯撒定的儒略历,简单地四年一闰,平均年长 365.25 天。比回归年多出 0.0078 天,一年差 11 分 14 秒,看着不起眼,攒 128 年就是整整一天。
到 1582 年,误差已经攒到十天。春分从 3 月 21 日提前到了 3 月 11 日。教会在意这件事——复活节的日期要按春分推算,春分飘了,节日跟着飘。于是改历,做了两件事:
一是删掉十天,把 1582 年 10 月 4 日的次日定为 10 月 15 日,星期几照旧连着算。
二是改置闰规则:四年一闰,逢整百年不闰,逢四百年再闰。所以 1700、1800、1900 都不是闰年,2000 年是。
这么一改,四百年里只剩 97 个闰年,平均年长 365.2425 天,跟回归年差 0.0003 天,一年差 25.92 秒。要攒够一整天,得等三千三百多年。
我们现在用的公历,就是这套格里高利历。
但有一件事要分清楚:公历的月份长度是人为切分的,跟天象无关。 一年 365 天切成十二份,哪个月 31 天哪个月 30 天,是历史留下的约定——二月之所以短,一种说法是奥古斯都从二月挪走一天加到了八月。月亮圆缺也好,太阳位置也好,都不参与这个划分。
这是公历和后面要说的干支历最根本的差别。
三、阴历:跟着月亮走
阴历的基准是朔望月——月亮接连两次朔(完全看不见月亮的那天)的间隔,29.5306 天,29 天 12 小时 44 分 3 秒。
月亮本身不发光,我们看到的圆缺,是它被太阳照亮的那半边在变。从看不见,到满月,再到看不见,一轮 29 天半。这个周期抬头就能看见,所以早期历法多半从月相起手。
麻烦也出在这儿:12 个朔望月是 354.3672 天,比回归年短了将近 11 天。
纯阴历的处理办法是——不处理。
伊斯兰历就是这样。单月 30 天,双月 29 天,一年 354 天。多出来的零头靠加一天解决:30 年里挑 11 年当闰年,闰年在十二月末加一天,凑成 355 天。它只加闰日,从来不设闰月。
后果是日期在季节里漂移。伊斯兰历每年比太阳年短约 10 天 21 小时,三年就短掉一个月,32.6 个太阳年之后,伊斯兰历已经整整多走了一年。斋月因此在四季里轮流转:有一年赶在夏天,白天长,斋戒难熬;再过十几年落到冬天,日子就短得多。
纯阴历的好处是月相和日期永远对得上,代价是日期和季节彻底脱钩。对靠天吃饭的农耕社会来说,这个代价付不起。
四、干支历:也是阳历,分月的办法不一样
干支历常被当成农历的附属品,其实它独立得多,而且它是一本纯阳历——只看太阳,完全不看月亮。
它的刻度是二十四节气。太阳在黄道上每走过 15 度定一个节气,走满 360 度正好一圈,二十四个。立春起头,大寒收尾。黄经度数定死的:立春是 315 度,往后每过一个节气加 15 度,到春分正好回到 0 度。
分月用「节」,不用「气」。二十四节气里单数是节、双数是气(也叫中气),一节配一气就是一个月,全年十二个月,不用设闰月——太阳走完一圈本就是一年,本来就不差。
月首从立春起算,地支固定:
- 立春起寅月,惊蛰起卯月,清明起辰月
- 立夏起巳月,芒种起午月,小暑起未月
- 立秋起申月,白露起酉月,寒露起戌月
- 立冬起亥月,大雪起子月,小寒起丑月
这就是常说的「正月建寅」。这里的「正月」是干支历的正月,从立春开始,跟农历的正月初一不是一回事,上一篇专门讲过这个错位。
干支历和公历的关键区别在这儿:两本都是阳历,年长都跟着回归年走,但公历的月是人为切的,干支历的月是太阳位置切出来的。公历的二月可以是 28 天也可以是 29 天,看年份能被几整除;干支历的寅月永远是立春到惊蛰那一段,看太阳走到哪儿。一个看约定,一个看天象。
干支纪日另有一桩值得说的事。它是目前已知连续时间最长的纪日法:从春秋鲁隐公三年(公元前 720 年)二月己巳日算起,两千七百多年,一天没断过。这个起点还是靠日食记录倒推出来的——《春秋》记的「己巳,日有食之」,天算回推正是公元前 720 年 2 月 22 日。
商代甲骨上已经刻着完整的干支表,殷墟出土的那片(合集 37986 号)六十甲子一个不少,是当时用来核对日期的谱表。

五、农历站在哪儿
回到开头那个叫法。农历哪一头都不纯粹,它把两头的长处凑到了一起:
月份跟月亮走,初一必是朔日,十五前后必是满月——看日子就知道月相,这是阴历的长处。
年份跟太阳走,用闰月把 354 天补回 365 天,季节不乱跑,这是阳历的长处。
二十四节气从干支历里借过来,管农时。
补足差额的老规矩叫十九年七闰,是个大致的规律;具体到哪一年闰哪个月,看这个月有没有中气。这套做法现在写进了国家标准 GB/T 33661-2017,由紫金山天文台算好了颁布。
所以农历是一本三合一的历法:月亮管月,太阳管年,节气管农时。叫它阴历,只说了三分之一。
六、四本历摆在一起看
| 太阳历(公历) | 阴历(伊斯兰历) | 干支历 | 农历 | |
|---|---|---|---|---|
| 看谁 | 太阳 | 月亮 | 太阳 | 月亮 + 太阳 |
| 一年多长 | 365 / 366 天 | 354 / 355 天 | 约 365.25 天 | 354 / 384 天 |
| 一月多长 | 人为规定 28–31 天 | 29 / 30 天,看月相 | 两个节气,约 30 天 | 29 / 30 天,看月相 |
| 补差办法 | 加闰日 | 加闰日,不设闰月 | 不用补 | 加闰月 |
| 岁首 | 1 月 1 日 | 穆哈兰姆月 1 日 | 立春 | 正月初一 |
中间两列是纯粹的,两头是调和出来的。
七、分清楚有什么用
干支纪时用干支历,看那一天的年月与日子,全按节气走,跟初一十五没关系。
过日子用公历,跟国际接轨,算的是太阳。
看月相、过节日用农历,八月十五月亮圆,这个它管。
三本历各管一摊,谁也替代不了谁。混着用的结果,就是同一个日子排出两个结果,然后争论谁对——其实谁都对,只是不是同一本历。
再往后讲,就是节气:立春不是一整天,只有一秒钟。
相关枢纽页:历法术语表 | 历法复原:一年从哪一天算起 | 数据集与预印本
作者:嘉言一得(邝楚嘉)|独立天文历法爱好者,致力于可核验的原始文献与历法数据归档。
考据笔记 · 数据集 · 预印本:GitHub / WordPress / Zenodo(DOI: 10.5281/zenodo.22820072)