APP下载

商代历法的困惑与复原

2019-09-19金宇飞

殷都学刊 2019年2期
关键词:月食卜辞历法

金宇飞

(上海材料研究所 科技史研究中心,上海 200437)

自从在殷墟发现甲骨卜辞之后,各家就对甲骨卜辞中所记录的日期及其所表现的商代历法发表了各种看法,并且在月长、月首、年首、置闰等各方面出现了很大的分歧。因而,似有必要再做检讨,修正或重新复原商代历法,以符合殷墟甲骨卜辞中的日期记载。

一、卜辞中日期的疑惑与困惑

由于各家对商代历法持有不同观点,因而对甲骨卜辞中的日期进行推排,就出现了很多结果,而且还难以验证和确认。幸好,在5块甲骨的卜辞中发现了含有日期的月食记录,而利用月食记录来探索商代历法应该是一个比较可行的办法。《合集》11485甲骨上有著名的“乙酉夕”月食记录,其卜辞如下:

这也是5次有日期的月食记录中最详细的一次记录。对于这次月食记录,研究者很多,推排出来的日历也很多。但是,几乎所有的推排,都只关注于“乙酉夕月有食”,而忽视了“八月乙酉”,更忽视了“二月癸未”和“二月癸卯”。现将各家所推排的结果汇总如下[2-5],同时也利用SkyMapPro11和《寿星天文历》等天文日历软件进行了复核,并增加了前1500年至前1000年间各家未列出的若干八月乙酉月食的可能结果,推排出了二月癸未、癸卯的日历和殷墟地区(北纬36°07’12”,东经114°19’07”)可见到月食的时间,表中带*号的为该年有闰月。

八月乙酉夕月有食月食时间二月癸未二月癸卯年首前1496.10.30戌月十六乙酉21:00:02结束前1496.5.1辰月十一前1496.5.21巳月初一建卯前1495.10.30廿七————前1444.7.29未月十七乙酉03:18:22开始前1444.1.28丑月十一前1444.2.17寅月初一建子前1443.7.29廿七————前1418.3.16寅月十六丙戌03:14:39开始前1419.9.14申月初十前1419.10.4酉月初一建未前1417.3.16廿七————前1365.10.22十六乙巳————前1364.10.22廿七————前1361.8.9十五壬子————前1344.8.31十五癸卯————前1320.6.8巳月十五乙酉22:39:51开始前1321.12.8亥月初十前1321.12.28亥月三十建戌前1320.6.9巳月十六丙戌02:50:37结束前1321.12.8亥月初十前1321.12.28亥月三十建戌前1304.1.15子月十六乙酉∗03:12:59开始前1305.7.17闰午月十一前1305.8.6未月初二建午前1303.1.15廿六————前1279.11.2十七丁亥————前1279.9.1申月十五乙酉22:55:49开始前1279.3.3寅月初十前1279.3.23卯月初一建丑前1279.9.2申月十六丙戌03:54:26结束前1279.3.3寅月初十前1279.3.23卯月初一建丑前1278.9.2廿七————前1258.7.13午月十六乙酉∗16:31:48结束前1258.1.12丑月初十前1258.2.1寅月初一建子前1257.7.13廿七————前1227.5.31巳月十五乙酉21:25:19开始前1228.11.30亥月初十前1228.12.20子月初一建戌前1227.6.1巳月十六丙戌02:39:05结束前1228.11.30亥月初十前1228.12.20子月初一建戌前1226.5.31廿六————前1226.6.1廿七————前1222.9.2申月十五乙酉20:35:39结束前1222.3.4寅月初十前1222.3.24卯月初一建丑前1181.11.25亥月十五乙酉22:43:09结束前1181.5.27巳月十一前1181.6.16午月初一建辰前1180.11.25廿五————前1108.7.5午月十七乙酉01:28:56结束前1108.1.4子月十一前1108.1.24丑月初二建亥前1107.7.5廿七————前1082.2.19寅月十五乙酉∗22:51:08结束前1083.8.21申月十一前1083.9.10酉月初一建未前1081.2.19廿五————前1062.12.31子月十七乙酉00:04:30开始前1063.7.2午月十二前1063.7.22未月初二建巳前1061.12.31廿八————前1036.8.16未月十六乙酉∗23:49:18开始前1036.2.15寅月初十前1036.3.7寅月三十建丑前1035.8.17廿七————

从上表可得,即使不管年首月建,在前1500年至前1000年期间,满足“乙酉夕月有食”条件的诸多月食中,只有前1320.6.8和前1036.8.16这两个日期又同时满足“二月癸未”和“二月癸卯”。而这两个结果,前1320年的年首是正月建戌,而前1036年在大多数武王伐纣的假说[6](包括《夏商周断代工程》[7])中已是落在西周年代了。面对这样的结果,有学者就假设商代历法是以新月初见(朏)为月首,月长有31日也有25日,岁首月建为建午或建巳或建未等等。[2]这样,不仅上表中的大多数月食都可以满足,而且更多乙酉日的月食也都能满足了。但是,如果真是这样,那么利用卜辞日期来进行断代也就是不可能的事了,因而这些假设是难以接受的。[8]

再看同样著名的“大龟四版”之四。“大龟四版”之四为《合集》11546(即《甲编》2122),其有日期的卜辞及其日历分析如下。

《合集》11546卜辞摘选干支序号月份月首卜辞日期月末月长(1)癸酉卜…十月癸酉10十月丙戌43廿八癸酉甲戌1129天(3)癸已卜…十一月癸已30(4)癸卯卜…十一月癸卯40十一月乙亥12十九癸巳廿九癸卯甲戌4130天(5)癸丑卜…十二月癸丑50(6)癸亥卜…癸亥60(7)癸酉卜…十二月癸酉10二月乙巳42初九癸丑十九癸亥廿九癸酉癸酉1029天(8)癸已卜…十三月癸已30十三月甲戌11二十癸巳壬寅3929天(9)癸卯卜…癸卯40(10)癸丑卜…癸丑50(11)癸亥卜…癸亥60正月癸卯40初一癸卯十一癸丑廿一癸亥壬申930天(12)癸酉卜…二月癸酉10(13)癸未卜…二月癸未20(14)癸…癸已30二月癸酉10初一癸酉十一癸未廿一癸巳壬寅3930天(15)癸卯卜…癸卯40(16)癸丑卜…癸丑50(17)癸亥卜…癸亥60三月癸卯40初一癸卯十一癸丑廿一癸亥辛未829天(18)癸酉卜…四月癸酉10(20)癸已卜…四月癸已30四月壬申9初二癸酉廿二癸巳辛丑3830天(21)癸卯卜…五月癸卯40(22)癸丑卜…五月癸丑50(23)癸亥卜…五月癸亥60五月壬寅39初二癸卯十二癸丑廿二癸亥庚午729天

“大龟四版”之四的日历分析表明,这是一段很正常的日历。同时也反映出,商代历法对月长的控制是很精准的,这实际上也反映出商代历法对朔日的观测或推算是很精准的。

再看“乙酉夕月有食”(《合集》11485)的卜辞,这里值得探讨的一个问题是卜辞“三日乙酉夕月有食”这几个字是癸未卜日所刻,还是乙酉日之后所刻?如果是乙酉日之后所刻,那就意味着所有或大多数卜辞都是事后补刻,卜的意义等于是记事即事后记录。如果是癸未卜日所刻,那卜的意义就是事前预测,如果是这样,那就意味着商代已具有对月食的推算能力了,可以在3日前进行预测和预告。

过去对西周历法的研究,发现西周历法是粗放的,譬如岁首多为建子、建丑,认识朔以前,以“朏”为月首等等[7](P19),所以就推想周以前的历法也必然是更加原始。但是,从殷墟甲骨卜辞中所表现出的对朔日的精准和对月食的预测可以看到,商代历法的水平要远远高于西周历法。或许正因为此,才有《尚书·周书·洪范》所记载的武王克商后专访于箕子求教。这表明周人虽然夺取了政权,但是周人并未能从殷人那里完全得到和继承殷商文化,包括商代历法的推算技术甚至是观测技术。通过一二次求教是不可能得到真传的,因而,最初的周文化(尤其是历法)有可能是远低于殷商文化的。

经过上述对“乙酉夕月有食”和“大龟四版”之四日期的分析,可以感到,殷人对朔日的观测或推算是很精准的,甚至殷人可能已经可以推算和预测月食了。

对于“大龟四版”之四的日期,徐伯鸿先生认为是在前1321年9月至前1320年5月。[9]但是此结果的年首是正月建子,与传说中的“殷正以十二月”不同。而如果以年首为正月建丑,则在前1400年至前1000年间,未有符合“大龟四版”之四日期的日历。

综上所述,通过对“乙酉夕月有食”和“大龟四版”之四日期的分析,虽然显示了商代历法的精准,但是却没有得到令人满意的实际日历,商代历法究竟还隐藏了哪些秘密?

二、商代历法的特征

《史记·历书》:“夏正以正月,殷正以十二月,周正以十一月。”《汉书·律历志》:“……冬至。于夏为十一月,商为十二月,周为正月。”《左传·昭公十七年》:“火出,于夏为三月,于商为四月,于周为五月。”这就是“夏是正月建寅,商是正月建丑,周是正月建子”的来历。

《汉书·律历志》:“微公二十六年正月乙亥朔旦冬至,《殷历》以为丙子”。《汉书·律历志》里多次出现“《殷历》以为……”,此“《殷历》以为”并不是《殷历》认为朔日应该是丙子,而是《殷历》认为乙亥日应该是丙子日,即《殷历》的日干支比现行阴历要提早一天。

按照上述说法,商代历法(即殷历)的特征是正月建丑,并且日干支比现行阴历要提早一天,这或许就是长期被人所无视的殷历的秘密。

由此重新推排“乙酉夕月有食”的日期,得到前1400年至前1000年间的唯一结果如下。

《合集》11485日期公历天象现行阴历殷历一月癸亥前1129.2.3丑月十九壬戌一月十九癸亥二月癸未前1129.2.23寅月初十壬午二月初十癸未二月癸卯前1129.3.14寅月三十壬寅二月三十癸卯五月癸卯前1129.5.13巳月初一壬寅五月初一癸卯癸未前1129.6.22午月十二壬午六月十二癸未八月癸未前1129.8.21申月十二壬午八月十二癸未八月乙酉前1129.8.23申月十四甲申八月十四乙酉八月乙酉夕月有食前 1129.8.2404:06:23月食开始申月十五乙酉八月十四乙酉夕[八月丙戌]前 1129.8.2405:08:05天亮申月十五乙酉八月十五丙戌[八月丙戌]前 1129.8.2405:10:48月食食既申月十五乙酉八月十五丙戌[八月丙戌]前 1129.8.2409:19:58月食结束申月十五乙酉八月十五丙戌

这是前 1129年8月24日殷墟地区可见的月食,月食于04:06:23开始,05:10:48食既。当天05:08:05天亮,即这次月食在当地天亮前已开始有一小时,至天亮前已近食既,因而这次月食是可以观测到的。

也重新推排“大龟四版”之四的日期,得到前1400年至前1000年间的唯一结果如下。

《合集》11546日期公历儒略日现行阴历殷历殷历年首十月癸酉前1166.10.261295840酉月廿九十月廿八正月建丑十一月癸巳前1166.11.151295860戌月二十十一月十九正月建丑十一月癸卯前1166.11.251295870戌月三十十一月廿九正月建丑十二月癸丑前1166.12.51295880亥月初十十二月初九正月建丑十二月癸酉前1166.12.251295900子月初一十二月廿九正月建丑十三月癸巳前1165.1.141295920子月廿一十三月二十正月建丑二月癸酉前1165.2.231295960寅月初二二月初一正月建丑二月癸未前1165.3.41295970寅月十二二月十一正月建丑四月癸酉前1165.4.231296020辰月初三四月初二正月建丑四月癸巳前1165.5.131296040辰月廿三四月廿二正月建丑五月癸卯前1165.5.231296050巳月初三五月初二正月建丑五月癸丑前1165.6.21296060巳月十三五月十二正月建丑五月癸亥前1165.6.121296070巳月廿三五月廿二正月建丑

前1166年有闰卯月,此年份是符合设置十三月的。

“乙酉夕月有食”和“大龟四版”之四日历的存在,可以表明殷墟甲骨卜辞的日期记录是可信的和真实的,也可以表明商代历法具有如下特征:

1.殷历是正月建丑,《史记》、《汉书》和《左传》的说法都是正确的;

2.殷历的日干支比现行阴历要早一天,《汉书·律历志》引用的《殷历》也是正确的;

3.殷历的月首初一是朔日,可见殷历对朔日的观测或推算是非常精准的;

4.殷历是数字纪月,且有十三月。

根据“十三月”是在子月的情况,说明殷历并不存在年终置闰,或者说,殷历根本就没有置闰月的观念和做法。殷历应该就是以冬至出现后的次月作为年首之月,然后就用数字连续纪月,直到下一个冬至月。平年为十二月,遇到闰年就有十三月。

三、商代历法的再验证

1.月有食卜辞中的日期

迄今所发现的殷墟甲骨卜辞中,共有5次是含有日期的月食记录,分别是在《英藏》886和885、《合集》11482、《合集》11483、《合集》11484、《合集》11485等甲骨卜辞中。除已讨论的《合集》11485之外,其他4次月食记录如下:

《英藏》886的卜辞:

《英藏》885的卜辞:

癸亥。

癸未。十三月。

《合集》11482的卜辞摘选:

《合集》11483的卜辞摘选:

[癸]未卜,争贞:翌甲申易日。之夕月有食。甲雾,不雨。[2](P42)

《合集》11484的卜辞摘选:

[己]丑卜…六日[甲]午夕月有食。[2](P46)

对于《英藏》886和885的月食记录,应当考虑此月食之年是有十三月即有闰月的。按殷历正月建丑,则十三月应当是在子月。经过推排,得到前1500年至前1000年间殷墟地区可见到的“己未夕皿庚申月有食”的结果如下。

可能日期殷历月食时间闰月十三月癸未前1315.2.16庚寅04:12:50 -09:47:36闰子月前1314.1.6子月十六前1269.8.12己未15:39:38 -18:48:42闰寅月前1268.1.4子月十二前1052.6.15庚寅08:17:36-10:53:12闰辰月前1051.1.5子月十三

如果“己未夕皿庚申”是指从己未夜晚到庚申白天之际,则唯有前1315年2月16日的月食是符合的。如果“己未夕皿庚申月有食”这几个字是癸丑卜日所刻,也就是“己未夕皿庚申月有食”是七日前的预测,那么实际月食时间与其预测之间有所偏差,也是可能的,如此则表列的3个结果都是符合的,而优选前1269年8月12日。

对于《合集》11482、《合集》11483、《合集》11484的月食记录,因为没有记录月份,这样所对应的日历就有很多。仅前1280年至前1100年间,就有如下诸多结果。

壬申夕月有食:

可能日期月食时间现行阴历殷历前1276.2.404:38:05-06:03:59壬申壬申夕前1256.12.1516:45:45-21:36:23辛未壬申前1214.3.1016:52:09-22:15:38辛未壬申前1168.9.502:06:09-03:33:05壬申壬申夕

甲申夕月有食:

可能日期月食时间现行阴历殷历前1278.2.2623:07:33-05:22:24癸未甲申前1232.8.2321:32:32-02:39:21癸未甲申前1201.7.1121:05:17-02:01:58癸未甲申前1185.2.1821:18:36-02:11:46癸未甲申前1180.5.2216:09:13-21:54:38癸未甲申

甲午夕月有食:

可能日期月食时间现行阴历殷历前1275.6.2106:31:32-12:33:36甲午甲午夕前1223.3.1920:41:51-02:17:35癸巳甲午前1177.9.1404:08:32-10:18:06甲午甲午夕前1125.6.1215:43:49-20:51:22癸巳甲午

2.大龟四版卜辞中的日期

“大龟四版”于1929年秋在小屯村北出土,为4版有字大龟甲,收录于《甲骨文合集》,编号分别为《合集》339(即《甲编》2124)、《合集》557(即《甲编》2123)、《合集》9560(即《甲编》2121)、《合集》11546(即《甲编》2122)。[10]

大龟四版之四(《合集》11546)前已讨论。大龟四版之一(《合集》339)和大龟四版之三(《合集》557),其日期记录没有特殊性,可对应的日历很多,故不予讨论。大龟四版之二(《合集》9560)略有特殊,其卜辞摘选如下:

(1)甲子卜…

(3)壬午卜…

(4)…三月。三

(5)己丑卜…

(7)甲午卜…

(9)丁巳卜…三月。二

(10)…[1]

还有一种释读的顺序为:三月壬午,三月丁巳,中间还有己丑、甲午、戊子。[9]

因此,根据不同的释读顺序,大龟四版之二的日期排列可能是:

(一)甲子、壬午、己丑、甲午、丁巳,相隔53天;

(二)壬午、己丑、甲午、戊子、丁巳,相隔95天。

即便是只考虑注明月份的壬午和丁巳之间,相隔也要有35天,即大于30天。因此,大龟四版之二的日期是具有特别原因的。如何解释这些日期,这就有必要探讨一下卜辞的刻辞行为。首先,同一块甲骨上的卜辞不一定都是在同一天所刻,这一认识是关键的,同一块甲骨上有不同的日期可以作为证据。其次,甲骨上卜辞的日期不一定都是连续的,有的可能是跳跃的或中间缺省的,以《英藏》886和885卜辞为例,根据日历推排,其月食之月至十三月中间相隔有好几个月,还有很多类似的甲骨卜辞也可以作为证据。这些都表明了一个事实,即一块甲骨会被反复多次使用和刻辞,相隔时间可能是几天后,也可能是几个月后,是不是也可能是几年后?为此,就可以假设大龟四版之二的卜辞,不是同一年所刻。也就可以解释三月的天数为何会大于30天,不是因为日期混乱,而是所刻之日分别是在不同年份的三月。

按此假设,对大龟四版之二的两种不同释读顺序的日期各举一例如下。

释读顺序第一组日期第一组年份第二组日期第二组年份(一)甲子、壬午前1055己丑、甲午、丁巳前1054(二)壬午、己丑、甲午前1087戊子、丁巳前1085

3.征夷方卜辞中的日期

李学勤先生研究后发现,征夷方可以分为两个阶段:

第一阶段:

十二月癸酉

己卯在

辛巳在

壬午在

十二月癸未在,步于?

甲申在?

乙酉在?步于淮

丙戌在淮,步于□

庚寅在(次)

第二阶段:

壬寅今日步于永

正月癸卯在攸侯喜鄙永

乙巳在温,今日步于攸

癸丑在攸

正月癸亥在攸

乙丑在攸

二月癸酉在攸[11]

比较一下征夷方卜辞“十祀九月甲午”和“十祀十二月甲午”:

(一)甲午王卜…从侯喜征尸(夷)方…在九月…惟十祀

(二)甲午王卜在(次)…在十月二,惟十祀

可以发现,“十祀九月甲午”可划入第二阶段,“十祀十二月甲午”可划入第一阶段。[8](P248)

据此可再进一步假设,这不仅是两个阶段,更可能是两次征夷方,即可能是两个商王各自在其十祀之年所发动的征夷方。

按此假设,可推排出两次征夷方的日历如下(表中阴历为殷历)。

卜辞日期第一次第二次十祀九月甲午前1077.9.28九月廿六九月癸亥前1093.9.21九月廿二十月癸酉前1093.10.1十月初二十一月癸巳前1077.11.26十一月廿六十一月癸卯前1093.10.31十一月初二十一月癸丑前1093.11.10十一月十二十一月癸亥前1093.11.20十一月廿二十二月癸酉前1093.11.30十二月初三己卯前1093.12.6十二月初九辛巳前1093.12.8十二月十一壬午前1093.12.9十二月十二十二月癸未前1093.12.10十二月十三甲申前1093.12.11十二月十四乙酉前1093.12.12十二月十五丙戌前1093.12.13十二月十六庚寅前1093.12.17十二月二十十二月癸巳前1093.12.20十二月廿三十祀十二月甲午前1093.12.21十二月廿四正月丁[酉]前1076.1.29正月初一正月庚子前1076.2.1正月初四壬寅前1076.2.3正月初六正月癸卯前1076.2.4正月初七乙巳前1076.2.6正月初九正月丙午前1076.2.7正月初十癸丑前1076.2.14正月十七正月癸亥前1076.2.24正月廿七乙丑前1076.2.26正月廿九二月癸酉前1076.3.6二月初八二月癸未前1076.3.16二月十八二月癸巳前1076.3.26二月廿八三月[癸卯]前1076.4.5三月初八[三月]癸丑前1076.4.15三月十八[四月]癸酉前1076.5.5四月初九

四、结语

经过对“大龟四版”、“乙酉夕月有食”、“己未夕皿庚申月有食”和“征夷方”等卜辞中日期的分析和日历的推排,验证了殷历确实是年首正月为建丑,月首初一为朔日,而殷历的日干支比现行阴历要提早一天。同时还表现出,殷人对朔日的观测或推算是非常精准的,殷人可能已经可以推算和预测月食了,或许殷人可能已经知晓“日食在朔,月食在望”了。

总之,殷墟甲骨卜辞所体现出来的商代历法的水平是很高的,是要远远高于后来的西周历法的。

猜你喜欢

月食卜辞历法
从走马楼西汉简歧异干支谈汉初历法混用问题
天狗食月
发明新历法
殷墟非王卜辞的再整理与研究
日食和月食
看月食
第一次看超级月食
殷墟甲骨“先用字体分类再进行断代”说评议
历史上最长的一年