按:“稽古录”系列旨在稽古钩沉,于上古历史的幽深晦暗处求索。

中国古代的精确纪年始于公元前841年的共和元年,这是写入中学教材的文化常识,受过基础教育的中国人无人不知。我年少时读《史记》,读到《周本纪》时,一度对这个说法产生疑问。《周本纪》对西周王年记载虽残缺不全,但明确记载了周厉王三十七年发生国人暴动,随后就是共和元年。既然如此,周厉王三十七年就是公元前842年,由此倒推,可知周厉王元年是公元前878年。我当时以为,中国最早的精确纪年当向前延伸至公元前878年。可惜《周本纪》对再往前的周夷王、周孝王、周懿王、周共王的在位时间都没有记载,公元前878年就是极限了。

后来受了专业的历史学训练,才知道先秦君主纪年分“次年改元”和“当年改元”两种情况。一般正常的君位交替都是“次年改元”,而如果因动乱导致君位交替,则多为“当年改元”。“国人暴动”之后的“共和行政”显然是因动乱导致君位交替,所以更大概率是“当年改元”。也就是说,周厉王三十七年即共和元年(公元前841年),那么周厉王元年应当是公元前877年。

不过,这个修正后的时间仍不能作为中国最早的精确纪年。因为“共和元年”这个节点并不来源于《周本纪》,而是来源于《十二诸侯年表》。名为《十二诸侯年表》,实则有十四个邦国的纪年。除了鲁、齐、晋、秦、楚、宋、卫、陈、蔡、曹、郑、燕十二诸侯,还有不在“诸侯”之列的周王朝和春秋末年骤然称霸、快速灭亡的吴国。这并不是一条单线的纪年,而是一套包含了十四条线索、可以相互印证、相互勾连的纪年体系。纵然其中有个别错漏,但全盘推翻是几乎不可能的。因此,史学家以公元前841年为中国精确历史纪年的起点。

相较之下,《周本纪》中虽然记载了周厉王三十七年发生了国人暴动,但并不能确定司马迁的这一说法是否准确,因为没有其他材料作为印证,即所谓“孤证不立”。我少时读《史记》,只觉得这些动辄数十页的巨大表格十分无聊,远不如传纪中的故事精彩,因此都草草略过,并产生了一些自以为聪明的想法。当年这些幼稚的思考,或许在前代读书人的头脑中出现过无数次,最终都随着读书的深入而付之一哂。公元前841年这个节点,终究不是那么容易突破的。

但迄今仅两千八百多年的精确历史纪年,和我们一般认识里中国的漫长历史是不相匹配的。如果从五帝时代开始计算,中国已有五千年历史;近年来的各种考古发现似乎也在印证中国的“五千年文明史”;即使从夏代开始计算,中国的王朝史也有约四千年;纵然只从甲骨文的时代开始算,中国有直接文字资料记载的历史也在3300年以上了。为何精确的历史纪年却只有两千八百多年?三十年前轰轰烈烈的“夏商周断代工程”就是在这个疑问下开展的。

严肃的古史研究绝不能绕过上世纪二十年代“古史辨”运动留下的遗产。虽然李学勤先生提出了“走出疑古时代”,但当他掌舵“夏商周断代工程”时,并未走回“信古”的老路,用晚期文献中三皇五帝纪年自欺欺人,而是以科学的态度和跨学科的方法,试图恢复夏商西周的纪年。这个宏大工程的第一步,就写在《夏商周断代工程报告(简本)》的封面上。“841BC”这个公认最早精确纪年起点之上的那个年份“899”,就是断代工程的第一个脚印。

打开网易新闻 查看更多图片

公元前899年,一度被认为是夏商周断代工程最坚实的一步。专家组认为,公元前899年可以确定为周懿王元年。这个时间是靠科学的方法推算验证而得来的,但其源头仍是古书中的记载,核心内容就三个字——“天再旦”。

何为“天再旦”?这要从一部特殊的史书讲起。西晋时期,有个汲郡(今河南卫辉)的盗墓贼盗掘了战国时期的魏王墓。这个盗墓贼的名字很奇怪,叫“不准”。有人说,这个“不准”不准读为“不准”,要读为“否彪”;又有人说,这个“不准”不准读为“否彪”,还是读为“不准”;还有人说,这个“不准”既不准读为“不准”,也不准读为“否彪”,应该读为“否准”。这位著名盗墓贼的名字怎么读,是个音韵学问题,或许在未来可以撰文讨论,这里就不纠结了。总之盗墓是肯定不准的,这是严重的违法行为。

盗墓贼在魏王墓中挖出来一大批竹简,包括多种古籍。其中就有一部《纪年》,记载了从夏代到战国晚期的历史。因为是写在竹简上的,所以后世就管这部书叫《竹书纪年》。《竹书纪年》到宋代就已经完全散佚了,到了明代又突然出现,这部重新现世的《竹书纪年》真伪难辨,被学者称为“今本《竹书纪年》”。而学者又将唐代以前古书中引用的《竹书纪年》的只言片语聚拢在一起(也就是“辑佚”),称为“古本《竹书纪年》”。古本《竹书纪年》是真正的战国古书遗存。

古本《竹书纪年》里记载:“懿王元年,天再旦于郑。”懿王,就是周懿王,他是西周中期的一代天子,是周穆王的孙子、周共王的儿子、大名鼎鼎的周厉王的爷爷。在周懿王的元年,发生了“天再旦”之事。《说文解字》云:“旦,明也。从日见一上。一,地也。”“旦”就是太阳从地平线上升起的样子,也就是日出天明。“天再旦”,从字面意义上解读,就是一天之内两次日出、两次天明。“天再旦”发生的地点是“郑”,这不是今天的郑州、新郑,而是“旧郑”,在关中平原。具体的地望尚有争议,一说在凤翔,一说在华县。

一天之内两次日出、两次天明,也就是说在正常的日出之后,天光转为幽暗,而后又复明。断代工程认为,这种怪异的现象是由日食造成的。当月亮走到地球和太阳中间,遮挡了一部分太阳光,就会在地球上形成一个日食带。在日食带中,大部分地区只能看到日偏食,太阳不过是缺了一牙,并没有被完全遮挡,天光不会明显地变暗。只有在日食带的中心,月亮的阴影会全部走到太阳前面。若阴影大于太阳的轮廓,即食分大于1,就是日全食。此时太阳被完全遮挡,只在外围留下一圈光晕,天光会明显变暗,犹如日出之前或日落之后。若阴影小于太阳的轮廓,即食分小于1,就是日环食。如果日环食的食分很接近1,此时太阳仅剩窄窄的一层光圈,绝大部分的阳光被遮挡,产生的效果犹如日全食。当日食结束,天光复明,恰似第二次日出。

按照这个逻辑,所谓“懿王元年天再旦于郑”就意味着周懿王元年发生了一次日全食或食分很大的日环食,且能够在关中平原的郑地观测到。而历史上的每一次日食发生的时间和可见的范围,现在已经能被推算出来。因此,断代工程推算了从公元前1000年至公元前840年间中国地区能观测到的日全食和大食分日环食。这个时间段已经包括了从西周初年到“共和行政”,周懿王的时代绝对出不了这个范围。下图就是断代工程推算出的几次日食。

打开网易新闻 查看更多图片

在这些次日食中,唯一一次在关中地区可见的,就是公元前899年4月21日的日环食。这次日食食分为0.95,足以造成天光幽暗。就这样,周懿王元年的具体年份确定下来了,即公元前899年。周懿王是周厉王的爷爷,周厉王被赶下台是公元前841年,从爷爷到孙子,间隔58年,非常合理。

为了让证据链更加坚实,断代工程还进行了一次实地的日全食观测,以确定日全食确实能造成“天再旦”的现象。上世纪末唯一一次能在中国境内观测到的日全食发生于1997年3月9日,断代工程的专家远赴新疆北部,选取了塔城、富蕴等十几个观测点。但是由于当天北疆很多地方是多云天气,观测效果不是很理想,但是不影响结论。因为这次日食在黑龙江漠河也能看到,且中央电视台进行了全程报道和录像。一些年纪较大的同志或许对这次世纪末天文异象还有印象,此次日食发生时海尔波普彗星正靠近地球,出现了日食与彗星同现的罕见天象。

打开网易新闻 查看更多图片

1997年3月9日中央电视台直播画面

不过,由于时代久远、技术条件限制,此次中央电视台的日全食录像效果在今天看来并不理想。2024年,bilibili的up主影视飓风组织团队远赴美国,以顶级摄影器材完整记录了2024年4月8日日全食的全过程。通过这个视频,可以明显地看到天光由明转暗,而后由暗复明。可以毫无疑问地说,日全食确实会在特定区域内造成“天再旦”的现象。

打开网易新闻 查看更多图片

“影视飓风”团队记录的日全食发生时天光幽暗的情景

在很多学者心中,公元前899年周懿王元年已然是决不可动摇的西周纪年支点,突破了公元前841年共和元年,是中国古代精确纪年的新起始点。直到十多年后,一篇青铜器铭文公之于众,让这个问题重新陷入一片混沌。

2012年,吴镇烽先生公布了一件私家收藏青铜器的铭文。此器名为《畯簋》,有一百五十余字的铭文,记载了王对“畯”的册命。铭文的开头出现了对时间的记述:“十年正月初吉甲寅。”在王的册命辞中,出现了“朕丕显考共王”之语。王的父亲是“共王”,说明这个王是周懿王。这次册命发生于周懿王十年的正月甲寅日,而断代工程给周懿王排定的在位时间只有八年。但这还不是对断代工程结论最大的冲击,更关键的矛盾在于,周懿王十年正月甲寅日的月相是“初吉”。

打开网易新闻 查看更多图片

所谓“月相”,是流行于先秦时期的介于日和月之间的纪时单位。王国维先生对此有专门的研究,他的《观堂集林》中收录的第一篇文章《生霸死霸考》就是考证月相的。简单地说,古人根据月亮的盈亏,把一个月分为四段,分别是初吉、既生霸(魄)、既望、既死霸(魄),每一段大概七八天。实际情况当然更为复杂,除了这四种基础的月相,还有哉生霸(魄)、哉死霸(魄)等等。目前学界对“月相”的研究并未形成完全一致的观点,只是多数学者大体赞同王国维的结论。在此框架下,“初吉”就是每个月的初一朔日到七八日。

既然已知周懿王元年是公元前899年,懿王十年就是公元前890年。那么,公元前890年的正月初吉(初一到初七、初八)究竟有没有甲寅日呢?如果有,则可以印证周懿王元年是公元前899年;如果没有,则这个西周纪年至关重要的支点就要面临质疑了。这一复杂的推算工作并不需要研究者自己完成,已经有人把这项工作做好了,这就是著名天文学史家张培瑜先生编纂的《三千五百年历日天象表》。这部书同样是夏商周断代工程的重要成果。

参照《三千五百年历日天象表》,公元前890年的正月初一(朔日)是丙申日,按照六十干支表往下数,数到初八,并没有出现甲寅;再往下数,直到十九日才出现甲寅。这已经大大超出“初吉”的范围了。也就是说,公元前890年的正月初吉并没有甲寅日。那么,公元前890年并非懿王十年,公元前899年也不是懿王元年。

打开网易新闻 查看更多图片

面对《畯簋》铭文与周懿王元年公元前899年之间的矛盾,研究者陷入三难局面。要么否认《畯簋》铭文的真实性以保全公元前899年这个支点,但绝大多数从事金文与青铜器研究的学者都认为《畯簋》铭文是真实可靠的。凭空伪造这样一篇一百五十余字的长篇铭文,且在内容、字形、书风上都没有丝毫破绽,这几乎是不可能的。若认可《畯簋》铭文的真实性,则要放弃周懿王元年公元前899年这个夏商周断代工程最重要的支点。

若想二者兼顾,也不是没有办法,而且办法如同“房间里的大象”,从事西周纪年和金文历谱研究的学者都能看到,但数十年来大家一直试图回避。上文提到的以王年、月份、月相和干支日对照历表的方法,被称为“金文四要素”断代法,是恢复西周精确纪年最主要的方法。近几十年来,有不少学者使用这个方法,穷尽一生排定西周历谱。夏商周断代工程排定西周纪年,也主要用这个方法。但至今为止,没有任何一家的研究成果得到普遍的认可。相较之下,“公元前899年”这个通过倒退日食得来的时间点,让断代工程的历谱体系更多了一些可信度。

实际上,“金文四要素”断代法在学理上是有重大缺陷的。说严重一点,近乎“空中楼阁”,因为这套方法的可行性建立在一系列假说之上。

首先,现代人倒推的历表是很精密的、绝对理想化的,但春秋以前历法还很不精密,我们无从得知西周历法与倒推的理想化历表究竟有多大差别。而以金文中的历日信息和理想化的历表对照,实际是默认西周历法与理想化的历法是完全一致的。可《春秋》、《左传》、《国语》等典籍中记载的历日信息尚有错漏,怎能保证西周历日是绝对精确的?

其次,铜器铭文中所载历日信息,尤其是月相和干支日,并不能确定是套语还是实录。古人有很强烈的“吉日”观念,比如“初吉丁亥”,出现的频率尤其高,因为“初吉”月相和“丁亥”日都被认为是吉利的。或许有些铭文中的历日是真实的,但这种套话式的历日信息确实也存在于铭文中,而研究者很难判断其真假。试图将这些真伪错杂的历日信息排入同一个历谱中,本身就是不可能成功的。

最后,“月相”这个概念的含义仍有争议。近代以来,学者对“月相”的研究分为“四分说”与“定点说”。“四分说”以王国维为代表,上文已有介绍。“定点说”以陈梦家为代表,此观点认为初吉、既生霸(魄)、既望、既死霸(魄)、哉生霸(魄)、哉死霸(魄)这些月相指的都是具体的日子,而非一段时间。虽然目前赞同“四分说”的学者占主流,但似乎这更多是为了便于“金文四要素”断代。若赞同“定点说”,则“金文四要素”断代就完全不具备可操作性。不仅初吉、既生霸(魄)、既死霸(魄)、哉生霸(魄)、哉死霸(魄)具体对应哪一天已不可考,就算确定了具体日期,金文中多数历日信息也无法对应上一月之中的寥寥几日。

若从根本上否定“金文四要素”断代法的可行性,就不必将《畯簋》中的历日信息与历表对照,自然可以兼顾《畯簋》真实性和懿王元年是公元前899年。但这造成的影响似乎更大,如釜底抽薪一般彻底摧毁了断代工程西周纪年研究的根基,也让那些在西周金文历谱研究中付出大半生光阴的学者看上去像个笑话。所以,这种做法也是多数学者不赞同的。

《畯簋》铭文公布后,著名汉学家夏含夷先生为了摆脱这个三难困局,提出了极为新奇的“双元年”说。中国古代有“三年之丧”的制度,其实不是三整年,是26或27个月,仅两年出头。夏含夷先生提出,在此制度下,如果一个国君的父亲死了,新君即位,这是第一个“元年”;等到“三年之丧”守完,其实也就过了两年,重新从“元年”开始算,这是第二个“元年”。这样解释之后,以往金文历谱排定中的很多疑难问题都能够解释,包括《畯簋》和懿王元年公元前899年的矛盾。按照“双元年”说,第一个“懿王元年”是公元前899年,第二个“懿王元年”是公元前897年,以第二个元年算,懿王十年就是公元前888年。再加上一些历法上的微调,比如大小月的设置,就可以让“懿王元年正月甲寅”正好在初一日,位于“初吉”范围内。

这种“有奇效”的理论并非什么神奇的魔法,其实就是增加概率。一个“元年”变为两个,概率自然大大增加,第一个不符合还有第二个。加之“双元年”在传世文献和出土文献中都找不到直接且过硬的证据,赞同此说者也是寥寥。

到这里,似乎问题已陷入不可解的困局。让我们回到问题的原点,重新审视所谓的“天再旦”,或许这个以日食反推纪年的天才巧思本身就有很大的隐患。下面这张图片在前文中已经引用过一次,《夏商周断代工程报告(简本)》给这张图的命名是“理论计算得到的公元前1000年-前840年中国地区‘天再旦’现象”。但在相当长的时间里,研究者尤其是历史学研究者并不知道这张图是如何得来的。或许是基于对李学勤先生和天文学家席泽宗院士这两位首席专家的信任,也没有学者深究这一点。

打开网易新闻 查看更多图片

可当我们利用“国家天文数据中心”的“日食计算器”对公元前899年4月21日这次日食进行模拟,会发现算出的区域和断代工程的结果差异极大。当天日食发生时,只有山东半岛上能在刚刚日出时观察到日食,关中平原远没有天亮。如果是这样,此次日食在关中平原根本不可见,所谓“懿王元年天再旦于郑”要么是伪造的史料,要么根本不是日食。那么,针对同一次日食,为何国家天文数据中心和夏商周断代工程推算的可见范围差别如此之大?

答案在2022年出版的完整版的《夏商周断代工程报告》中。在这部俗称为“繁本报告”的大部头中,有对“理论计算得到的公元前1000年-前840年中国地区‘天再旦’现象”的具体解释:“由于地球自转长期变化的不确定性,日食带在地图上向东可以有18度的平移。”国家天文数据中心默认此次日食发生时的ΔT是22125.21s,而夏商周断代工程采用的ΔT数值大约只在20500s上下,这就造成了日食带在东西范围内数百公里的差距。

纵然如此,“郑”地的两个候选地望之一的凤翔仍在日出线之外。“繁本报告”中对公元前899年日食区域中的三个黑点做出了解释:“其中黑点所示为凤翔(左)、西安(中)、华县(右)三个地点。”关于“郑”的地望,多数学者更赞同“凤翔”说,因为有铜器铭文和考古发现的多重证据。即使按照断代工程的算法,凤翔也在日出线西侧。虽然在日出之前天光已经微亮,或许在日食发生时能感受到天光略略变暗,但日食前太阳本就没有从地平线上跃出,即使有这种变化,也很难称之为“天再旦”。且日出前天光的微弱变化本身就不易被观察到,空中飘过一片云造成的变化可能都更大一些,史官会不会将之作为一件大事记录在史书中,也是很值得怀疑的。

若要凤翔也能看到此次日食,只比必断代工程更激进,将ΔT修正为20000s以下。在此情况下,凤翔刚刚越过日出线,日食食甚的时间只比日出时间晚了不到40秒,食分为0.962。如果当天万里无云,理论上确实能观察到“天再旦”的现象。可如果当天万里无云,那么大概率整个关中平原都能观察到日食,且关中东部的观测条件要远好过凤翔,为何史书中只记了“天再旦于郑”,又是个难以解释的问题。

“日食”说面临这样或那样的问题,“天再旦”有没有可能不是日食呢?确实有可能。唐代《开元占经》中引用《竹书纪年》的这句话作“天再启于郑”。若依此记载,则与日光无关,而是天的“闭”与“启”。有人认为,这说的是乌云蔽天,而后云过天清。但这种天气似乎并不罕见,夏季常会出现。以我个人的生活经验,人生中遇到乌云遮天蔽日以至于天地昏暗无光的情况,或许有几十上百次,总之已多到无法计量了。这样的事情,似乎不值得作为国家大事记录在史书中。

另一种能造成天的“闭”、“启”现象的是强沙尘暴。倒退二三十年,北京还经常出现沙尘暴。强沙尘暴过境,几分钟前还是天清气朗,很快遮天蔽日的沙尘将天空和阳光全部挡住,只能看到一片漆黑。短则几十分钟,长则几个小时,沙尘一过,重见天光,正可说是“天再启”。但沙尘是有形的,看得见摸得着,是很容易理解和辨别的自然现象。如《诗经·邶风·终风》以狂风天气起兴,其中“终风且霾”正是对沙尘天气的描写。若史官所见到的是遮天蔽日的沙尘天气,应当不难分辨,完全可以在简册上写下“风霾且曀”这种朴实且准确的语句,作“天再启”反而不易理解了。

而且,《开元占经》引此文作“天再启于郑”而不作“天再旦于郑”,很可能是由于避讳。《开元占经》成书于唐玄宗开元年间,唐玄宗之父唐睿宗名“旦”,因此要避讳此字。同样成书于唐玄宗时期的《初学记》引《尚书大传》“平旦为朔”作“平明为朔”。“元旦”一词,在唐睿宗之后亦多改作“元日”,如白居易曾作《七年元日对酒五首》。

既然“天再启”并非古书原文,我们还是要基于“天再旦”来思考。如果是强沙尘暴,记作“天再旦”更是故弄玄虚,且很不准确。“旦”指的是太阳跃出地平线,就算是沙尘过境前后,太阳终归是高悬于空中的,不可形容为“再旦”。

照此思路,从史书书写的体例上看,似乎将日食写作“天再旦”也是很反常的。中国古代史官对于日食的记载有非常明确的体例,即“日有食之”。这个说法从甲骨卜辞到《春秋》再到历代正史,一直沿用,基本未变。若强调日全食,则记为“日有食之既”。如果是日食,史官应该依书法惯例记作“日有食之”,也不必故弄玄虚作“天再旦”。

但若换一个角度,“天再旦”这一记载恰恰又能和上文所述ΔT修正为20000s以下时凤翔地区观测日食的情况对应上。位于日出线东侧观察日食,地平线上太阳刚刚露出头,就忽然消失。几分钟之后,日食过去,太阳又出现在地平线之上。由于地平线、山丘或地表雾气的遮挡,观测者很可能无法清晰地看到这是一次日食,只看到太阳升起、消失、又升起的现象,故而记为“天再旦”。

这也能解释为何这次在整个关中平原都能看到的日食被记录为“天再旦于郑”,因为只有在日出线东侧的凤翔观测到的才是严格意义上的“天再旦”。而关中东部广大地区看到日食时,太阳已经完全升起,观测者可以清晰地辨别出这是一次日食。相较之下,“天再旦”的罕见程度要远高于“日有食之”甚至是“日有食之既”,因此战国时期的魏国史官在编纂《竹书纪年》时将“天再旦于郑”保留了下来。