引子
「日有食之」这四个字,多数人第一次见到是在《春秋》里。鲁隐公三年,二月己巳,日有食之——那是传世文献里最早的一组干支日食记录。
比《春秋》更早的,是刻在甲骨上的一批。它们散在武丁到商末的卜辞里,形态各异:有的只记一条干支,有的记明是夜里,有的连「食」字都还认不真切。
这批刻辞有一个共同点,也有一个共同的问题。共同点是,它们都写在龟甲和牛骨上,是当时人亲手刻下的、用来问事的记录;共同的问题是——它们当中真正能被现代天文学拿出来验算的,其实只有很少的一部分。剩下的那些,麻烦恰恰不在「算不出来」,在「它记的是不是日食」这一步都还没定下来。
下面要做的,就是把这三堆材料分开摆好,说清楚每一堆到底站在什么位置上。
一、先分清三堆材料
甲骨卜辞里的日月食记录,按出土组类和文本特征,大致能分成三堆。三堆的处境差别很大,先把判词列出来,后面逐堆展开。
| 材料 | 条数 | 属商王哪一期 | 判 |
|---|---|---|---|
| 宾组 月食 | 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.
相关枢纽页:历法术语表 | 历法记录:一年从哪一天算起 | 数据集与预印本
本篇全部数据,由邝楚嘉搜集整理。
作者:嘉言一得(邝楚嘉)|独立天文历法爱好者,致力于可核验的原始文献与历法数据归档。
平实记录 · 数据集 · 预印本:GitHub / WordPress / Zenodo(DOI: 10.5281/zenodo.22788686)