?

武王伐紂日期的新推定

2020-06-08 03:17金宇飛
商丘職業技術學院學報 2020年1期
關鍵詞:武王甲子天象

金宇飛

(上海材料研究所,上海 200437)

兩千年來,歷代學者根據各自對文獻和西周歷法的理解,提出了至少44種武王克商之年的假說,跨度從公元前1130年至公元前1018年[1],[2]38-39?!断纳讨軘啻こ獭肪C合利用古文獻和西周青銅器銘文(金文)的記載,結合考古測年和天文學,推定武王克商之日是在前1046年1月20日[2]46-49。但是,前1046年方案是正月建亥和戊午在二月[3],與古文獻記載不符,這就留下了很大的破綻。此后又陸續出現了對武王伐紂之年的各種不同見解[4-8],至今各種分歧依然存在。因而,似有必要再做檢討,修訂或重新復原武王伐紂日期,以符合古籍和金文中的記載。

一、成王元年的確認

《史記·魯周公世家》記魯公伯禽之后的年數為:考公有四年,煬公有六年,幽公有十四年,魏公有五十年,厲公有三十七年,獻公有三十二年,真公有三十年,武公有九年,懿公有九年,伯御有十一年,孝公有二十七年,惠公有四十六年?!稘h書·律歷志》引《世家》記魯公伯禽之后的年數為:考公有四年,煬公有六十年,幽公有十四年,微公有五十年,厲公有三十七年,獻公有五十年,慎公有三十年,武公有兩年,懿公有九年,柏御有十一年,孝公有二十七年,惠公有四十六年。其中“煬公有六十年”“獻公有五十年”“武公有兩年”等年數與現今版本的《史記·魯周公世家》不同。

另外,《漢書·律歷志》也記載了若干位魯公的日期,利用《壽星天文歷》等天文日歷軟件進行推排,得到其對應的日歷,如表1所示。

表1 《漢書·律歷志》中記載的魯公日期所對應的日歷

表1所對應的日歷,符合西周初年是以朏(新月,約當初二、初三)為月首[2]19,[9]21,也符合《魯歷》的正月建子。表1顯示的朔旦冬至,其冬至日皆在“朔”后三日或四日,不知出現這種規律化現象是何緣故。但不管怎樣,至少這些日期是存在的。

根據表1所列日期推算可得,惠公元年為前768年,懿公元年為前815年,獻公元年為前886年,微公元年為前973年。唯有煬公元年為前990年無甚意義,考慮到前971年亦出現朔旦冬至,如果假定是當時的記錄者或抄錄者把年份弄混了,則選取前971年為煬公二十四年,煬公元年為前993年,這一結果比較有意義。而惠公之后是隱公,隱公元年按《春秋》所記載的推算為前722年,對此年份各家皆無異議。

由此可復原出魯公世家早期年表,如表2所示。

表 2 魯公世家年表(早期)

再依據《漢書·律歷志》“魯公伯禽,推即位四十六年”,由此可得,魯公伯禽元年為前1043年或前1042年?!稘h書·律歷志》認為,魯公伯禽即位之年亦即成王元年,則成王元年亦為前1043年或前1042年。

《夏商周斷代工程》依據《尚書·周書·召誥》“惟二月既望,越六日乙未,王朝步自周,則至于豐。惟太保先周公相宅,越若來三月,惟丙午朏?!焙汀妒酚洝斨芄兰摇贰俺赏跗吣甓乱椅?,王朝步自周,至豐,使太保召公先之雒相土。其三月,周公往營成周雒邑,卜居焉,曰吉,遂國之?!蓖婆懦龀赏跗吣甓乱椅礊榍?036年2月27日寅月廿二乙未,繼而推斷成王元年為前1042年[2]28-29。

由此可見,現今版本的《史記·魯周公世家》是正確的,而魯公伯禽元年如果與成王元年是同一年的話,應為前1042年。

而成王日歷也顯然是正月建丑,與魯歷的正月建子不同,西周初年的日歷是正月建丑。

《世本》:“煬公徙魯?!睙泗斂赡馨l生在煬公六年,翌年幽公在原籍即位,從而形成兩位魯公并存且各自紀年?!妒酚洝斨芄兰摇罚骸坝墓哪?,幽公弟晞殺幽公而自立,是為魏公?!被蛟S,幽公也是逐煬公而自立。這樣就可以解釋,雖然煬公有60年,但是,6年以后的年數與幽公、魏公等的年數是并行的。

由此推測,《漢書》雖然注明是引用《世家》,卻可能又同時參考了其他資料,且只顧引用不做驗證,這也許是古人著述引用的傳統做法,不能以當今的做法來審視過去。如此,依靠引用匯集而成的《古本竹書紀年》,其保持的資料原始性也就不一定完全可靠了。

二、武王伐紂的天數

武王伐殷,往伐歸獸,識其政事,作《武成》?!渡袝ぶ軙の涑伞罚骸拔┮辉氯沙脚运榔?。越翼日癸巳,王朝步自周,于征伐商。厥四月哉生明,王來自商,至于豐。乃偃武修文,歸馬于華山之陽,放牛于桃林之野,示天下弗服。丁未,祀于周廟,邦甸侯衛駿奔走執豆籩。越三日庚戌柴望,大告武成?!薄段涑伞酚只仡櫫宋渫醴ヒ笕粘蹋骸凹任煳?,師逾孟津。癸亥,陳于商郊,俟天休命。甲子昧爽,受率其旅若林,會于牧野?!?/p>

《國語·周語》:“昔武王伐殷……王以二月癸亥夜陳,未畢而雨?!?/p>

對于武王伐殷日程,自戊午師逾孟津,至甲子會于牧野,其間相隔幾天,歷來有兩說:

一是以《史記·周本紀》為代表,認為自戊午至甲子為67天;二是以《漢書·律歷志》為代表,認為自戊午至甲子為7天。

《史記·周本紀》:“十一年十二月戊午,師畢渡盟津,諸侯咸會?!倍稘h書·律歷志》依據《尚書·周書·泰誓》:“惟十有一年,武王伐殷。一月戊午,師渡孟津?!币粋€是“十二月戊午”,一個是“一月戊午”,兩者顯然不同。

由此,《史記·周本紀》是十二月戊午至二月甲子為67天,而《漢書·律歷志》是一月戊午至二月甲子為7天?,F將兩種觀點的日程列表如下,如表3所示。

表3 武王伐殷日程的兩種觀點和日期推排

由于自壬辰至戊午相隔有26天,如果都出現在同一個月內,必定是壬辰在月初,戊午在月末,而癸亥也就自然出現在下個月的月初了,《漢書》就是如此安排的。但是,由于自癸亥至丁未相隔為44天或104天,如果癸亥出現在二月初,那么,丁未只能出現在三月中旬或五月中旬,絕無可能出現在四月。因此,《漢書》就設想在二月至四月之間有一個閏月,使得丁未可以在四月出現。但是,《漢書》顯然是按照漢時的歷法在推想,卻沒想到在殷商和西周的歷法中并沒有閏月之名,而是直接使用數字連續紀月,即如果是閏二月,就順序稱之為三月,直到年末有十三月,或稱之為年終置閏[2]19,[9]19-20。因此,《漢書》設想的通過加一個閏月來解決四月丁未的困惑是不符合史實的。

盡管兩千年來,《漢書》的方案一直影響巨大,包括《夏商周斷代工程》在內的多數武王伐紂方案都秉承了7天說。但是,在參照了殷周金文中的歷法資料后,就可知其破綻是顯而易見的。而且,按照《漢書·律歷志》所設想的武王伐殷日期,在前1200年至前1000年間的日歷上也是不存在的或未見有完全符合的。

《逸周書·世俘解》也記載了一些武王伐紂的日期:“維四月乙未日,武王成辟,四方通殷,命有國。惟一月丙午旁生魄,若翼日丁未,王乃步自于周,征伐商王紂?!薄霸饺魜矶录人榔?,越五日甲子,……,丁卯,……。戊辰,……,壬申,……。辛巳,……。甲申,……。辛亥,薦俘殷王鼎。武王乃翼,矢慓矢憲,告天宗上帝?!?。壬子,……。癸丑,……。甲寅,……。乙卯,……?!薄案?,……。乙巳,……。時四月既旁生魄,越六日庚戌,武王朝,至燎于周,……。若翼日辛亥,祀于位,用籥于天位?!?。越五日乙卯,……?!?/p>

按文中的日期順序,自丙午至甲子,相隔為18天。因而,只有當丙午是在一月下半月,甲子才有可能出現在二月,并且很大可能是在二月上半月,這樣就不符合丙午旁生魄和既死魄甲子的記載。而要讓丙午旁生魄是在上半月,既死魄甲子是在下半月,那么丙午和甲子必然落在同一個月內,那么一月丙午和二月甲子的表述顯然是自相矛盾的。又,自甲子經辛亥和庚子至庚戌,相隔為106天,此天數為整整三個半月。因而,如果甲子是在二月下半月,那么庚戌最早只能出現在六月;如果甲子是在二月上半月,那么庚戌最早也只可能出現在五月。由此可知,當甲子是在二月,庚戌是不可能出現在四月的。因此,《逸周書·世俘解》所記載的日期是不可能的或者是混亂的。若要解決這些混亂,只能假設《逸周書·世俘解》是由不同來源的至少3篇文章匯編而成,且其原始資料各自采用的是不同歷法,即年首的正月不同,這些混亂正是由于不同文章各述各的日期所致。

綜上所述,《漢書·律歷志》所設想的武王伐紂日期是不存在的,《史記·周本紀》和《武成》記載的武王伐紂日期可能是符合現實的,而《逸周書·世俘解》記載的武王伐紂日期是混亂的和需要重新編排的。

三、武王伐紂的年份

兩千年來,在諸多的武王伐紂之年假說中,影響最大的是前1122年說和前1027年說。

前1122年說,出自黃宗羲(清)的《歷代甲子考》:“魯公伯禽四十六年,考公四年,煬公六十年,幽公十四年,微(《史記》作魏)公五十年,厲公三十七年,獻公五十年,愼公三十年,武公兩年,懿公九年,伯御十一年,孝公二十七年,惠公四十六年,凡伯禽至惠公三百八十六年。伯禽以成王元年癸巳歲卽位,至康王十六年戊寅薨?!?。由成王上推,周公攝政七年,武王克殷后七年而崩,故伐紂之歲,斷以為己卯也?!薄稓v代甲子考》所推斷的這個己卯年即前1122年,即以惠公末年為前723年,上推386年再加14年所得。而《歷代甲子考》的魯世家年數,是引用自《漢志》(《漢書》)。前已證明《漢書》給出的魯世家年數有誤,故以此而推斷出來的武王伐紂之年為前1122年也就是不可信的。

前1027年說,出自《古本竹書紀年》“自武王滅殷,以至于幽王,凡二百五十七年”。通常以幽王末年為前771年,上推257年,即得出武王滅殷是在前1027年。按照前1027年說,則西周年數是大大減少,這就很難同時滿足《史記·周本紀》等諸多古籍中記載的“成康之際,天下安寧,刑錯四十余年不用”和“穆王立五十五年”。而若要滿足成康“四十余年”,則必然要減少穆王在位年數[5],這是前1027年說的兩難之處。

此外,前1122年說和前1027年說,也與成王元年為前1042年相差太大。

《古本竹書紀年》:“十一年庚寅,周始伐商?!薄督癖局駮o年》:“帝辛五十二年庚寅,周始伐殷。秋,周師次于鮮原。冬十有二月,周師有事于上帝。庸、蜀、羌、髳、微、盧、彭、濮從周師伐殷?!薄拔渫跏晷撩?,王率西夷諸侯伐殷?!薄跋乃脑?,王歸于豐,饗于太廟?!薄吨駮o年》的這些記載與《史記·周本紀》“十一年十二月戊午,師畢渡盟津,諸侯咸會”等是一致的。

所謂“周始伐殷。秋,周師次于鮮原”,應該理解為大隊先行,并且是在武王十一年庚寅秋?!岸卸隆?,也應該是在武王十一年庚寅。而“王率西夷諸侯伐殷”,是在武王十二年辛卯。這也表明了,武王應該是在大隊渡過黃河后才出征伐殷,這與武王伐紂天數的分析也是相容的。

但是,《泰誓》的“惟十有一年,武王伐殷。一月戊午,師渡孟津”,顯然與《史記·周本紀》和《竹書紀年》等是不一致的?!拔煳纭本烤故窃凇笆荒晔隆边€是在“十一年一月”?

如果認為兩者都沒有錯,那就只有一種可能,即武王克商后是更改了歷法,也就是更改了年首正月。綜合有關武王伐紂的文獻記載,考慮到成王日歷為正月建丑,還有西周金文顯示的西周歷法主要是正月建子、建丑[2]19,再考慮到《史記·周本紀》記載的周人祖先為夏后稷,因而周人可能會沿用夏歷,因此推測:武王克商后,是將十二月改成了一月,即將原來是按照夏歷的正月建寅,改成了按照殷歷的正月建丑。這可能也是周人以此來表明其可以作為殷商的正統繼承者的一種體現。

這樣就可以解釋,由于發生了這次改歷,導致新舊文獻中的日期出現了不一致?!妒酚洝ぶ鼙炯o》采用的顯然是《武成》之類的舊文獻,而《泰誓》應該是改歷后的新文獻,可能是在武王十三年修改過和最終定稿的。

但是,十一年十二月更改為一月,應該是十二年一月,可《泰誓》里卻仍為十一年一月。這里可能隱藏了一個重大失誤,即武王十一年十二月改為一月,卻沒有改年號,這樣,武王十一年很可能是連續用了兩年。

所以在《今本竹書紀年》中,既有武王“十二年辛卯,王率西夷諸侯伐殷”,又有“武王滅殷,歲在庚寅”這樣相互矛盾的記載。顯然這是后人將武王十二年(辛卯年)滅殷的事,算在了庚寅年(武王十一年)。由此可見,不僅武王十一年連續用了兩年,庚寅年也同樣連續用了兩年。

再看《古本竹書紀年》的“自武王滅殷,以至于幽王,凡257年”,如果以幽王元年的前781年上推[4],則得到的結果是前1037年,這與前1051年剛好相差14年?;蛟S,《古本竹書紀年》的257年只是統計了周王實際統治的年數,而未包含共和行政的14年。

四、文王和武王的年代

《漢書·律歷志》引《春秋歷》“周文王四十二年十二月丁丑朔旦冬至,孟統之二會首也。后八歲而武王伐紂”。經天文日歷推排,前1200年至前1000年間,未見符合此條件的日子。唯有前1058年12月31日,恰逢子月初一與冬至同日,不過此日為丙午,并非丁丑。不過12月2日即上個月的亥月初一恰好是丁丑。這或許是《春秋歷》所依據的原始資料,因漏簡而造成了“丙午朔”等字的缺失,使得“朔旦冬至”的前面只見有“丁丑朔”了,以為就是“丁丑朔旦冬至”了。至于“十二月”,應該是后人只知西周是正月建丑,以為文王也應該是,繼而在“丁丑朔旦冬至”前添加了“十二月”。如果按照前1058年為文王四十二年進行推算,則文王元年為前1099年。

《逸周書·小開》:“維三十有五祀,……,正月丙子,拜望,食無時?!辈镾ky Map Pro11天文軟件中的月食表,得到豐鎬地區(北緯34°13′0″,東經108°43′59″)可見月食的日歷,如表4所示。

表4 丙子月食

以此推算,文王元年亦為前1099年,而且是正月建寅,符合前面的改歷假設。

此外,武王伐紂已是武王十一年或十二年了,為何《漢書·律歷志》是文王四十二年后八歲?這一混亂似乎可以印證《史記·周本紀》所記載的“武王自稱太子發,言奉文王以伐,不敢自?!睉撌鞘穼?,即武王即位后只是對內使用自己的年號,對外仍沿用文王的年號,并仍以文王的名義伐紂。以前1051年為第2個武王十一年,則武王元年為前1062年。以文王元年為前1099年,則文王實際在位37年,至克殷二年即前1050年正好為50年,這才公告文王崩,故文王名義在位50年,此公告也被各地史官各自記錄在冊而成為鐵證。此后,克殷二年的文王崩,又與武王十一年伐紂克殷的史實交織在一起,最終被后世史家界定為克殷二年的文王崩當然應該是武王崩,太史公也被惑,并在《史記》中留下了“西伯蓋即位50年”和“武王克殷二年崩”。而根據《尚書·周書·泰誓》“惟十有三年春,大會于孟津”,表明武王十三年還在,不止2年。再依據其他記載(當然有很多),又出現了武王年和四年說[10-12],古今都被惑了。

《漢書·律歷志》:“成王元年正月己巳朔,此命伯禽俾侯于魯之歲也。后三十年四月庚戌朔,十五日甲子哉生霸。故《顧命》曰:‘惟四月哉生霸,王有疾不豫,甲子,王乃洮沫水’,作《顧命》。翌日乙丑,成王崩?!?/p>

經天文日歷推排,這些日期所對應的日歷如表5所示。

表 5 《漢書·律歷志》中記載的成王日期所對應的日歷

得到的成王元年為前1045年,并不是前1042年。得到的后三十年為前1006年,而實際日歷卻是后四十年。

若以成王元年為前1042年,那前1006年恰好是成王三十七年,這與《今本竹書紀年》的記載正好吻合。

但依據《漢書·律歷志》,成王元年卻為前1045年?!督癖局駮o年》記載:“武王十七年冬十有二月,王陟?!币晕渫踉隇榍?062年,那么武王十七年就應該是在前1046年,剛好可以銜接成王元年的前1045年。

西周早期青銅器庚嬴鼎的銘文中有“廿又二年四月既望己酉”[13],經天文日歷推排,此日即前1024年5月9日,陰歷十七,當年正月建丑。推算其元年為前1045年,也剛好與成王元年為前1045年一致。

由此可知,前1045年和前1042年都是成王元年。這可能是各家對待成王元年的觀點不同,有的認為前1045年已確定成王為繼任者就應該算作成王紀年,而有的認為前1042年成王舉行了即位儀式后才算?;蛟S,這也可能是反映了武王崩后各家對周公攝政或篡權的不同態度。

如果前1045年為成王元年,那么到前1006年應該已是成王四十年了,而不是成王三十年。這可以認為《漢書》所依據的原始資料可能是把“卌”誤當成“卅”了。

五、武王伐紂的天象

(一)歲在鶉火

《國語·周語》:“昔武王伐殷,歲在鶉火,月在天駟,日在析木之津,辰在斗柄,星在天黿,星與日辰之位皆在北維?!?/p>

對其中所述天體的注釋如表6所示。(表中的英文星名取自《中西對照恒星圖表》[14])

表 6 《國語·周語》中所述天體注釋

按天體運行規律,月亮是一個朔望月走完二十八星宿,大約每天經過一個星宿;太陽是一個回歸年走完十二星次,大約每月經過一個星次,或者說在每個星次里要運行大約一個月;木星大約是十二年走完十二星次,大約每年經過一個星次,或者說在每個星次里要運行大約一年。二十八星宿和十二星次,是專用于定位月亮、太陽和木星的,并以此來紀日、紀月和紀年。用木星來紀年,故木星又稱為歲星。由此可知,月亮每月都會有一天來到天駟(房宿);太陽每年都會有一個月在析木之次,即有立冬和小雪的那個月,三千年前時大約是在公歷(太陽歷)的11月9日至12月8日之間;木星大約每12年都會有一年在鶉火之次。因此,“歲在鶉火,月在天駟,日在析木之津”是一個明確記載有年月日的日期,如果缺少其中一個,譬如不考慮“歲在鶉火”,那就變成了每年都會有這一天。因而,把“月在天駟,日在析木之津”定在前1044年,卻把“歲在鶉火”定在前1047年[15],是違背原意的拆分,所得結果必定是錯誤的,不符合其他天象和日期也是必然的。

此外,按黃經算,房宿至斗柄相距約30°,這樣,月亮從天駟到斗柄需要走大約2.5天。因此,“月在天駟”和“辰在斗柄”的天象不會發生在同一天,兩者相隔有二三天,所以《漢書·律歷志》“后三日合辰”是正確解釋。同樣,按黃經算,斗宿至女宿相距約30°,而水星由于是在地球軌道內側運行,且離太陽最近,所以從地球上看,水星與太陽的最大距離只有28°。因此,日月合朔即便是在析木之末的斗宿,水星也不可能同時出現在天黿之首的女宿,即“辰在斗柄”和“星在天黿”的天象也不會發生在同一天。由此可知,《國語·周語》所說的天象并不發生在同一天,而是對3次天象記錄的匯總,即“歲在鶉火,月在天駟,日在析木之津”為第1次,后三日的“辰在斗柄”為第2次,又若干日出現的“星在天黿”為第3次,而斗宿和女宿皆屬于北方玄武,故謂“星與日辰之位皆在北維”。

按照上述理解,利用SkyMapPro11天文軟件,即可推排出前1140年至前1000年期間,符合《國語·周語》所說天象的日歷,如表7所示。

表7 符合《國語·周語》所說天象的可能日歷

從表7可知,符合《國語·周語》所說天象的日期共有9個。唯有前1047年,由于恰逢水星與太陽同在女宿,因而在“日在析木”之后是見不到“星在女宿”天象的。再次明顯可見水星,是在前1046年1月11日,而此時水星已到了危宿,即早過了女宿?;蛘甙凑枕f昭所注而認為天黿是玄枵之次[3],[16],包括了女、虛、危三宿,即星在女、虛、危三宿都是星在天黿,等同于“星在玄枵”。但是,如果這樣,那就等于說“星在天黿”每年都可見,甚至是好幾天,而且位置不定,區域較大,也就是說這是一個既平常又沒有特征的天象,如此記錄“星在天黿”有什么意義呢?“星在玄枵”就像“月在玄枵”一樣,是毫無意義的天象。而《漢書·律歷志》“婺女天黿之首”的解釋就很有意義了,因為“星在女宿”不僅一年只有一天,而且還不一定每年都能見到,這與“辰在斗柄”也不是每年都會發生是一樣的情況。這樣,以距離斗宿最近的天黿之首的女宿,作為“星在天黿”,就與“辰在斗柄”的意義一樣了,都是用唯一且難得的天象來補充說明和標定“歲在鶉火,月在天駟,日在析木之津”這一天的。因而,前1047年的天象并不完全符合《國語·周語》的意義。而在全部的10條中,唯有前1058年為最佳,出現的3次天象前后只有17天,這就最能符合《國語·周語》的天象及其記錄的意義。

《帝王世紀》:“文王即位四十二年,歲在鶉火,文王于是更為受命之元年,始稱王矣?!鼻耙淹婆?,文王四十二年即前1058年。而按照上表,前1058年也是歲在鶉火?!稘h書·律歷志》:“文王受命九年而崩”,若以受命之年為前1058年,則受命九年即前1050年,亦與前面所推的前1050年為文王五十年崩的結果一致。由此推斷,前1058年,實為武王五年和武王受命之年,而假托為文王四十二年和文王受命之年。

《漢書·律歷志》:“《洪范》篇曰:惟十有三祀,王訪于箕子。自文王受命而至此十三年,歲亦在鶉火,故《傳》曰:歲在鶉火,則我有周之分野也。師初發,以殷十一月戊子,日在析木箕七度,故《傳》曰:日在析木。是夕也,月在房五度。房為天駟,故《傳》曰:月在天駟。后三日得周正月辛卯朔,合辰在斗前一度,斗柄也,故《傳》曰:辰在斗柄?!憋@然,《漢書·律歷志》是以受命之年為元年來解釋“《洪范》篇曰惟十有三祀”的。以受命元年為前1058年,則十三年即前1046年。用天文軟件復驗,前1047年7月至前1046年6月,確實是歲在鶉火?!妒酚洝に挝⒆邮兰摇罚骸盎映?,過故殷墟,感宮室毀壞,生禾黍,箕子傷之,欲哭則不可?!卑础妒酚洝に挝⒆邮兰摇酚涊d,箕子朝周之后武王崩?!督癖局駮o年》:“武王十六年,箕子來朝?!币晕渫踉隇榍?062年,則十六年為前1047年。前1047年,即殷亡后五年,無人維護的故殷墟宮室已顯凋敝,時間恰當。而箕子遠道而來,路上也要幾個月,在中國住上幾個月至明年返回也是理當,故前1046年武王訪于箕子,時間上也是符合的。如此說來,《洪范》的“惟十有三祀”,可能還真的是以受命之年為元年的,可見武王紀年之亂。但是,《漢書·律歷志》而后又把“十有一年,武王伐紂”也當作了“武王伐殷,歲在鶉火”,這是把武王十一年與《洪范》的十三年算作了同一年。這只能解釋這是按文王受命二年崩來算的,這樣武王十一年正好是受命十三年。這顯然是把文王克殷二年崩,這不可能,就改成了受命二年崩了。這樣就得出了受命之年、克殷之年、訪箕子之年等都是歲在鶉火,由此而誤導了不少后人[17]。又由于“辰在斗柄”必在亥月,以此推得的克商之日自然也是在冬季,此亦誤導了不少后人,以至于涌現出了“武王伐紂,雪深丈余”(《舊唐書·禮儀志》引《六韜》)和“庚辰有七尺之厚,甲子有一丈之深”(《周書·劉璠傳》載劉璠《雪賦》)等浪漫作品來。若真雪深丈余,古人如何行軍打仗?《今本竹書紀年》:“帝辛五十一年冬十一月戊子,周師渡孟津而還?!卑础督癖局駮o年》,帝辛五十二年與第一個武王十一年是同年。故此年為武王十年,此日應當是前1053年11月16日,陰歷亥月十二戊子,是為殷歷十一月。但按照第二個武王十一年算,此年亦為武王九年?!妒酚洝ぶ鼙炯o》:“九年,武王上祭于畢。東觀兵,至于盟津?!?。諸侯皆曰:紂可伐矣。武王曰:女未知天命,未可也。乃還師歸?!贝耸录c“十一月戊子周師渡孟津而還”事件,實際上是發生在同一年,應該是同一件事。由此可知,《漢書·律歷志》的“殷十一月戊子”之日不是牧野之戰的發兵之日,而是上一年“周師渡孟津”之日。

綜上所述,“歲在鶉火,月在天駟,日在析木之津”應該為前1058年11月29日,此日實際上是武王受命和立誓伐紂之日,或此年是武王伐紂開始之年,而假托為文王受命之年。

(二)五星聚與彗星出

《淮南子·兵略訓》:“武王伐紂,……彗星出而授殷人其柄?!?/p>

許多學者都認為此彗星即哈雷彗星。哈雷彗星平均周期約76年,其回歸年份,張鈺哲定在前1057年,Yeomans 等定在前1059年,張鈺哲和張培瑜也認為Yeomans等的計算更精確[18]。

《今本竹書紀年》:“帝辛三十二年,五星聚于房?!?/p>

《太平御覽》引《春秋緯·元命苞》:“殷紂之時,五星聚于房?!?/p>

《帝王世紀》:“文王在豐,九州諸侯咸至,五星聚于房?!?/p>

《隋書·天文志》:“五緯入房,啟姬王之肇跡?!薄爸軐⒎ゼq,五星聚房?!?/p>

《宋書·符瑞志》:“文王夢日月著其身,又鸑鷟鳴于岐山。孟春六旬,五緯聚房?!薄耙蟮蹮o道,虐亂天下。星命已移,不得復久。靈祇遠離,百神吹去。五星聚房,昭理四海?!?/p>

《新論》(嚴可均輯本):“甲子,日月若合璧,五星若連珠,昧爽,武王朝至于商郊牧野,從天以討紂,故兵不血刃而定天下?!?/p>

前1100年至前1010年期間的五星聚天象列表如表8所示[3]。

表8 五星聚天象出現的日歷列表

前1059年是哈雷彗星回歸年,前1058年為受命之年,因而,前1059年春季出現的五星聚天象,最符合帝辛和文王年代的那次五星聚。只是前1059年出現的是五星聚于井,而不是傳說中的五星聚于房。

前1059年內接連出現罕見的五星聚和哈雷彗星天象,這對于迷信天象的古人來說,是一件天大的事。周人應該是很好地利用了這些罕見的奇異天象,經過精心準備,至前1058年受命立誓伐商,又經過長期的戰爭準備和輿論宣傳,至前1052年已能夠聯合起了諸多友邦參加伐商,也最終成功蠱惑了迷信的殷人臨陣倒戈不戰而潰,使牧野之戰成了兵不血刃的一日之戰。

有關五星聚天象,多數記載都認為是出現在帝辛和文王年代,也就是在牧野之戰之前好幾年,因而前1059年是符合的。唯有《新論》認為五星連珠天象是出現在牧野之戰的甲子日,但這并沒有合適的天文學年份可予以對應,所以應該屬于附會,與克商之年也是歲在鶉火的情況一樣。

(三)歲星與太歲

《尸子》:“武王伐紂,魚辛諫曰:歲在北方不北征。武王不從?!?/p>

《荀子·儒效》:“武王之誅紂也,行之日以兵忌,東面而迎太歲,……?!?/p>

《淮南子·兵略訓》:“武王伐紂,東面而迎歲,……?!?/p>

利簋銘文:“珷征商,隹(唯)甲子朝,歲鼎,克聞(昏)夙又(有)商?!??!盵19]

前1052年至前1051年間木星位置列表如表9所示。

表9 前1052年至前1051年間木星位置

如表9所列,前1052年1月木星在女宿,年中經虛宿,至12月到危宿,而女、虛、危三宿皆屬北方玄武,故有“魚辛諫曰:歲在北方不北征”,但“武王不從”,依然出征伐紂。前1052年10月28日至前1051年1月28日,歲星僅出現在西方,而太歲與之反向運行是在東方,按周師出發之日是在前1052年秋(10月底),故有“武王之誅紂也,行之日以兵忌,東面而迎太歲”。前1051年3月1日之后,歲星僅出現在東方,只要牧野之戰是在3月1日之后,就會有“武王伐紂,東面而迎歲”。

至于利簋銘文,其釋義歷來分歧很大,其中僅把“歲鼎”釋為天象的就有許多觀點。張政烺釋“歲,歲星,即木星。鼎,讀為丁,義即當?!瓪q鼎意謂歲星正當其位”[19],戚桂宴釋“歲鼎是歲星當空,表示吉兆,歲即歲星,鼎訓為當”[20],趙誠釋歲鼎為“歲貞,即通過祭祀進行貞問”[20],李學勤釋“歲鼎之鼎,當讀為貞。貞訓為正。歲星之正,即其中天”[21],張培瑜[22]、劉次沅[3]、江曉原等[16]皆贊同為“歲星中天”。曹漢剛[23]、張秋芳[24]等根據銘文風格而考證利簋為成王時期之器。如果利簋為成王時期之器,則其銘文“歲鼎”兩字應無“貞”之義,而釋義為“歲星當空,表示吉兆”最為恰當。又,鼎原為烹飪之器,亦用作祭祀禮器,而兼有光大顯赫之意,故“歲鼎”亦可釋為“歲星當空,清晰可見,光大顯赫”。經過推排,牧野之戰之日是為前1051年4月16日,陰歷二月廿五甲子,此日拂曉前的歲星最高高度已達17°(北辰高度約為34°),整個天空除了一輪殘月之外沒有其他行星,孤獨而明亮的歲星當空高懸清晰可見,非常顯眼也是非常顯赫、非常吉兆,可謂“歲鼎”。

六、結語

各家在復原武王伐紂日期時,出現不同方案和分歧,究其緣由主要是源自兩個不同解釋:

一是對行軍天數的解釋,即自戊午師逾孟津至甲子會于牧野,期間相隔是7天還是67天。如果7天,就難以同時滿足月相和四月丁未的記載,因此應為67天。

二是對歲在鶉火的解釋,即歲在鶉火是指武王伐紂克商之年還是武王伐紂開始之年。如果是武王伐紂克商之年,就難以同時滿足其他天象和日期記載,因此應為武王伐紂開始之年。

因此,以符合古籍和金文中所記載的各條與武王伐紂相關的日期和天象為原則,經過全面分析、釋讀和推排,推斷武王十一年是連續使用了兩年,由此而復原出文王至成王年表,如表10所示,復原出武王伐紂克商日程,如表11所示。

表10 文王至成王年表

表11 武王伐紂克商日程

續表11 武王伐紂克商日程

由此得出結論,武王伐紂立誓之日,是在前1058年11月29日,即“歲在鶉火,月在天駟,日在析木之津”之日,而武王伐紂克商之日,是在前1051年4月16日,即武王十一年庚寅二月(卯月)廿五甲子;或者說,武王伐紂開始之年即受命之年為前1058年,武王伐紂克商之年為前1051年。

猜你喜歡
武王甲子天象
天象奇觀
問鼎
南北半球天象
問鼎
“武王攻擊紂尸”的原由探析
奇異的天象
沈鵬《迎戊戌雙甲子》
大孔樹脂純化馬甲子五環三萜類成分的工藝研究
齊白石畫作中的甲子記歲法
天下責任與先秦諸子學說的內在差異
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合