万年历准不准?中国农历历法原理详解
先给结论:农历既不是纯阴历也不是纯阳历,而是同时以朔望月定月、以回归年定年、并用二十四节气调和日月节律的阴阳合历,其天文基准为回归年 365.2422 日、朔望月 29.5306 日。正统日历软件的公历农历换算之所以准确,是因为它采用中国科学院紫金山天文台编算、符合国家标准 GB/T 33661-2017 的历书数据。本页从朔望月与回归年的差值讲起,逐层拆解大小月、"朔日定月首"、十九年七闰与无中气置闰、节气黄经划分、干支纪年与六十甲子、十二时辰,并说明农历数据的权威来源与"准不准"这一疑问的科学答案;若关注传统择吉的用法,可配合老黄历择吉指南一起阅读。
农历是阴历还是阳历:它其实是阴阳合历
很多人习惯把农历叫作"阴历",这其实并不准确。农历是阴阳合历——它一方面依据月相盈亏的周期(朔望月)来确定"月",另一方面又依据地球绕太阳运行一周的时间(回归年)来确定"年",并用二十四节气把两者协调起来。正因为同时兼顾了"月亮"与"太阳"两种天象,农历才能既反映月相变化(如初一朔、十五望),又保持春节、清明等节令与季节的稳定对应。
与之相对,纯阴历只按朔望月排月而不置闰,一年约 354 天,会让新年不断提前、逐渐漂移到冬季甚至秋夏;纯阳历(如今通行公历)只按回归年排年,月份与月相完全脱钩。农历则取两者之长:以朔望月定月首,以回归年定年长,通过"闰月"补足差值,通过"节气"校准季节。我国自 1970 年以后统一称之为"农历",此前因传说起于夏代,也曾被称为"夏历"。
| 对比项 | 农历(阴阳合历) | 公历(阳历) | 纯阴历 |
|---|---|---|---|
| 定月依据 | 朔望月(月相盈亏) | 人为划分,与月相无关 | 朔望月 |
| 定年依据 | 回归年 + 节气调和 | 回归年 | 12 个朔望月 |
| 一年长度 | 平年 354/355 天,闰年 383/384 天 | 平年 365 天,闰年 366 天 | 约 354 天 |
| 是否置闰 | 有,十九年七闰 | 有,四年一闰(2月加1天) | 一般无 |
| 与季节关系 | 用节气校准,季节稳定 | 直接固定 | 逐年漂移,不稳定 |
| 典型代表 | 中国农历、阴阳历 | 格里高利历 | 伊斯兰历(希吉来历) |
理解"阴阳合历"这四个字,是读懂后续所有规则的关键:正因为要同时照顾月亮和太阳,农历才必须设置大小月、必须置闰、必须引入节气。把这些环节串起来,就是一个完整而精密的天文历算系统。它在手机日历上的呈现虽然只是一行小字,但背后是一整套历经千年打磨的算法。
朔望月与回归年:农历的两把"标尺"
农历的两个基本天文量,分别是朔望月和回归年。朔望月是从一次新月(朔)到下一次新月的时间,约 29.5306 日,即 29 日 12 时 44 分 3 秒;回归年是太阳连续两次经过春分点所需的时间,也是四季更替的周期,约 365.2422 日,即 365 日 5 时 48 分 46 秒。这两个数字都不是整数,而且彼此不成简单比例,这正是农历必须"置闰"的根本原因。
| 天文量 | 数值 | 换算说明 |
|---|---|---|
| 回归年 | 365.2422 日 | 365 日 5 时 48 分 46 秒,四季周期 |
| 朔望月 | 29.5306 日 | 29 日 12 时 44 分 3 秒,月相周期 |
| 12 个朔望月 | 354.3672 日 | 29.5306 × 12 |
| 12 朔望月与回归年之差 | 约 10 日 21 时 | 365.2422 − 354.3672 ≈ 10.875 日 |
| 19 个回归年 | 6939.6018 日 | 365.2422 × 19 |
| 235 个朔望月 | 6939.6910 日 | 29.5306 × 235 |
| 两者之差 | 约 0.09 日 | 十九年七闰的精度依据 |
可以看到,12 个朔望月只有约 354.37 日,比一个回归年少了约 10 日 21 时。如果照此排年不加调整,那么每隔三年左右,农历日期对应的季节就会提前约一个月,十几年后春节就可能出现在夏天。为避免这种混乱,农历在若干年中额外插入一个"闰月",把缺的天数补回来——这就引出了"十九年七闰"的经典结论。而在 19 个回归年(约 6939.60 日)与 235 个朔望月(约 6939.69 日)之间,二者仅相差约 0.09 日,精度之高,体现了古人长期观测的智慧。
农历大小月怎么定:朔日定月首与"定朔"
农历每个月的第一天,固定在"朔"这一天,也就是月亮运行到太阳与地球之间、日月黄经相等、月相几乎不可见的那一天。这一规则叫"朔日定月首"——每月初一必为朔日。由此向后推,到一个朔望月结束,便是下个月初一,所以农历的月首永远与月相周期对齐。
但朔望月平均虽为 29.5306 日,实际每次却略有长短,并非固定值。如果固定用 29 天或 30 天,久而久之就会与真实朔日偏离。因此现代农历采用"定朔"法:不预设每月天数,而是根据天文计算出的实际朔时刻来排定——两次朔之间若跨 29 天,该月即为小月(29 天);若跨 30 天,则为大月(30 天)。哪个月大、哪个月小并不固定,需要逐年逐月推算,这也是为什么农历的大小月排布看起来"没有规律",实际上是精确追随天象的结果。
| 项目 | 小月 | 大月 | 排定依据 |
|---|---|---|---|
| 天数 | 29 天 | 30 天 | 两次朔之间跨越的实际日数 |
| 月首 | 初一为朔日 | 初一为朔日 | 朔日定月首 |
| 是否固定 | 否 | 否 | 需按"定朔"逐年推算 |
| 与月相关系 | 十五前后为望 | 十五前后为望 | 月相周期对齐 |
正因为采用了"定朔",农历的十五(望)有时落在十五、有时落在十六,这同样是因为朔望月的实际长度在波动。民间常说"十五的月亮十六圆",指的正是这种现象。理解"朔日定月首 + 定朔排大小月",就能解释农历月历上许多看似随机的细节。
为什么农历会有闰月:十九年七闰与无中气置闰
闰月是农历调和"月"与"年"的核心机制。由于 12 个朔望月比一个回归年少了约 10 日 21 时,必须隔一段时间增加一个月才能补齐。古人很早就发现,19 个回归年与 235 个朔望月几乎相等(差值仅约 0.09 日),而 235 = 19×12 + 7,也就是说,在 19 年中安排 7 个闰月,即可让农历与季节长期保持吻合。这就是著名的"十九年七闰"法则。
那么具体该闰哪一个月?唐代以后改用"无中气置闰法":二十四节气分为 12 个"节"与 12 个"中气",相间排列。如果一个农历月里不含任何一个中气,这个月就被定为闰月,其名称在前一个月前加"闰"字,如"闰二月""闰六月"。这一规则自唐代《时宪历》确立并沿用至今,是现行农历编排闰月的统一标准。
| 规则 | 内容 | 依据 / 结果 |
|---|---|---|
| 置闰原因 | 12 朔望月比回归年少约 10–11 天 | 不置闰则春节逐年漂移 |
| 十九年七闰 | 19 年加 7 个闰月 | 19 回归年 ≈ 235 朔望月,差约 0.09 日 |
| 无中气置闰 | 某农历月不含中气即为闰月 | 唐代后沿用,闰月名在前月加"闰" |
| 平年 | 12 个月 | 354 天或 355 天 |
| 闰年 | 13 个月 | 383 天或 384 天 |
从结果看,农历平年为 354 或 355 天(12 个月),闰年为 383 或 384 天(13 个月),闰年比平年多出约一个月。由于"无中气置闰"与节气的分布有关,闰月出现的位置也有规律——例如闰四月、闰五月、闰六月相对常见,而闰正月、闰腊月则极为罕见。这也解释了为什么"闰月"给人的印象总是集中在春夏季。
二十四节气是怎么定的:太阳黄经每 15° 一个节气
二十四节气是农历调和阴阳的关键工具,也是中国古代天文的核心成就。它的天文定义非常清晰:太阳沿黄道(太阳在天空中的视运行轨迹)每运行 15° 就对应一个节气,360° 共分为 24 个节气。二十四节气又分为 12 个"节"(节令)与 12 个"中气",两者相间排列:每个农历月的"节"在前、中气在后,中气则用于判断闰月。
其中,节气(节)包括立春、惊蛰、清明、立夏、芒种、小暑、立秋、白露、寒露、立冬、大雪、小寒;中气包括雨水、春分、谷雨、小满、夏至、大暑、处暑、秋分、霜降、小雪、冬至、大寒。现行农历采用据太阳真实黄经位置计算的"定气法",精度可达分钟级,因此每个节气在公历中的日期基本固定——上半年多在 6 日、21 日前后,下半年多在 8 日、23 日前后。下表列出二十四节气与太阳黄经的对照关系。
| 序号 | 节气名 | 类别 | 太阳黄经 | 公历常见日期 |
|---|---|---|---|---|
| 1 | 立春 | 节 | 315° | 2 月 3–5 日 |
| 2 | 雨水 | 中气 | 330° | 2 月 18–20 日 |
| 3 | 惊蛰 | 节 | 345° | 3 月 5–7 日 |
| 4 | 春分 | 中气 | 0° | 3 月 20–22 日 |
| 5 | 清明 | 节 | 15° | 4 月 4–6 日 |
| 6 | 谷雨 | 中气 | 30° | 4 月 19–21 日 |
| 7 | 立夏 | 节 | 45° | 5 月 5–7 日 |
| 8 | 小满 | 中气 | 60° | 5 月 20–22 日 |
| 9 | 芒种 | 节 | 75° | 6 月 5–7 日 |
| 10 | 夏至 | 中气 | 90° | 6 月 21–22 日 |
| 11 | 小暑 | 节 | 105° | 7 月 6–8 日 |
| 12 | 大暑 | 中气 | 120° | 7 月 22–24 日 |
| 13 | 立秋 | 节 | 135° | 8 月 7–9 日 |
| 14 | 处暑 | 中气 | 150° | 8 月 22–24 日 |
| 15 | 白露 | 节 | 165° | 9 月 7–9 日 |
| 16 | 秋分 | 中气 | 180° | 9 月 22–24 日 |
| 17 | 寒露 | 节 | 195° | 10 月 8–9 日 |
| 18 | 霜降 | 中气 | 210° | 10 月 23–24 日 |
| 19 | 立冬 | 节 | 225° | 11 月 7–8 日 |
| 20 | 小雪 | 中气 | 240° | 11 月 22–23 日 |
| 21 | 大雪 | 节 | 255° | 12 月 6–8 日 |
| 22 | 冬至 | 中气 | 270° | 12 月 21–23 日 |
| 23 | 小寒 | 节 | 285° | 1 月 5–7 日 |
| 24 | 大寒 | 中气 | 300° | 1 月 20–21 日 |
二十四节气不仅是农事指南,也是中华文化的重要符号。2016 年 11 月 30 日,二十四节气被列入联合国教科文组织人类非物质文化遗产代表作名录,被誉为"中国第五大发明";2024 年 12 月 4 日,春节也被列入人类非遗名录。可以说,节气与农历一起,构成了中国人观察时间、安排生活的独特坐标。它们在手机日历上的呈现与提醒设置,可参见功能大全相关说明。
干支纪年与六十甲子:十天干、十二地支与生肖
干支纪年是中国特有的纪时系统,由十天干与十二地支组合而成。十天干为:甲、乙、丙、丁、戊、己、庚、辛、壬、癸;十二地支为:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥。天干与地支依次两两相配,从"甲子"开始,到"癸亥"结束,共得 60 个组合,称为六十甲子——因为 10 与 12 的最小公倍数是 60,且阳干配阳支、阴干配阴支,循环往复,60 年一轮回。
十二地支还分别对应十二生肖:子鼠、丑牛、寅虎、卯兔、辰龙、巳蛇、午马、未羊、申猴、酉鸡、戌狗、亥猪。同时,天干各配五行:甲乙属木、丙丁属火、戊己属土、庚辛属金、壬癸属水。把年、月、日、时四组干支合起来,即所谓"四柱八字",是传统命理与择日的重要基础。下表汇总天干五行、地支生肖与六十甲子的基本结构。
| 序号 | 天干 | 天干五行 | 地支 | 对应生肖 |
|---|---|---|---|---|
| 1 | 甲 | 木(阳) | 子 | 鼠 |
| 2 | 乙 | 木(阴) | 丑 | 牛 |
| 3 | 丙 | 火(阳) | 寅 | 虎 |
| 4 | 丁 | 火(阴) | 卯 | 兔 |
| 5 | 戊 | 土(阳) | 辰 | 龙 |
| 6 | 己 | 土(阴) | 巳 | 蛇 |
| 7 | 庚 | 金(阳) | 午 | 马 |
| 8 | 辛 | 金(阴) | 未 | 羊 |
| 9 | 壬 | 水(阳) | 申 | 猴 |
| 10 | 癸 | 水(阴) | 酉 | 鸡 |
| 11 | (循环) | — | 戌 | 狗 |
| 12 | (循环) | — | 亥 | 猪 |
六十甲子从"甲子"起依次为:甲子、乙丑、丙寅、丁卯、戊辰、己巳、庚午、辛未、壬申、癸酉、甲戌、乙亥……如此循环,第 60 位为"癸亥"。干支不仅用于纪年,也用于纪月、纪日、纪时,是传统历法和择吉体系(如建除十二神、冲煞、彭祖百忌)共同的计算基础,这也解释了为何老黄历中处处可见干支字样。
十二时辰对照表:古代计时与北京时间换算
十二时辰是古人把一天划分为十二个时段、以十二地支命名的一种计时方法,每个时辰相当于现在的两个小时。需特别注意的是,其中的"子时"跨越午夜零点:子时从 23:00 开始,因此晚上 23 点以后便已属次日之子时,这也是民间"子时一过即换日"说法的由来。下表给出十二时辰与北京时间、地支及生肖的完整对应。
| 时辰 | 地支 | 北京时间 | 别称(部分) |
|---|---|---|---|
| 子时 | 子 | 23:00–01:00 | 夜半 |
| 丑时 | 丑 | 01:00–03:00 | 鸡鸣 |
| 寅时 | 寅 | 03:00–05:00 | 平旦 |
| 卯时 | 卯 | 05:00–07:00 | 日出 |
| 辰时 | 辰 | 07:00–09:00 | 食时 |
| 巳时 | 巳 | 09:00–11:00 | 隅中 |
| 午时 | 午 | 11:00–13:00 | 日中 |
| 未时 | 未 | 13:00–15:00 | 日昳 |
| 申时 | 申 | 15:00–17:00 | 晡时 |
| 酉时 | 酉 | 17:00–19:00 | 日入 |
| 戌时 | 戌 | 19:00–21:00 | 黄昏 |
| 亥时 | 亥 | 21:00–23:00 | 人定 |
十二时辰在黄历中还有重要作用:每天的吉凶不仅按"日"判断,也按"时"细分,所谓"吉时""凶时"即由此而来。民间常说的"午时三刻""子时动土",都与十二时辰的划分有关。理解时辰换算,能在查看黄历时辰吉凶时更加从容,也能帮助理解传统择吉中"日吉而时凶、日凶而时吉"的复杂情形。
农历数据从哪里来:紫金山天文台、中国天文年历与国家标准
农历虽属传统历法,但其编排并非各软件自行"凭经验"推算,而是有明确的权威来源。现行农历由中国科学院紫金山天文台负责编算,是《中国天文年历》的组成部分。紫金山天文台是我国唯一专门从事历书天文研究、并负责编算年历的机构,每年编算的历书数据是各类日历的统一基准。
在此基础上,国家标准 GB/T 33661-2017《农历的编算和颁行》由紫金山天文台起草,统一了农历的编排规则与精度要求,使全国乃至各类软件产品的农历数据有了共同的规范。这一标准的发布,是农历从"各家各说"走向统一编排的重要标志。
| 来源 / 标准 | 性质 | 作用 |
|---|---|---|
| 紫金山天文台 | 中国科学院下属专门机构 | 编算农历,我国唯一专职编算年历的机构 |
| 《中国天文年历》 | 官方天文历书 | 刊载节气、朔望等精确天文数据 |
| GB/T 33661-2017 | 国家推荐性标准 | 统一农历编算与颁行规则、精度 |
| 日历软件的换算方式 | 查表法 | 预先获取已算好的节气/大小月/闰月数据存储调用 |
值得一提的是,多数日历软件并不实时进行天文计算,而是事先从权威机构获取已经算好的节气、大小月、闰月数据,用"查表法"存储调用。因此只要数据源正规、更新及时,软件显示的农历、节气、干支就是准确可靠的。这从技术上回答了"手机万年历到底可信不可信"的疑问。相关功能与使用入口,可参阅功能大全。
万年历到底准不准:科学解释与常见差异
综合前面的原理可以得到明确结论:正规日历软件的农历、节气、干支数据是准确的,因为它们采集自紫金山天文台编算、符合 GB/T 33661-2017 的权威历书,采用查表法存储,误差几乎可以忽略。凡是在这些字段上出现"农历日期对不上""节气差一天"的情况,通常不是算法错误,而是数据版本过旧、未及时更新所致——正规软件会随历书更新而同步修正。
真正可能出现差异的是黄历宜忌部分。因为建除十二神、黄黑道十二神的起算方法在民间存在不同流派(例如换月是以节气为界还是以农历初一为界),同一天在不同软件上出现宜忌冲突是常见现象,这属于规则口径不同,而非"算错"。下表对农历数据与宜忌数据的可靠性做一区分。
| 数据类型 | 权威依据 | 可靠性 | 差异原因 |
|---|---|---|---|
| 公历 ↔ 农历换算 | 紫金山天文台 / 国标 | 高,可视为准确 | 数据版本更新及时即可 |
| 二十四节气 | 定气法,太阳黄经位置 | 高,日期基本固定 | 几乎无争议 |
| 干支纪年 / 纪日 | 六十甲子固定循环 | 高,可精确推算 | 无争议 |
| 黄历宜忌 | 建除、黄黑道等传统规则 | 民俗参考,因流派而异 | 换月口径与流派不同 |
| 吉神凶煞 / 星宿 | 神煞系统、二十八星宿 | 民俗参考,各书不一 | 起例方法差异 |
因此,判断一款日历"准不准",应分开看待:天文历法层面(换算、节气、干支)以权威历书为准,是科学且确定的;民俗择吉层面(宜忌、神煞)属传统文化参考,存在合理差异。理解了这一区分,就不会因为不同软件"今天一个说宜嫁娶、一个说忌嫁娶"而困惑,也能更理性地使用黄历功能。若想进一步了解宜忌的文化内涵与用法,请见老黄历择吉指南;更多疑问可查阅常见问题。
历法原理常见问题
万年历准不准?
万年历的农历、节气、干支依据中国科学院紫金山天文台编算的《中国天文年历》与国家历法标准,公历农历换算准确可靠;黄历宜忌部分属民俗范畴,不同应用可能略有差异。
农历是阴历还是阳历?
农历既不是纯阴历也不是纯阳历,而是阴阳合历:它用朔望月定月份,用回归年定年份,并用二十四节气调和日月节律,因此把农历叫作"阴历"并不准确。
二十四节气是怎么定的?
二十四节气按太阳沿黄经每运行 15° 划分为一个节气,360° 共 24 个,采用据太阳真实位置的"定气法",因此每个节气在公历中的日期基本固定。
为什么农历会有闰月?
12 个朔望月约 354 天,比回归年约 365 天少约 11 天,若不置闰春节会逐年漂移。现行采用"无中气置闰法":某农历月若不含中气,该月即为闰月。
农历数据的权威来源是什么?
现行农历由中国科学院紫金山天文台负责编算,属《中国天文年历》组成部分;国家标准 GB/T 33661-2017《农历的编算和颁行》统一了农历编排规则与精度。