甲骨文「日有食之」諸條的可核驗性

最后修订时间:2026年10月18日

简体中文 | 繁體中文 | English | 日本語 | 한국어

引子

「日有食之」這四個字,多數人第一次見到是在《春秋》裡。魯隱公三年,二月己巳,日有食之——那是傳世文獻裡最早的一組干支日食記錄。

商代牛骨甲骨刻辭
圖 1 商代甲骨刻辭,示意;此骨非本文所論「日有食之」諸條原件。
圖源:Wikimedia Commons「Shang Ox Bone Oracle Bone 01.jpg」(CC0)
版權歸原作者或原機構所有;如涉侵權,請聯繫本站刪除。

比《春秋》更早的,是刻在甲骨上的一批。它們散在武丁到商末的卜辭裡,形態各異:有的只記一條幹支,有的記明是夜裡,有的連「食」字都還認不真切。

這批刻辭有一個共同點,也有一個共同的問題。共同點是,它們都寫在龜甲和牛骨上,是當時人親手刻下的、用來問事的記錄;共同的問題是——它們當中真正能被現代天文學拿出來驗算的,其實只有很少的一部分。剩下的那些,麻煩恰恰不在「算不出來」,在「它記的是不是日食」這一步都還沒定下來。

登封观星台
图 2 登封观星台。元代郭守敬所建,测影台与量天尺俱在。同类建筑示意;非本文所论某件原件。
图源:Wikimedia Commons,Dengfeng Observatory.jpg(CC BY-SA 2.0)
版权归原作者或原机构所有;如涉侵权,请联系本站删除。

下面要做的,就是把這三堆材料分開擺好,說清楚每一堆到底站在什麼位置上。

一、先分清三堆材料

甲骨卜辭裡的日月食記錄,按出土組類和文本特徵,大致能分成三堆。三堆的處境差別很大,先把判詞列出來,後面逐堆展開。

材料 條數 屬商王哪一期 判
賓組 月食 5 條 武丁—祖庚 【通說】可信性學術界無爭議
賓組「三焰食日」 1 條(《甲骨文合集》11506) 武丁 【一說】日食說已基本被否定
曆組 日食、月食 5 條(一說 6 條) 曆組(該組王世歸屬本身有爭議) 【待檢】連性質都未定

這張表就是全篇的骨架。三堆材料的差別,不只在數量上,更在「學界對它的把握程度」上:第一堆能算出數,第二堆算出來過但被否了,第三堆連它記的是不是天象都還在吵。

先說清一個字。下面凡是提到「賓組」「曆組」,指的是甲骨刻辭的分類組名,不是人名,也不是朝代名。這種分法來自對字體、貞人、出土坑位的綜合判斷,是甲骨學的一項基礎工作。它本身也有討論,不過只要知道這三堆不是一個時代的同一批東西,就夠用了。

二、能算的那一堆:賓組五次月食

五條記錄

賓組裡有一組月食卜辭,共五條。它們的干支與夜次依次是:

癸未夕、甲午夕、己未夕皿庚申、壬申夕、乙酉夕。

「夕」指夜間。前兩條、第四條、第五條都是單記一個「夕」,第三條多出來一個「皿」字,把一個夜晚跨成了兩個干支日。就是這一個字,成了這一堆材料裡唯一的硬骨頭。

「皿」字

「皿」的釋讀有十幾種說法,學界至今沒有統一。目前獲較多認同的一種,是裘錫圭讀為「向」——「己未夕皿庚申」讀作「己未夕向庚申」,與《詩經》裡「夜向晨」的「向」同義,意思是己未這個夜晚一直延續到庚申的清晨。

按這一讀法,這次月食發生在己未夜到庚申清晨之間。這是一個交接點上的記錄,落在兩天之間。這一點對後面的驗算很要緊:正因為有了「向」,這次月食的時間窗才被收窄到半個夜裡。

這一讀法屬【一說】。另有學者主張「皿」就照字面釋為皿,或作別的讀法,各家差異會直接影響這次月食究竟落在哪一夜。

算出來的結果

現代學者用天文回推的辦法,拿這五條去比對殷商時期的月食表。張培瑜得出的結論是:這五次月食可以落在公元前 1201 年到公元前 1181 年之間。

更關鍵的一句是:在公元前 1500 年到公元前 1000 年這五百年裡,只有這一組月食序列,同時滿足干支相合、順序相合這兩個條件。就是說,拿這五條去篩那五百年裡的全部月食,能配上號的只有這一組,沒有第二組。

順著這個結果往上推,武丁在位的年代被收在約公元前 1250 年到公元前 1192 年之間。

這一條落進了「夏商周斷代工程」的階段成果範圍裡,也屬【通說】。

為什麼能算出「唯一解」

這裡有一個方法論上的要點,值得單獨說。

回推三四千年前的日月食,可用的信息其實很少:只有一個干支,只有「夜」或「夕」這一個時段提示,只有安陽一帶可見這一個地理約束。單憑其中任何一條,都定不出年份——六十干支轉一圈只要六十天,六十年裡安陽可見的月食不止一次。

能算出「唯一解」,靠的不是某一條記錄特別精確,靠的是五條記錄同時滿足全部約束。單條的精度很低,五條合起來的約束力卻很強。這是這一堆材料能被委以重任的真正原因,也是它和後面兩堆材料的分水嶺。

一處對照

也有學者給出不同的年份組合。德效騫(Homer Dubs)同樣把「己未夕皿庚申」推在公元前 1192 年 12 月 27 日,與張培瑜一致;但其餘四條,各家取值就分散了。董作賓、陳尊嫻、張光直、吉德煒、範毓周、夏含夷等人的推定各有出入,這些不同結果在朱鳳瀚等人的綜述裡有對照表可以查。

所以「唯一解」這個說法要加限定:它是對某一種組合方式而言的,不是說每一條月食都只有一個解。這一條屬【一說】。

三、被否掉的那一堆:「三焰食日」

原文與它曾經的分量

賓組裡另有一條刻辭,比那五次月食出名得多。它出自《甲骨文合集》11506,是一片龜腹甲,出在殷墟 YH127 坑。辭作「乙卯允明霧,三焰食日,大星」——這一步的分句與釋字,各家並不完全一樣。

這條記錄曾經被看得很重。董作賓在《殷曆譜》裡把它釋為一次日全食:「三焰」是日珥,「大星」是全食時能看見的水星或金星。若此說成立,它就不只是中國最早的日食記錄,還是世界上最早的日食記錄、最早的日珥記錄、最早的日食見星記錄,一舉三項。劉朝陽把它定在公元前 1302 年 6 月 5 日;徐振韜算出的則是公元前 1250 年 3 月 4 日。

這條屬【一說】。

兩說的共同困難

這裡有一句話,是這一整節裡最值錢的。紫金山天文臺的綜述在介紹這兩家推算時寫道:「此兩說之困難皆在於該日是丙辰(乙卯的次日)。」

意思是:卜辭明寫「乙卯」,而兩位學者算出來的那個日子,干支都是丙辰——乙卯的下一天。兩個推算要走通,都得在干支或釋讀上動一處手腳才行。

困難是共同的,說明它多半不在推算細節上,而在更前面的環節:這一天到底是不是乙卯,這一辭到底是不是在記日食。

反方三路

後來的質疑,大致來自三個方向。

其一是楊樹達。1945 年他在《積微居甲文說·釋星》裡主張,這條卜辭記的其實是氣象:「大星者大晴也」,三辭文意相貫,講的是天晴,不是日食。

其二是嚴一萍。1989 年他在《食日解》裡論證,「食日」在卜辭中是一個時間辭,指一天裡的某個時段,與日食無關。他給出的解釋是「食日」即「大食」,是當時記時的一個名目。

其三是李學勤。他專門寫了《三焰食日卜辭辨誤》,把這條卜辭的釋讀問題全面梳理了一遍,正式否定了日食說。

這三路合起來,把這條記錄的日食身份基本推翻了。

工程怎麼處置

夏商周斷代工程對這條記錄的處置是否定:不把它當作日全食記錄使用。張培瑜也指出,武丁時期並沒有發生過安陽一帶可見的乙卯日全食。這一否定屬【通說】。

一條仍在的旁支

不過,這條記錄並沒有被徹底埋掉。Pang 等人後來把辭中的「允明」改讀為「於明」,日期順勢下推一日,也就繞開了乙卯這個難題,結果仍落在公元前 1302 年 6 月 5 日,安陽當地時間 10 時 45 分,全食持續 6 分 20 秒,並據此反推出一個地球自轉參數 ΔT 的取值:約 7.3 小時,誤差正負 0.3 小時。

這一條屬【一說】。它和「已被否定」並存,兩說都得寫出來,不能只寫一邊。

這裡還要多說一句,免得讀者誤解。那個 ΔT 值,是從「這條記錄成立」這個前提出發反推出來的。也就是說,它依賴這條記錄,不能拿來當獨立證據去證明這條記錄。這是一個圈,寫的時候必須把它寫成圈。

四、數不出來的那一堆:曆組「日有食」「日又戠」

第三堆材料出在曆組卜辭裡,情況最複雜。

條數

曆組裡記「日有食」的,有六條(各家歸併不同,也有算作五條的)。出處大致是:《簠室殷契徵文·天》1 兩見、《佚存》374(即《甲骨文合集》33694)兩見、《京津》3695(即《合》33695)、《屯南》379、《林》1.10.5(即《合》11480)、《合》11481。

此外還有「日又戠」三條、「月又戠」一條。

條數之所以會有五條六條之爭,是因為《合》11480、11481 是否計入、正面反面是否分列,各家處理不一樣。這一條屬【待檢】。

爭什麼

第一處爭議在字。「日」字下面那個字,有人讀「夕」,有人讀「月」,也有人主張是合文,讀作「明」。至今沒有共識。

第二處爭議在「戠」。「戠」是不是「食」,學界也有分歧。郭沫若最早指出兩者音近可以通假;陳夢家則以為它指的是太陽黑子,後來因為發現了「月又戠」的辭例,太陽黑子說不成立。

第三處爭議最要命:這些辭記的到底是佔辭還是驗辭。若是佔辭,問的是「會不會發生」,那麼辭裡說「癸酉日沒有日食」,本身不構成反證;若是驗辭,是事後記下的實況,那問題就大了。這一步決定生死。

楊升南的讀法

近年楊升南在《說「癸酉日食」》一文裡給了另一種解釋。他認為那一個字讀「明」是可以的,但「明有食」這種說法,與卜辭裡記日月食的辭例不相類;而且這一辭的辭末,以及整版上,還有祭祀上甲的內容。據此他判斷,這組卜辭實際上是占卜向上甲「侑食」,不是日食記錄。

這一條屬【一說】。它把整堆材料的性質往「祭祀」而不是「天象」那邊推了一大步。

工程怎麼處置

曆組卜辭的時代,以及它所記的是不是日月食,學界一直有較大爭議。夏商周斷代工程專家組的處置是:這些記錄暫不作為依據,用於討論商後期年代。

這裡有一處不一致,得如實說。紫金山天文臺那篇綜述在講同一件事時,又寫到「對另一組(曆組)4 條日月食也得到年代學結果」。一個說暫不作為依據,一個說拿到了年代學結果,兩種表述並存在同一個學科內部。

此處不替它擇一,只把兩種表述都擺在這裡。

五、那麼,能核驗到什麼程度

回到開頭那張表。三堆材料,三種處境,合起來能說明一件比單條記錄更重要的事。

第一,月食能算,靠的是三重約束疊在一起:有干支、有夜次、有順序。三條中任意一條都不足以定年,三條同時成立,才把範圍壓到一組。

第二,日食難算,難在約束太鬆。一條日食的單幹支,只鎖住六十天;而六十年裡安陽一帶能看見的日食不止一次。少一條記錄,就少一層約束,解就散開了。

第三,釋讀一動,結論就換。「皿」「戠」「食日」這三個字,各自都翻過案。它們不是在細節上打轉,它們直接決定了這條記錄算不算數、算的是哪一種天象。

第四,這一整條線能可靠說出口的,多半是「這條不可能成立」,很少能說「這條一定成立」。上面三堆裡,「三焰食日」是前一類,賓組五次月食是少數能算的例外。這種不對稱,原因不在方法不完備,在材料的本來面貌——三千年前的記錄,本來就只留下這麼一點抓手。

這篇和 001 是同一件事的兩頭。001 講的是,同一組數字擱在一起,能算出八千年差距;這一頭是同一批刻辭擺在一起,得先分清哪幾條根本不該拿來算。認不清後者,前者算得再精也是白算。

最後留一個話頭。商代人認識不少星,卜辭裡能看到他們對大火、對鳥星、對某些天象的關注。但他們沒有二十八宿座標——那套把天球切成二十八個格子的做法,是後來才畫上去的。格子是什麼時候畫上去的,留在下一篇。


A&Q

問:「日有食之」最早出現在哪裡?

答:多數人熟悉的是《春秋》裡魯隱公三年的那條,那是傳世文獻裡最早的一組干支日食記錄。甲骨卜辭裡還有更早的一批,散在武丁到商末的刻辭中,形態不一。有一點要留意:卜辭這批裡真正能被現代天文學驗算的只有很少的一部分。

問:為什麼說「日有食之」諸條的可核驗程度不一樣?

答:因為三堆材料的約束強度差別很大。賓組月食有五條,干支、夜次、順序三重條件疊在一起,能算出唯一解;「三焰食日」只有一條,且干支本身還有爭議;曆組的記錄連「記的是不是日食」都還沒定。約束越松,能算出的結論越不可靠。

問:「皿」字為什麼這麼要緊?

答:「己未夕皿庚申」這一條,因為多了一個「皿」字,把一個夜晚跨成了兩個干支日。這個字有十幾種釋讀。裘錫圭讀為「向」,與《詩經》「夜向晨」同義,意思是己未夜一直延續到庚申清晨,這一讀法獲較多認同,屬一說。讀法一變,這次月食落在哪一夜就跟著變。

問:「三焰食日」到底是不是日食記錄?

答:目前主流的判斷是「不是」。董作賓等人曾把它釋為日全食,劉朝陽、徐振韜各給出過具體年份,但兩家的推算都卡在同一個困難上——卜辭寫的是乙卯,他們算出的日子干支是丙辰。後來楊樹達、嚴一萍、李學勤分別從氣象、時間辭、釋讀三個方向提出質疑,夏商周斷代工程最終否定了日食說。不過 Pang 等人近年仍有新算,這條恐怕不算徹底定案。

問:為什麼全文總在提醒「兩說並存」?

答:因為在幾處關鍵點上,學界確實沒有共識。曆組的處置,一處說暫不作為依據,一處說得到了年代學結果,兩種表述同時存在。Pang 說的 ΔT 取值,又依賴「三焰食日」這條記錄成立,本身帶著循環。把這些地方寫成一邊倒,讀起來痛快,但它不誠實。


鄺楚嘉按:底下真正想說的,其實是「約束」兩個字。月食這一堆能被看重,原因不在它記得多,在它五條同時立著,把五千年的候選面壓縮到只剩一組。反過來,一條孤零零的日食記錄,干支、釋讀、性質三樣全在晃,算出來的數字再精確也站不住。以後凡見有人拿單條卜辭定商王年代,先問他:這條以外,還有幾條在同時約束它。

引用與出處

[1] 尚書[M]. 先秦.
[2] 詩經[M]. 先秦.
[3] 春秋[M]. 先秦.
[4] 甲骨文合集[M]. 郭沫若主編. 北京: 中華書局, 1978—1982.
[5] 董作賓. 殷曆譜[M]. 1945.
[6] 楊樹達. 積微居甲文說[M]. 1945.
[7] 嚴一萍. 食日解[M]//甲骨古文字研究: 第二集. 藝文出版社, 1989.
[8] 張培瑜. 甲骨文天象記錄和商代曆法: 夏商周斷代工程專題結題報告[R]. 1996—2000.
[9] 劉次沅, 馬莉萍. 夏商周斷代工程中的幾個天文學問題[J]. 廣西民族大學學報, 2004, 10(1): 23-29.
[10] 楊升南. 說「癸酉日食」[J]. 殷都學刊, 2019(2): 8-11.
[11] 李學勤. 三焰食日卜辭辨誤[J]. (刊名、年份待核)


本文圖片僅作補充說明,不作證據,也不作事實依據。

本文采用 知識共享署名 4.0 國際許可協議 (CC BY 4.0) 進行授權。
只要在轉載、傳播或依此進行演繹創作時,註明原作者為「嘉言一得(鄺楚嘉)」並附帶原始發佈鏈接,即可自由使用(含商業用途)。
文中所引用的秦漢簡牘出土照片、傳世文獻版權歸原屬方所有,不在本授權範圍內。
協議詳情參見:https://creativecommons.org

相關文章

英文文章:Three Calendars, Three Kinds of Time —— the three scales and what each is set to.

相關樞紐頁:曆法術語表 | 曆法記錄:一年從哪一天算起 | 數據集與預印本

本篇全部數據,由鄺楚嘉蒐集整理。

作者:嘉言一得(鄺楚嘉)|獨立研究者,致力於可核驗的原始文獻與曆法數據歸檔。
Author: Chujia Kuang (鄺楚嘉), pen name Jiayan Yide (嘉言一得) — independent researcher devoted to archiving verifiable primary sources and calendar data.
平實記錄 · 數據集 · 預印本:GitHub / WordPress / Zenodo(DOI: 10.5281/zenodo.22788686 / 10.5281/zenodo.23028692)
Records · Datasets · Preprints: GitHub / WordPress / Zenodo
學術身份 · Academic identity:ORCID 0009-0002-7650-833X | OpenAlex A5151908354

留下评论