天干地支從哪裡來?答案在甲骨卜辭,不在後來的曆書

天干地支最早的用途是記日,不是記年,而且它有多老可以直接從實物看出來:商代甲骨卜辭裡已經有一整套十干配十二支、六十日一輪的日名,商人拿它排祭祀、記占卜當天的日子,時間大約落在西元前十三世紀。這套日名從那時一路數到今天沒有中斷,春秋的日食記錄帶著干支日期,天文回推可以獨立對上,等於替甲骨上的刻辭做了外部校正。至於「黃帝命大撓作甲子」,那是戰國到漢代編纂裡的一句話,不是當時留下來的材料。

我第一次真的把這件事看懂,是在南港中研院史語所的文物陳列館。展廳冷氣很強,玻璃櫃上有燈,反光會擋住視線,你得稍微側一下身才看得清楚。櫃裡放著一版牛肩胛骨,解說牌上寫著商代,我記得大概是武丁前後。骨面泛黃,刻痕細得像用針尖劃出來的,密密麻麻排成好幾列。

我就站在那裡一個字一個字讀過去。讀出來是「甲子」「乙丑」「丙寅」,照順序一路排下去。那一瞬間我想到的不是「好古老」,而是:這不是「甲子」被發明,這是「甲子」已經被當成編號在用,而且編號後面的表已經排好了。

那天下班回家,我從抽屜裡把家裡那本農民曆翻出來。今天那一格旁邊印著兩個字的日干支。當然,用手指是數不回商代的,但那個邏輯你一看就懂:這條線上沒有任何一個地方需要「重新開始」。

十和十二怎麼會變成六十

十干是甲乙丙丁戊己庚辛壬癸,十二支是子丑寅卯辰巳午未申酉戌亥。兩邊同時往前跑,十的那一列跑六趟、十二的那一列跑五趟,第六十次才同時回到原點。六十不是什麼神祕數字,它就是十和十二的最小公倍數。

甲骨上那些排成一整列的刻辭,功能大概就是對照表。商人不需要背,照表查就好。反過來說,如果十干和十二支原本是兩套各自獨立的東西,那麼有人把它們併起來跑、而且併得很整齊,這件事本身就已經發生在甲骨那個年代了。

還有個小地方:你在甲骨上不會看到「干支」兩個字連成一個詞。「干支」是後來的合稱,商人寫的、記的是「日」。

甲骨上的干支在記什麼

卜辭的格式很固定,開頭常常就是兩個字,那是占卜當天的日名,接著才是「卜」、貞人的名字、要問的事情。所以干支在商代的角色是時間戳記,是行政工具,不是命理工具。

更能說明這點的,是商王自己的名字。大甲、小乙、武丁、祖庚、康丁、武乙,一長串王名都是用十干在排。十干對商人來說不只是日期,還是一套分類標籤,連王室成員的稱號都掛在上面。

再往上一層,是把這些零散的日名串成時間軸。商代的周祭把幾種祭祀輪流排下去,形成一個反覆的週期,董作賓在《殷曆譜》裡就是靠這個,把一大堆卜辭排出先後次序。這也是為什麼甲骨研究不只是認字,還得排曆。

春秋的日食,是從外面校正這條線的錨

問題在於:一個純循環的六十個日名,本身沒有起點、沒有數字,如果只看文本,你永遠不會知道中間有沒有人動過手腳。

《春秋》解決了這件事。它記日食的寫法是「某年王幾月,某某日,日有食之」,那個「某某日」就是干支。隱公三年二月己巳那一條是《春秋》最早的日食記錄,天文回推可以定到西元前七二〇年,中國境內可見。日食不認得你寫什麼,時間到了就是到了,所以它是一把外部的尺。

兩邊對得上,你才有資格說「連續」。這也是為什麼在甲骨上讀出來的日名序列,可以跟春秋的記錄接起來——不是靠誰的權威,是靠天。

記日的干支很老,記年的干支晚得多

這裡是最容易被混在一起的地方。先秦記年,主要用王年(魯隱公元年這種算法)和歲星、太歲那一套,不是把六十甲子直接套在年份上。把日名那樣的循環拿去當年的編號,普遍使用要到漢代以後,東漢才比較穩定。

《爾雅·釋天》留下另一層名字:配十干的歲陽,像閼逢、旃蒙;配十二支的歲陰,像攝提格、單閼。這套名稱後來才跟干支併著講。它是很好的證據,說明干支不是一開始就長成今天這個樣子,中間疊了好幾層命名上去。十二支配時辰、配生肖也都是更晚的事,生肖配地支至少要到東漢王充《論衡》才看得到。

所以「天干地支從哪裡來」這個問題,答案得分兩層:拿來記日的干支很老,老到商代;拿來記年的干支年輕得多。兩層混著講,就會把年干支推得太早。

黃帝和大撓,是後世追認的發明人

「大撓作甲子」這句話,見於《世本》〈作篇〉一類的材料,《後漢書·律曆志》那條線又把黃帝拉進來。這些都是戰國到漢代的編纂,離甲骨上的干支已經一千多年。

古人替一套已經用了很久的東西找發明人,是很常見的模式。字是倉頡造的,曆是容成造的,甲子就給大撓。問題是:甲骨上的干支已經在跑,甲骨上卻沒有半個字提到誰發明它。從證據的角度,這條說法只能擺在「後世的傳說」那一格,不是「起源」那一格。

這條線不是沒有皺褶

有幾件事得老實講。董作賓的《殷曆譜》之後被陳夢家等人修正過,商代的月首怎麼定、閏月怎麼擺,學界到現在還在爭。春秋那批日食記錄也不是每一條都能對上天文,有的可能是誤記,有的可能是抄錯了干支,有的本來就不是魯國看得到的日食。

所以「連續」講的是日名的序列沒有斷,不等於每一條記錄都準,也不等於曆法排法已經定案。而且,知道這套編號很老,跟它能拿來預測什麼,是兩件完全不同的事——前者是實物和天文算出來的,後者不是。

下次翻農民曆,你可以做一件很簡單的事。找到今天那一格,看它的日干支,然後告訴自己:這兩個字跟玻璃櫃裡那排刻痕,是同一套編號。你不需要相信誰的說法,你只需要知道這條線是從哪裡開始數的。

關於作者

掀曆人是一群從小幫家裡翻農民曆的人,家裡的曆書就擱在電話旁邊,過年前總要換上新的一本。他們對紙本曆書的欄位、節氣與生肖的排法熟得像自家抽屜;遇到疑問,習慣回頭翻舊版本、舊書刊和原文。

認識我們