先摆一个说法出来:
「正月」这两个字,本来不指一月。
它指的是岁首所在的那个月——一年的头一个月。而这个头一个月到底是哪个月,两千多年里改过很多回。
如果你穿越到秦朝过年,那个月在十月。
一、三正:哪个月当岁首
古人靠北斗七星定月份。斗柄指到哪个方位,就叫「建」哪个月,寅月、卯月、辰月是这么来的。
哪个月当一年的头,各朝不一样:
| 朝代 | 斗柄指向 | 岁首相当于今农历 |
|---|---|---|
| 夏 | 建寅 | 正月 |
| 商 | 建丑 | 十二月 |
| 周 | 建子 | 十一月 |
| 秦 | 建亥 | 十月 |

这套规矩,古人叫「三正」。
胡三省注《资治通鉴》时说得最清楚:
古有三正:子为天正,周用之,以十一月为岁首;丑为地正,殷用之,以十二月为岁首;寅为人正,夏用之,以十三月(即一月)为岁首。
《史记·历书》里也有一句:
夏正以正月,殷正以十二月,周正以十一月。
上一篇讲子时的时候提过,周朝以十一月为正、以夜半为朔。说的就是这件事。
注意商和周的位置:商是十二月,周是十一月,这两个容易记反,不少文章就写颠倒了。以《史记·历书》原文为准。
二、秦朝的年,在十月
秦始皇统一六国后,用的是《颛顼历》,岁首定在建亥之月,也就是夏历十月。
所以秦朝人过年,在秋天。
有一个细节要分清:秦人不把十月叫「正月」。他们把「正月」改称「端月」,而四季的搭配照旧按夏历走——春天仍然是正、二、三月。
顺带说一句,「正月」今天读「征月」。流传最广的说法是避秦始皇的名讳,正与政同音——跟上面改「端月」是同一个由头。这个说法,清代黄生在《字诂》里已经驳过:正字本来就有平声的读法,不是避讳改出来的。
这件事后面还要用到。
汉朝初年接着用秦历,一用就是一百多年。刘邦当皇帝那阵,新年大典就在十月办。《史记·刘敬叔孙通列传》记汉高帝七年「长乐宫成,诸侯群臣皆朝十月」——长乐宫刚落成,诸侯和大臣们就赶在十月来朝贺。
三、汉武帝把年改回来了
到汉武帝太初元年,公元前 104 年,这件事定了下来。
这一年颁布《太初历》,恢复夏正建寅,重新以正月为岁首。牵头的是太史令司马迁;具体造历的二十多人里,治历官邓平和巴郡的落下闳出力最多,方士唐都分管天部。
上一篇讲十二时辰时提过《太初历》,说那是十二时辰定形的时候。这次讲的是同一部历法干的另一件事——它把岁首也定死了。
《太初历》还有个更长远的影响:它第一次把二十四节气编进历法,又立下「没有中气的月份作闰月」这条规矩。今天农历的骨架,就是那时候搭起来的。
从太初元年开始,「岁首」和「正月」合成了一件事——一年的头一个月,就是正月。
听起来平淡,但它管住了此后两千多年。
四、改回来之后,又反复了四次
改朝换代要「改正朔,易服色」,表示受命于天。所以太初历之后,岁首又动过几回:
| 时间 | 谁 | 改成 |
|---|---|---|
| 公元 8—23 年 | 王莽 | 殷正(十二月为岁首) |
| 237—239 年 | 魏明帝曹叡 | 殷正 |
| 689—700 年 | 武则天 | 周正(十一月为岁首) |
| 761—762 年 | 唐肃宗 | 周正 |
中间那一段最有故事。
武则天正准备称帝。永昌元年(689 年)十一月,她下诏改用周正,把十一月定为新年的头一个月,十二月改叫「腊月」,原来的正月改叫「一月」。
后果是:永昌元年只剩下十一个月,一共 325 天。
那一年,中国人过了一个只有 325 天的年份。
她改岁首图的是政治,不是历法。
九年之后(698 年),她又动了一次手。那一年管历的人推算,转年该闰腊月;而她想要的是正月初一凑成「甲子朔旦冬至」——节气、月序、干支日序三样在同一天开头,古人眼里最硬的那种祥瑞。她挑了个由头,下令把闰月挪走,硬凑出这一天,随即改元「圣历」。
可现代学者用《麟德历》和天文工具回推,那一年的冬至其实落在壬戌日,不是甲子日。
祥瑞是造出来的。
到久视元年(700 年)十月,她又改了回去。《资治通鉴》记这一笔很干脆:「甲寅,制复以正月为十一月,一月为正月。」
五、岁首、正月、四季,是三回事
回到秦朝那个细节。
秦人以十月为岁首,却不把十月叫正月,四季也照夏历走。这说明什么?
说明在古人那里,「岁首」「正月」「四季怎么配月份」,是可以分开的三件事。
这不是后人替古人分的。唐人司马贞注《史记》,在「诸侯群臣皆朝十月」这一句下写得很清楚:
汉以十月为正,故行朝岁之礼,史家追书十月也……案:诸书并云十月为岁首,不言以十月为正月。
十月是岁首,正月还是正月。一千多年前,读史的人就把这两件事分开了。
不过,把这两件事分开,讲的还是「怎么读古书」。再往下一层,问题就变了——「三正」这套说法本身,到底站不站得住?
语言学家王力就据此认为「三正」之说并不可信——如果三代真的各用一套历法,秦朝为什么不干脆把十月改名叫正月?
这个提醒,读古书的时候很有用。
《春秋·成公元年》记了一句「二月无冰」。杜预注这一笔,只用了六个字:「周二月,今之十二月。」周历二月就是夏历十二月,正该是最冷的时候,河里没结冰,史官才要郑重记上一笔。要是按夏历二月去读,就完全读不通了——那时候早该开冻了。
不了解岁首的差别,就会以为古人记错了。
六、一个没被采纳的聪明办法
北宋的沈括想过另一条出路。
他在《梦溪笔谈·补笔谈》里说,不如干脆抛开月亮,纯用节气来排月份:
直以立春之日为孟春之一日,惊蛰为仲春之一日,大尽三十一日,小尽三十日,岁岁齐尽,永无闰余。
立春就是正月第一天,惊蛰就是二月第一天;大月三十一天,小月三十天,再也不用设闰月。
这是一部纯阳历。它跟干支历的思路几乎一样——都以节气分月,都不设闰月。前面讲三本历法时说过,干支历就是这么走的。区别在于,干支历没当成老百姓的日常历法,却一直用到今天。
沈括知道这想法会挨骂。他在这段话后头写了一句:
今此历论,尤当取怪怒攻骂,然异时必有用予之说者。
当时要被骂,将来总会有人用。九百年后读这一句,不像是对宋人说的。
两千多年里,「正月」这两个字的意思变过好几回。今天说正月初一,指的是同一件事;在秦朝说正月,指的是另一个月。
再往后,讲的是钟表上的出生时间——它不等于你出生的时辰。
相关枢纽页:历法术语表 | 历法记录:一年从哪一天算起 | 数据集与预印本
作者:嘉言一得(邝楚嘉)|独立天文历法爱好者,致力于可核验的原始文献与历法数据归档。
平实记录 · 数据集 · 预印本:GitHub / WordPress / Zenodo(DOI: 10.5281/zenodo.22788686)