农历怎么算:闰月、节气与公历对照
生活与计算发布于 2026-10-31
「农历就是阴历」这句话是错的,而且错得挺关键 —— 正因为不是纯阴历,才有闰月和节气这两套看起来不相干的东西。
三个历法,三种参照物
| 历法 | 依据 | 一年长度 | 结果 |
|---|---|---|---|
| 阳历(公历) | 地球绕太阳 | 365 或 366 天 | 月份与季节固定对应 |
| 阴历 | 月亮圆缺 | 约 354 天 | 月份与季节脱钩,十几年后春节会在夏天 |
| 农历 | 月份看月亮,节气看太阳 | 平年 354 天,闰年 383~385 天 | 月份有月相含义,季节也不会跑掉 |
纯阴历的问题是每年比回归年少 11 天,三年就差一个月,十几年后「正月」会跑到夏天去。农历的解法是插入闰月,把差距补回来。
19 年 7 闰
19 个回归年 ≈ 235 个朔望月。235 = 19×12 + 7,所以 19 年里要有 7 个闰月,农历才能和公历长期对齐。
这不是「每三年闰一次」那么整齐 —— 7 个闰月分布在不同年份,靠的是下面的规则。
闰月放在哪个月之后
规则叫「无中气置闰」:二十四节气分成 12 个「节气」和 12 个「中气」(雨水、春分、谷雨、小满…),每个农历月本该含一个中气。如果某个月从初一到三十都没有中气,这个月就是闰月,名字沿用上个月。
因为中气间隔约 30.4 天,而农历月只有 29.5 天,总有月份「错过」中气。这就是为什么闰月出现在不同月份 —— 闰四月、闰六月都常见,但闰正月、闰腊月极罕见(几百年一次)。
所以「我的农历生日每 19 年重复一次」也只是近似:19 年能对上大多数情况,但受闰月位置影响,仍可能差一天。
春节为什么在 1 月 21 日到 2 月 20 日之间跳
春节是正月初一,也就是「离立春最近的那个朔日所在月的第一天」。朔(月亮完全不可见)每 29.53 天一次,而立春固定在 2 月 4 日前后,两者叠加就产生了这个区间。
| 情况 | 春节日期 |
|---|---|
| 最早 | 1 月 21 日(如 1966 年) |
| 最常见 | 1 月下旬到 2 月中旬 |
| 最晚 | 2 月 20 日(如 1985 年) |
这也解释了为什么每年春运日期都不一样 —— 它跟着农历走,不跟公历走。
节气不是「农历的」
二十四节气本质是太阳黄经每 15° 一个节点,是纯阳历概念,和月亮无关。所以节气在公历上的日期很稳定(清明总在 4 月 4~5 日),在农历上反而飘忽。
把它算进农历体系,是因为农业需要「既知道月相又知道季节」,两套信息合在一本历书里。
过生日选农历还是公历
三条实际考虑:
- 法律与证件一律公历。身份证、护照、社保、退休年龄计算,全按公历出生日期。
- 农历生日每年对应的公历日期都不同,闰月出生的更麻烦 —— 遇到没有闰月的年份,习惯上按「前一个月的同一天」过。
- 生肖按农历年划分,但立春派和春节派有争议:命理多用立春(2 月 4 日),民俗多用春节(正月初一)。两种说法都有人用,讨论生肖时先说清用哪套。
换算的边界
农历与公历互转没有简单公式,需要查表(本质是一份由天文观测与规则算出的数据)。工具能处理的范围通常是 1900~2100 年,超出这个区间很多实现会静默出错 —— 算历史日期或很远的未来时要留意。
用农历转换可以双向查,同时给出干支、生肖与节气;查放假安排用中国法定节假日;算「距离下一个春节还有多少天」用日期距离计算器。
年龄计算里那个常见问题(周岁和虚岁差多少)在另一篇里有细讲,虚岁的「过年长一岁」正是农历规则。