"农历"常被叫做"阴历",但严格来说这个说法不准确。农历同时参考月相和太阳年,是一种"阴阳合历"——既不是纯粹跟着月亮走的阴历,也不是纯粹跟着太阳走的阳历。
历法按"跟着什么走"可以分成三类:
农历的月份严格按月相定义(每月初一必是新月),这一点和纯阴历一样;但农历又不允许像纯阴历那样让新年在公历上到处漂移,所以需要闰月来"追赶"太阳年,这一点又类似阳历的思路。
12 个朔望月总共约 354 天,比回归年的 365.24 天少了约 11 天。如果完全不调整,农历新年每年都会提前 11 天,用不了几年新年就会跑到夏天去。为了避免这个问题,农历采用"十九年七闰"的规律:每 19 个回归年中插入 7 个闰月,让 19 个农历年的总天数和 19 个回归年基本相等(这个周期在天文学上叫"默冬章")。
具体"闰哪个月"不是随意指定的,而是靠无中气置闰法:二十四节气里,单数的 12 个叫"节气"(如立春、惊蛰),双数的 12 个叫"中气"(如雨水、春分)。正常情况下每个农历月都包含一个中气,但由于朔望月(约 29.53 天)比"两个中气之间的平均间隔"(约 30.44 天)略短,累积下来某个月就会不含任何中气——这个月就被定为闰月,取上一个月的名字加"闰"字,比如"闰四月"。
| 农历 | 公历 | |
|---|---|---|
| 月份依据 | 月相(朔望月) | 人为划分,和月相无关 |
| 年份依据 | 闰月贴近回归年 | 直接按回归年,用闰年(2 月 29 日)微调 |
| 新年日期(相对公历) | 每年浮动(1 月下旬到 2 月中旬之间) | 固定 1 月 1 日 |
| 节气 | 依附于农历用来指导农事和置闰,本身按太阳黄经计算 | 天然贴合(节气日期在公历上基本固定) |
一个常见的误解是"农历节气日期每年都在变"——实际上二十四节气本身是按太阳黄经划分的阳历性质的历法,映射到公历上日期相当固定(比如立春基本都在 2 月 3-5 日),反而是映射到农历上日期每年浮动较大。
在线工具:阴阳历转换