有两套系统,完全不认识彼此。
一套在三千年前运作。一个贞人跪在甲骨前,把兽骨烧热,等待裂纹,然后把结果刻进骨头。那天晚上发生了什么——月亮开始变暗,慢慢缺失,又一点一点复圆——他用几个汉字把这件事记录下来,用的是干支纪日法:某某日,夕月有食。
另一套在二十世纪末运作。一台电脑连接着美国航空航天局喷气推进实验室发布的天文行星历表,代号DE422,数据跨度从公元前3001年到公元3000年。把时钟往回拨,输入年份,行星轨道力学方程自动运算,吐出结果:某年某月某日,月食,安阳可见。
这两套系统,谁也不知道对方存在。它们各自独立,各走各的逻辑。
然后有人把两组结果拿来对照。
甲骨卜辞里的天象记录,是世界上最早的系统性天文文字资料之一。中国社科院学部委员宋镇豪在研究中指出,甲骨文记载了发生于公元前1200年前后的天象,包括月食、日食以及流星雨,是古天文学研究的珍贵资料。
经过几代学者近百年的梳理工作,目前已确认在殷卜辞中存在5次有纪日干支的月食记载——也就是说,每一条不只记录了"月亮发生了食"这件事,还同时记录了发生的具体日期,用的是干支纪日。这5次记录,全部属于商王武丁时期的宾组甲骨卜辞。
有一条卜辞记录了"乙酉夕月有食"——乙酉这天的傍晚,月食发生了。就这9个字,或者说9个字里的天文信息——日期、时段、天象类型——成了现代学者试图锁定商代绝对年代的关键坐标。
这5次月食记录,各自孤立,记录在不同的骨片上。它们之间没有互相解释,也没有说发生在哪一年。它们只是忠实地告诉后人:这天的夜里,月亮出了事。
另一边,物理学有一个特点:行星运动遵循牛顿力学,轨道可以精确外推。给定足够精确的初始条件和引力模型,计算机可以往前算,也可以往后算,推演几千年前某一夜的天象。
2009年,美国航空航天局喷气推进实验室发布了DE422行星历表,时间跨度覆盖公元前三千年以上。
中国科学院国家天文台研究员马利华等人,在2021年发表于《天文研究与技术》的论文中,用DE422对殷卜辞中5次月食重新进行了精算,逐一计算每次月食的食相、发生时刻,以及在安阳能否观测到。
结果出来了。
5次月食,对应的公历日期分别为:公元前1201年7月12日、公元前1198年11月4日、公元前1192年12月27日、公元前1189年10月25日、公元前1181年11月25日。每一次,计算结果都显示安阳当夜可见,发生在当地日落之后、日出之前,食分从0.49到1.74不等,其中两次为月全食。
甲骨文卜辞上记录的干支日期,和DE422算出的月食发生日期,严丝合缝。
这里有必要说清楚一件事,才能理解这个对照的意义有多大。
干支纪日法,是一套独立于太阳年的计日系统,六十天一个循环,循环往复,不间断地一直走到今天——甲子、乙丑、丙寅……三千年来没有断过一天。这个系统本身,就是一条连接古今的时间轴线。
中国人用干支纪日的历史,比殷商还要早。甲骨文里有完整的六十干支表,说明这套系统在武丁时代就已经高度成熟。而它最关键的一个性质是:只要这条链没有断,你就可以从今天一路往回数,数到某个特定的"乙酉日",算出它在公历上是哪一年哪一天。
因此,当一块骨头上刻着"乙酉夕月有食",这里的"乙酉"不是一个模糊的"某天",而是干支历法里一个具体的、可以往前往后推算的精确坐标。结合甲骨分期研究给出的大致年代范围——武丁中后期——锁定范围就进一步收窄了。
而NASA的轨道力学算出来的结论说:公元前1181年11月25日,安阳夜空,月全食,乙酉日,傍晚日落后可见。
两条各走各路的逻辑,到这里交汇了。
这不是一个美丽的巧合,这是历史学的基础建设。
中国历史有一个困境:有文字可考的"信史",起点通常被定在公元前841年——周厉王出逃那年,史书开始有连续的年份记载。在这之前,夏商周三代虽然有历史叙述,但没有绝对年份,只有"某王在位多少年"这类相对数字。
这正是1996年启动的夏商周断代工程要解决的核心问题。研究团队由30多家单位、200多名学者组成,动用了天文、考古、碳十四测年、文献研究等多种手段交叉验证。5次殷卜辞月食与轨道力学的吻合,是整个工程里最硬的证据之一——月食的发生时间是客观物理事实,不受任何人为解释的干扰。
值得一提的还有另一条记录。甲骨文研究百余年来的总结成果中,学者通过释读甲骨卜辞里的天象材料,考订了一次发生于公元前1161年10月31日乙巳日的日食。这条记录的价值在于,它同时证明商代人已经掌握了交食周期的初步规律——日食和月食的发生,他们能够预判,能够记录,能够留档。
【主要信源】
马利华、韩延本、乔琪源、孙希宗,《基于现代天文行星历表的殷卜辞月食记载研究》,《天文研究与技术》2021年第18卷第4期,第561-566页,中国科学院国家天文台
