公元前1161年10月31日晨6时32分,在殷商都城安阳(今河南省安阳市)东南的协地(今河南省商丘市),负责观天的贞人观测到了一次即将结束的日食。
这次日食,是殷墟甲骨文中“唯一可考的一次日食”。
(日偏食和甲骨文,来自网络)
在记录日食的甲骨卜辞中,一部分记录为“日有食”,一部分记录为“日蚀”或“日有蚀”,反映了一个较短时间内的贞卜活动。
经过学者们研究考证,此次日食是一次日偏食,食分为0.07,称为乙巳日食。在殷商都城安阳不可见,安阳以东可见。准确地说,在北纬36度以南、东经115度以东地区可见。
日食的甲骨卜辞可以分为两个阶段,一个是预卜期,一个是见食期。
预卜期共有12组甲骨文卜辞,记录了商王对于日食吉凶和祭祀礼仪反复贞问的情况。
第一组为壬子日贞卜,贞问甲寅日是否会发生日食。根据卜辞通例,甲寅日应该在壬子日之后三日。
这种贞问,可以看作是殷人对于日食的“预报”,在一定程度上表明殷人已经初步掌握了交食周期,但还不是十分精确,所以需要反复贞卜。
壬子卜,贞:日蚀于甲寅?
(第一组至第三组乙巳日食预报记录,来源于冯时著《中国天文考古学》)
第二组为壬子日之后的第14天乙丑日贞卜。由于甲寅日没有发生日食,所以商王下令继续贞卜。
根据卜辞内容可知,殷人在发生日食时需要敬献祭品,初卜以三头牛为祭品,接着增加至五头牛,终卜增加至六头牛。但是,商王仍然决定不用。
乙丑贞:日有蚀,其告于上甲?
乙丑贞:日有蚀,其[告]于上甲,三牛?不用。
其五牛?不用。
其六牛?不用。
第三组同样为乙丑日贞卜,应是同一日第三次贞卜,贞问是否真的发生日食?
乙丑贞:日有蚀,允唯蚀?三
第四组至第七组亦属于同日贞卜,该日为癸酉日,距离壬子日第22天。此时日食仍然没有发生。
不过,此日贞卜与前面几次不同,不仅贞卜日食,而且贞卜日食“在一天中可能发生的具体时间——夕(夜晚)”。
(第四组至第七组乙巳日食预报记录,来源于冯时著《中国天文考古学》)
第四组为:
癸酉贞:日夕[有]食,[告于]上甲?
第五组为:
[癸]酉[贞]:日夕[有]食,[告于]上甲?
第六组为:
癸酉贞:日夕有食,唯若?
癸酉贞:日夕有食,非若?
第七组为:
癸酉贞:日夕有食,唯若?
癸酉贞:日夕有食,非若?
第八组和第九组亦为同日贞卜,该日为庚辰日,距离壬子日第29天。此时日食仍然没有发生。
此日文辞一致,所卜应为同一事。这次贞卜,重新选择了诏告的神袛,包括岳、河等自然神袛和先王父丁。

同时,根据卜辞可以看出,此次贞卜并不在殷商都城安阳,而是在安阳东南的协地。
(第八组和第九组乙巳日食预报记录,来源于冯时著《中国天文考古学》)
第八组为:
庚[辰]贞:[日有蚀,其告于]岳?一
庚辰贞:日有蚀,非祸?唯若?一
庚辰贞:日蚀,其告于河?一
庚辰贞:日有蚀,其告于父丁,用牛九?在协。
第九组为:
[庚辰贞:日有蚀,非祸?]唯[若]?
庚辰贞:日有蚀,告于河?
第十组和第十一组亦为同日贞卜,该日为辛巳日,庚辰日的次日,距离壬子日第30天,贞问日食是否会发生在西方?目的是告祭神袛。
第十组为:
[允]唯蚀?
[辛]巳[贞]:日蚀在西,[亡]祸?
第十一组为:
辛巳贞:日有蚀,其告于父丁?二
(第十组至第十二组乙巳日食预报记录,来源于冯时著《中国天文考古学》)
第十二组的卜日残损,目的仍然是告祭神袛。
□□贞:日有蚀,其告于□□?
□□[贞:日]有蚀,其告于祖□?
根据上述分析可知,商王和贞人显然是预先知道此次日食的发生。贞人们不仅仅能够预先推算日食发生日期的大致范围,而且能够预先推算日食发生的具体时间和见食地区。
因而可以说,殷人在一定程度上已经初步掌握了交食周期的规律。
见食期共有2组甲骨卜辞。通过卜辞可以看出,此次预卜的乙巳日食终于在壬子日首卜之后的第54天发生了。
两组卜辞之日均为乙巳,二辞同文,所卜应为同一事。卜辞中的“兹用”一词,表明商王认同贞卜之事可信,而决定依照贞卜结果行事。
即乙巳日白天发生了日食,晚上为此告祭先王上甲,献祭了九头牛。
(第十三组至第十四组乙巳日食预报记录,来源于冯时著《中国天文考古学》)
第十三组为:
乙巳贞:酉彡彡,其小乙?兹用。日有蚀,夕告于上甲,九牛。一
第十四组为:
乙[巳贞]:酉彡[彡,其]小乙?[兹用]。日有蚀,夕告于上甲,九牛。一
最让人感到惊讶的是,此日祭祀所要诏告的神袛“上甲”和祭献数量“九牛”,就是此前乙丑日、癸酉日和庚辰日贞卜的内容。
参考文献:
1.张培瑜.甲骨文日月食与商王武丁的年代.文物,1999年第3期.
2.张培瑜.日月食卜辞的证认与殷商年代.中国社会科学1999年第5期.
3.冯时著.百年来甲骨文天文历法研究.中国社会科学出版社2022年版.
4.冯时著.中国天文考古学.中国社会科学出版社2023年版.
#artContent h1{font-size:16px;font-weight: 400;}#artContent p img{float:none !important;}#artContent table{width:100% !important;}