月亮、季节与闰月:传统历法怎么把两套时间缝在一起

清明几乎都在公历 4 月 4 日或 5 日,中秋的公历日期却每年不同,有时在 9 月,有时到了 10 月。清明按太阳的位置确定,中秋则是农历八月十五,月份跟着月相走。传统历法要处理的,就是这两个周期对不上的问题。

农历是什么?

农历是一种阴阳合历:月份依月相安排,每个月从朔开始,平均 29.53059 天;年的长度则用闰月校正,让它跟上依太阳定的季节。它不是纯粹的阴历,也不是纯太阳历,而是把两套周期缝在一起的历法。

为什么农历要闰月?

因为十二个朔望月只有 354.37 天,比回归年 365.2422 天短约 10.88 天,三年就差过一整个月。不加闰月,月份会逐年提前、走过四季;农历每十九年安插七个闰月,把月份拉回对应的季节,所以闰月并不是固定每三年一次。

二十四节气是怎么定的?

二十四节气是按太阳在黄道上的位置定的,不是按月相:太阳黄经每走 15 度设一个节气,一圈刚好二十四个,其中黄经是 30 度倍数的十二个叫中气。因为它跟着太阳走,节气的公历日期几乎固定,清明总在 4 月 4 日或 5 日前后;哪个农历月从头到尾碰不到中气,那个月就是闰月的候选。

月份依月相,季节依太阳,闰月校正两者的落差

清明的公历日期几乎不动,中秋却年年换位置。这堂课把月亮的月份和太阳的季节放到同一条时间轴上,看它们怎么错开,又怎么被闰月拉回来。

先比较清明和中秋

清明通常落在公历 4 月 4 日或 5 日前后;中秋固定在农历八月十五,换成公历后有时在 9 月,有时到了 10 月。它们会出现在同一本日历里,日期的计算基准却不同。

清明由太阳到达特定黄经的时刻决定。中秋的月份和日期来自农历,八月十五通常落在满月前后。月相周期与太阳年并不等长,因此两者的公历日期不会用同一种方式移动。

三种历法使用不同基准

太阳历只对齐季节,月份长度是人为切分,日常说的公历(台湾称国历)就是这一类。太阴历只对齐月相,一年十二个朔望月,季节会慢慢跑掉。

农历是阴阳合历:月份由合朔决定,年份用节气绑住太阳。所以初一接近朔、十五接近望,春节也不会滑到夏天去。

十二个月比一年短十一天

一个朔望月平均 29.53059 日,十二个是 354.37 日;回归年是 365.2422 日。两者每年差 10.88 日,三年就超过一整个月。

纯太阴历不校正这个差距,因此历月与节日会逐年提前,几十年间经过各个季节,伊斯兰历的斋月就是常见例子。这符合太阴历只依月相排月的规则。

二十四节气按太阳位置计算

节气不是天气预报,而是太阳在黄道上的位置。每走 15° 设一个节气,一圈刚好二十四个;其中黄经是 30° 倍数的十二个叫中气。

节气和公历都跟着太阳年走,所以节气的公历日期只在两三天内移动。同一个节气在农历的日期就会跳来跳去,因为农历的月份由合朔决定。

没有中气的月份提供置闰线索

中气平均每 30.44 日一个,朔望月只有 29.53 日。时间一久,总会有一个月从头到尾碰不到中气,那个月就是闰月候选。

这个判断还要放回完整的历年里看:从冬至所在的月数到下一个冬至月,如果有十三个月,第一个没有中气的月才会被定为闰月。实际排历还要考虑精确的合朔时刻与采用的时区。

农历、农民历与模型范围

农历是天文历日规则,农民历是印出来的历书,会另外附上干支、生肖与宜忌。这堂课只谈前者的天文部分。

这页的互动用匀速太阳与平均月长做示范,能说明理由,但不会给你某一年的正式农历日期。要查真实日期时,请用有权威来源的历表。

十九年历法漂移实验室

拖动时间轴,或直接点某个节气。节气轮、三历比较表与月份带读的是同一个时间点,所以切换历法时看到的是同一天在三套规则下的不同名字。

圆环显示太阳位置与节气分类;请用下方按钮选择节气。

没有中气的月只是候选。正式排历还要看冬至落在哪一个月、精确的合朔时刻,以及计算采用的时区。

这是理想化的教学模型:太阳匀速前进、每个月固定 29.53059 日,起点把冬至和合朔放在同一刻。它示范判定的理由,不产生任何一年的正式农历日期。

使用模型前要知道的两项限制

节气名称反映的是古代中原地区的气候与农事经验。天文时刻可以精确计算,名称却不能当成任何一地当天的天气预报;小雪那天不下雪很正常。

本页的模型是原理示范,不是官方农历换算器,也不是万年历。需要某一天的正式农历日期、节气时刻或历书内容时,请以有明确时区与权威来源的历表为准。

清明和中秋依据不同的周期

清明通常落在公历 4 月 4 日或 5 日前后;中秋固定在农历八月十五,换成公历后可能在 9 月,也可能到 10 月。同一本日历会列出这两个节日,但它们的日期并不是用同一套基准排定。

清明由太阳到达特定黄经的时刻决定。中秋的月份和日期来自农历,八月十五通常落在满月前后。月相周期与季节周期的长度不同,传统历法需要处理的正是这个不断累积的落差。

太阳历、太阴历与阴阳合历

太阳历只追太阳:一年对齐季节,月份长度是人为切分,跟月相没有关系。日常说的公历就是这一类;台湾读者习惯把它叫作「国历」,指的同样是民用的格里历。太阴历只追月球:每个月从合朔开始,十二个月就是一年,不管季节走到哪里。

农历属于第三类,阴阳合历:月份仍由合朔决定,年份却用二十四节气绑回太阳。因此农历初一必定接近朔、十五前后接近望,而春节又不会漫无边际地滑出冬末春初。把农历直接叫成「阴历」,会漏掉它其实一直在看太阳这件事。

十二个朔望月比回归年短约十一天

平均一个朔望月是 29.53059 日,十二个朔望月合计 354.37 日;一个回归年则是 365.2422 日。两者每年相差约 10.88 日。

29.53 日量的是从一次朔到下一次朔。月球绕地球一圈其实只要 27.3 日,多出来的两天,是地球同时也绕太阳走了一段。这两个周期为什么不一样,月相那一课画得很清楚。

这个差距会逐年累积:第二年是 21.75 日,第三年达到 32.63 日,已经超过一个朔望月。把模拟切到太阴历并拖到第三年,可以看到年首相对季节提前了一个多月。

如果只按十二个朔望月排下去,原本在冬末的年首会逐年提前,约三十三年走过一轮四季。阴阳合历要让月份维持月相规律,又不让年首长期偏离季节,因此隔一段时间就加入一个完整的月份。

纯太阴历的月份会走过四季

伊斯兰历是现行的纯太阴历。它的一年固定为十二个朔望月,不设闰月,因此斋月在太阳历上每年约提前十一天,几十年间会经过各个季节。这符合太阴历的规则,因为它只要求月份对齐月相,不要求日期固定在某个季节。

把模拟切到太阴历并持续播放,可以看到年首逐年提前,季节偏移也持续增加。再切回阴阳合历,就能比较加入闰月后,年首如何维持在相近的季节范围。

二十四节气按太阳黄经排列

节气以太阳的位置定义。从地球上看,太阳一年走过的路线叫黄道,沿黄道量出的角度叫黄经。现行定气法每隔 15° 设一个节气,360° 共分成二十四个节气。

黄道是地球轨道面投到天上的那一圈。为什么太阳、月亮和行星都沿着它附近走,黄道面那一课从太阳系怎么形成讲起。

二十四个节气再分成两种:黄经是 30° 整数倍的十二个叫中气,春分、夏至、秋分、冬至都在其中;夹在中间的十二个叫节,立春、清明、白露属于这一类。置闰判定使用的是十二个中气。

至点也标记日长极值,但最早日出与最晚日落不在同一天。日出日落时间课会拆开这两座时钟。

节气是一个时刻,不是一整天。太阳通过该黄经的瞬间就是节气时刻,历书上写的日期只是那一刻所在的那天。这也是为什么同一个节气,在不同时区可能落在不同日期。

节气为什么大致落在固定的公历日期

节气按太阳在黄道上的位置决定,格里历也以回归年为基准,因此节气大致落在固定的公历日期。清明通常在 4 月 4 日到 6 日之间,冬至则大致在 12 月 21 日到 23 日。

剩下的那点移动来自格里历用整数日与闰日去逼近 365.2422 日:每四年补一天、逢百不闰、逢四百再闰。同一个节气在农历的日期就完全不同了,农历月份由合朔决定,所以节气的农历日期每年都会换位置。

没有中气的月份与置闰

阴阳合历以增加一个完整月份来校正落差,需要置闰的年份共有十三个月。中气平均每 30.44 日出现一次,朔望月平均只有 29.53 日,因此经过一段时间后,会有某个月份完全没有中气。

教学模型用的正规化规则是:以冬至所在的月为起点,数到下一个冬至月之前;如果这一段有十三个月,第一个没有中气的月就是闰月候选。冬至月自己一定含冬至,所以它永远不会是候选。

正式排历还要处理冬至落月、合朔的精确时刻与采用的时区;罕见年份也可能连续出现两个没有中气的月,需要依完整规则判定。画面上的「闰月候选」只示范主要原理,不能当成某一年的正式历日。

十九个回归年是 6939.6018 日,二百三十五个朔望月是 6939.68865 日,只差不到 0.09 日。二百三十五扣掉十九年份的十二个月,剩下七个,「十九年七闰」讲的就是这个总量关系。它说明闰月大约多久出现一次,却不是一张可以照抄的排程表:实际上两次闰月之间有时隔两年,有时隔三年。

235 个朔望月 = 6939.68865 日 · 19 个回归年 = 6939.6018 日 · 相差 0.08685 日

从平气到定气

汉代文献已完整记载二十四节气;汉武帝时施行的《太初历》,也把二十四节气纳入官方历法计算。后世仍持续修订测量方法与推算制度。

早期采用平气:把一年的长度平均切成二十四份,每份约 15.22 日。这样算简单,但地球公转速度不是常数,近日点附近走得快、远日点附近走得慢,平气给出的节气时刻会和太阳的真实位置有落差。

清代的《时宪历》改用定气,直接以太阳黄经每 15° 定一个节气。相邻节气约隔 14.7 至 15.7 日;若只看相邻中气,则约隔 29.4 至 31.4 日。本课采用匀速太阳,属于接近平气的简化模型;现行历法使用的是定气。

农历和农民历不是同一层资料

农历指的是那套天文历日规则:合朔定初一、中气定闰月、节气标在旁边。农民历(也常被叫作黄历)是印出来的历书,除了这些日期,还附上干支、生肖、宜忌、方位等民俗内容。

两层东西印在同一页,很容易被当成同一件事。前者可以用天文计算检验,后者属于民俗传统;本站不对其效力做任何主张,也不提供择日建议。

可以连续三年比较中秋与清明的公历日期。中秋的日期会明显移动,清明通常只差一两天;前者反映农历月份的变化,后者则跟着太阳年。

用时间轴检查四件事

把时间拖到第 0 年,三种历法的年首都在同一天,季节偏移都是 0 日。

切到太阴历并拖到第三年,比较季节偏移从约 −10.9 日累积到约 −32.6 日。

切回阴阳合历,找到月份带上没有中气、被标成闰月候选的那一格,注意它前后两个月都各有一个中气。

先点冬至再点夏至,看太阳黄经从 270° 换到 90°,月份带的位置也跟着移到半年之后。

三种历法的差别

这张表把三套制度的分工写在同一个地方;互动区的比较列则是同一时间点下的实时版本。

历法主要依据月份跟月相吗季节长期固定吗需要置闰吗
太阳历太阳的周年位置不跟,月长是切分出来的固定用闰日,不用闰月
太阴历月相周期跟,初一接近朔不固定,每年提前约 10.88 日不置闰
阴阳合历月看月相、年看节气跟,初一接近朔固定在一个月的范围内需要时加一个闰月
常见问题

农历就是阴历吗?

太阳历只追太阳:一年对齐季节,月份长度是人为切分,跟月相没有关系。日常说的公历就是这一类;台湾读者习惯把它叫作「国历」,指的同样是民用的格里历。太阴历只追月球:每个月从合朔开始,十二个月就是一年,不管季节走到哪里。 农历属于第三类,阴阳合历:月份仍由合朔决定,年份却用二十四节气绑回太阳。因此农历初一必定接近朔、十五前后接近望,而春节又不会漫无边际地滑出冬末春初。把农历直接叫成「阴历」,会漏掉它其实一直在看太阳这件事。 农历指的是那套天文历日规则:合朔定初一、中气定闰月、节气标在旁边。农民历(也常被叫作黄历)是印出来的历书,除了这些日期,还附上干支、生肖、宜忌、方位等民俗内容。

二十四节气为什么大多落在固定的公历日期?

节气按太阳在黄道上的位置决定,格里历也以回归年为基准,因此节气大致落在固定的公历日期。清明通常在 4 月 4 日到 6 日之间,冬至则大致在 12 月 21 日到 23 日。 剩下的那点移动来自格里历用整数日与闰日去逼近 365.2422 日:每四年补一天、逢百不闰、逢四百再闰。同一个节气在农历的日期就完全不同了,农历月份由合朔决定,所以节气的农历日期每年都会换位置。

闰月是怎么决定的,真的是每三年一次吗?

阴阳合历以增加一个完整月份来校正落差,需要置闰的年份共有十三个月。中气平均每 30.44 日出现一次,朔望月平均只有 29.53 日,因此经过一段时间后,会有某个月份完全没有中气。 教学模型用的正规化规则是:以冬至所在的月为起点,数到下一个冬至月之前;如果这一段有十三个月,第一个没有中气的月就是闰月候选。冬至月自己一定含冬至,所以它永远不会是候选。 正式排历还要处理冬至落月、合朔的精确时刻与采用的时区;罕见年份也可能连续出现两个没有中气的月,需要依完整规则判定。画面上的「闰月候选」只示范主要原理,不能当成某一年的正式历日。

相关工具: 月相不是地球的影子:月亮为什么每天换形状? · 月相信息 · 天文行事历 · 潮汐锁定:月球为什么总是同一面朝向我们? · 天文教室

资料来源与模型范围

天文定义、节气规则与置闰叙述依上述官方页面整理;互动模型、程序与文案由本站制作。模型采用匀速太阳与平均朔望月,属于接近平气的示意版本,不能取代正式历书、农历换算或择日用途。