立春换岁,还是正月初一换岁?

每年总有那么十几天,会被人反复问同一个问题:孩子到底属蛇,还是属马?

就取 2026 年春节前的那一段来说。

先看两个例子

2026 年 2 月 4 日到 2 月 16 日出生的孩子。

这一年立春在 2 月 4 日凌晨 4 点 02 分,落在农历乙巳年腊月十七;春节在 2 月 17 日。也就是说,从立春到除夕,中间隔着 13 天。

这 13 天出生的孩子:

  • 按民俗算法,年还没过,仍是乙巳蛇年腊月,属蛇
  • 按干支历算,立春已交,干支年已经是丙午

再看 2025 年 1 月 29 日到 2 月 2 日出生的孩子。

2025 年春节在 1 月 29 日,立春在 2 月 3 日,是正月初六。所以正月初一到初五这五天出生的:

  • 按民俗算法,年已经过了,是乙巳蛇年,属蛇
  • 按干支历算,立春还没到,干支年仍是甲辰

把两组摆在一起看就明白了。同样是”属蛇”,前面那组的干支年是丙午,后面那组是甲辰。民俗口中的属相没变,干支历里的年差了整整两年。

同样是属蛇,干支年差两年:2026 年立春在腊月、2025 年立春在正月初六

问题不在谁对谁错,在于它们本来就不是同一套历法

三套历法同时在跑

我们日常嘴里说的”年”,其实混着三套时间系统。

第一套是公历。 地球绕太阳一圈算一年,365 天多一点,多出来的那点靠闰年补。岁首是 1 月 1 日。这套跟干支纪年没关系,只用来记录钟表时间。

第二套是农历。 月份跟着月亮走,从这次看不到月亮到下次看不到月亮,算一个月,29 天半。12 个月加起来 354 天,比太阳年短 11 天。差的这些天,攒几年就多出一个月来,那个月就是闰月。岁首是正月初一。

第三套是干支历。 完全跟着太阳走。太阳在黄道上每走过 15 度,定一个节气,二十四个节气正好一圈。岁首是立春。

干支纪年的年与月,出自第三套

公历看太阳、农历看月亮、干支历看节气,干支纪年出自干支历

这就是为什么会出现前面那两组错位——民俗属相看的是农历的正月初一,干支纪年看的是干支历的立春,两家的”新年”根本不在同一天。

农历的正月,是从冬至倒推出来的

这一节可能有点反直觉,但很重要。

农历的编算现在是有国家标准的,2017 年发布,中国科学院紫金山天文台起草,编号 GB/T 33661-2017。里面定了五条规则,我挑三条说:

  • 月亮完全看不见的那天(朔日),定为每个月的初一
  • 冬至落在哪个月,那个月就定为农历十一月
  • 十一月往后数第二个(不数闰月),就是正月

看出来没有——农历的正月不是直接定下来的,是从冬至倒推出来的。整套历法的锚点压在冬至上,不在春节上。

闰月也是同一套逻辑。二十四节气里有一半叫”中气“,共十二个:雨水、春分、谷雨、小满、夏至、大暑、处暑、秋分、霜降、小雪、冬至、大寒。农历规定,哪个月摊不上中气,哪个月就设为闰月。

所以闰月不是凭空多出来的一个月,是那个月份确实夹在两个中气中间、够不着任何一个,才被指定为闰月。

顺便说一句:2025 年乙巳蛇年是农历闰年,384 天,年头年尾各有一个立春(2025 年 2 月 3 日和 2026 年 2 月 4 日),民俗叫”双春年”。2026 年丙午马年只有一个立春,在 2027 年 2 月 4 日,腊月廿八。再往后一年是”无春年”,一个立春都没有。这些说法指的都是在农历年内数立春的个数,跟吉凶没关系,纯粹是历法凑出来的现象。

干支历为什么用立春

回到干支历本身。

干支纪月用的是「气」,不是「月」。月相的圆缺跟气候冷暖没有对应关系,初一的月亮是圆是缺,改变不了地里的墒情。能反映寒来暑往的,是太阳在黄道上的位置。

立春那一刻,太阳到达黄经 315 度,阳气开始回升。把这一刻定为一年的起点,逻辑上是自洽的。

同样的道理,干支月也不是按农历初一换的,是按「节」换的。二十四节气里,立春、惊蛰、清明、立夏、芒种、小暑、立秋、白露、寒露、立冬、大雪、小寒这十二个叫”节”,剩下十二个叫”中气”。干支月的边界落在「节」上:立春一到就是寅月,惊蛰一到就是卯月,跟农历是不是初一没有关系。

节和中气这两班人马,各管一摊:节管分月,中气管闰月。很多人学了很多年,还把它们混为一谈。

两套口径,各管一摊

这里要说清楚一件事,免得以后在文章里被人挑毛病。

国家标准的口径是:生肖更替以农历正月初一为基准,干支纪年与农历年同步。这一点在 GB/T 33661-2017 里写得很明确,官方日历、节日、民俗活动都按这个来。

干支纪年的通行做法是:立春换年

两套口径并存,各管一摊,谁也替代不了谁。你去跟人聊”属什么”,那是民俗话题,按正月初一;你要推干支纪年,那按立春。

所以别急着下”生肖应该按立春算”这种全称判断——那是在跟国标唱反调,也容易吵起来。真要说,就说清楚:民俗属相看正月初一,干支纪年看立春。两边都不错,只是各管各的。

同一个孩子,两套口径给出两个答案:民俗上属蛇,干支年是丙午。两句话,不冲突。

还有一件事没说

上面通篇讲的是”哪一天”。但干支纪年要的是「哪一刻」。

同样一个出生日期,在乌鲁木齐出生和在揭阳出生,真太阳时能差将近两个小时。钟表上的北京时间过了一整天才换日,可太阳并没有走到那个位置。时辰交界、特别是子时交界上,这一步算错,日子就要归到前一天或后一天去。

这是后面要讲的事。

这个号写的是中国古代天文与传统历法,先从最容易被传乱的底盘讲起:三套历法的关系(本篇)、交节时刻与十二时辰的交界、真太阳时、六十甲子是怎么排出来的、闰月是怎么插进去的。

相关枢纽页:历法术语表历法复原:一年从哪一天算起数据集与预印本


作者:嘉言一得(邝楚嘉)|独立天文历法爱好者,致力于可核验的原始文献与历法数据归档。
考据笔记 · 数据集 · 预印本:GitHub / WordPress / Zenodo(DOI: 10.5281/zenodo.22820072)