
TL;DR: 越南历是阴阳历,因为月份按月亮周期(朔日)计算,但年份必须通过节气与太阳回归年保持同步,所以每隔几年要插入一个闰月。正因如此,每年春节的日期都不同,而且有些年份越南历会因以东经105度计算而与中国历相差一天。
越南历是什么历,为何不是纯阴历?
越南历是一种阴阳历(lunisolar calendar):月份按月亮周期计算,而年份则锚定在太阳回归年上,使四季不致漂移。按美国海军天文台的分类,阴阳历「力求同时与太阳年和月相保持同步」,而由于一个太阳年并不包含整数个月亮月,这类历法必须调整年和月的长度[1]。
如果只按纯月亮计算,每年只有约354天,比春分年短约11天。几十年后,正月就会落到秋季中间,春节会在四季中游走。对于一个以节气作为播种、祭祀节点的农业社会来说,这是无法接受的。因此东亚先民在太阴历上又加了一个太阳的坐标,把它变成了双重历法。
机制:朔日、中气与置闰原则
朔日即初一
农历月份的第一天是包含朔点的那一天:此时地球、月亮和太阳排成一线,月亮居中,因此月亮与太阳的角距为0度,我们看不到月亮[2]。朔望月平均约29.53天,变化范围在29.27至29.84天之间,所以农历月份被取整为29天(小月)或30天(大月)[3]。
中气是太阳的坐标
中气是把黄道等分为12个部分的点,其中四个重要点是春分、夏至、秋分和冬至[2]。每个中气都对应一个固定的农历月份:无论月份长短如何,春分总在二月,夏至在五月,秋分在八月,冬至在十一月。这样农时就不会漂移。
置闰规则
规则可归纳为四条[2]:
- 农历月份的第一天是包含朔点的那一天。
- 平年有12个月,闰年有13个月。
- 冬至总是落在农历十一月。
- 在闰年中,如果有一个月不含中气,该月即为闰月;如果有多个不含中气的月份,则只有冬至之后的第一个月被视为闰月。
闰月沿用其前一个月的名称并加「闰」字,例如闰二月紧跟在普通二月之后。在技术上,人们计算两个朔点:第一个冬至前的朔点A和第二个冬至前的朔点B。如果A到B的间隔少于365天,则该年为平年;如果超过365天,则为闰年[2]。
为何必须使用地方时区?
朔点和中气是时刻,不是日期。要知道某个时刻落在哪一天,必须换算成制历地的时区。NASA的天文著作明确指出:历法是一种社会契约,而非科学论断[4],因此选择哪个时区是行政决定。越南选择东经105度,即第7时区[2]。
为何有些年份越南春节与中国春节不同?
因为越南按东经105度计算,中国按东经120度计算,两者相差一个时区[2]。当朔点落在河内时间晚上23点左右时,北京已是次日0点,于是两国过年相差一天。这不是错误,而是各国以自己官方时区为准的必然结果。
有记录的例证:1968年戊申春节,越南比中国早一天过年,因为下一个朔点落在1968年1月29日越南时间23时29分,而按北京时间已进入1月30日[3]。
腊月时大时小:为何没有固定周期?
每逢春节都有一个熟悉的问题:哪一年有腊月三十,哪一年没有?答案是没有固定周期,因为农历月份的长度取决于地球、月亮和太阳三个天体的实际运动,而不只是月亮[3]。月亮的运动受到太阳、地球、其他行星引力乃至天体形状不规则引起的扰动,所以月份长度不断波动[3]。
越南科技院历法研究室原干部陈进平(Trần Tiến Bình)先生表示,2014、2015、2017、2018、2019、2020、2021年腊月都有30天,但2022年腊月为小月,2023和2024年又是大月,此后连续为小月,直到2033年才再有腊月三十[3]。
差几秒也能改变一整天
因为朔点只要落在某一天0至24小时之间的任何时刻,该天就成为初一,所以只要计算偏差几十秒,就足以把大月变成小月[3]。中国紫金山天文台2002年公布的出版物记载,2057年9月28日、2089年9月4日和2097年8月7日曾被误算到次日,因为朔点落在23时57分至23时59分[3]。
三种历法对照表
| 标准 | 阳历 | 纯阴历(如伊斯兰历) | 阴阳历(越南、中国、犹太历) |
|---|---|---|---|
| 主要依据 | 地球绕太阳 | 月相周期 | 两者 |
| 平年长度 | 约365天 | 12个朔望月,约354天 | 12个朔望月,约353至355天 |
| 调整方式 | 加闰日 | 不调整 | 加闰月 |
| 结果 | 季节固定 | 月份在四季中漂移 | 季节固定,月份仍按月亮 |
| 例子 | 格里高利历 | 伊斯兰历 | 越南历、中国历、犹太历 |
上表显示关键点:阴阳历不是「阴历加一点阳历」,而是一个独立体系,有复杂的置闰规则,不能通过减去一个固定数字从格里高利历推出。
为何越南历不能用简单公式计算?
越南历是天文历,依据太阳、地球和月亮的真实运动计算,而不是像格里高利历那样按固定规则推算[2]。结果是,想查任何一个农历日期,都必须计算附近的朔点和中气,而不能按默冬章那样的19年周期加减。默冬章(235个朔望月约等于19个太阳年)是制作阴阳历的古典工具,但它本身每个周期也偏差约两小时[1],所以现代历法仍须逐年重算。
这也解释了为何印好的万年历表在遥远未来可能相差几天:它们依据不同的月亮运动理论版本,而朔点上的微小误差会改变整个月。
春节及其他节日锚定在哪里?
春节是农历正月初一。由于冬至总在十一月[2],春节通常落在冬至后的第二个朔日,若当年有闰月插在其间则为第三个朔日。因此春节总是落在阳历1月底至2月中旬之间,绝不会漂到夏季。这正是锚定太阳的好处:节庆仍保持在正确的季节。
其他节日如端午节(五月初五)、中秋节(八月十五)也遵循同样原则,始终位于固定的季节范围内。如果越南历是纯阴历,这些日子会在几十年内逐渐漂过四季。
那么对开头问题,简洁的答案是什么?
越南历是阴阳历,因为它必须同时满足两个约束:月份按月亮计算,以保持朔日、望日、初一的含义;年份必须跟随太阳,使四季和节气不漂移。基于中气的置闰机制,就是解决这两个约束的技术方案。选择东经105度是行政决定,使越南历有时与中国历相差一天,这在历法上很正常。