
依據早期史籍中關於武王伐紂時的各種天象記載,以天文學方法來求解武王伐紂之準確年代,並設法重現武王伐紂時之日程表,是一件相當複雜的工作。在完成這一工作的過程中,我們設計了幾種不同的方案。非常令人驚異的是:這幾種方案所得的結果,全都導向一個完全相同的結論!本文就是上述方案之一。[1]
一 意義與難點
武王伐紂之年,正是商朝結束,周朝開始。如能定出武王伐紂之確切年代,就可以根據文獻和考古材料所記載商、周各有多少王,各王在位多少年等資料推算出一個年表。所以武王伐紂的年代問題,是判斷商、周年代至關重要的一個點。
考定武王伐紂之年,又是一個非常典型的歷史年代學課題。由於傳世的有關史料比較豐富但又不夠確定,使得這一課題涉及到文獻史料的考證、古代歷譜的編排、古代天象的天文學推算、青銅器銘文的釋讀等等。這一課題為古今中外的學者提供了一個極具魅力的舞台,讓他們施展考據之才,馳騁想像之力。
正因為如此,這一課題研究發端之早、持續年代之長、參與學者之多,都達到了驚人的程度。最先在這一舞台上正式亮相的,或當推西漢末的劉歆,《漢書·律曆志》中的「世經」篇,就是劉歆依據他自己的曆法《三統曆》求得的歷史年代學成果。進入20世紀,加入研究武王伐紂之年隊伍的不僅有中國學者,還有日本、歐洲和美國的學者。研究者在中外各種學術刊物上發表了大量論著。有的學者還隨著研究的不斷深入,先後提出過不止一種結論。然而如此之多的學者研究了兩千餘年,武王伐紂之年還一直未有定論。
由於天人感應的思想觀念在古代中國源遠流長,改朝換代、人間治亂等等都被認為與某些特殊天象有直接關係,[2]因此許多歷史事件的記載中往往包括了事件前後所出現的某些特殊天象記錄。象武王伐紂這樣的重大歷史事件,自不例外。《國語·周語》、《淮南子·兵略訓》等古籍在論及武王伐紂時,都有當時一些特殊天象的記錄,但是這些古籍,成書年代都要比武王伐紂晚很多,比如《國語》成書於戰國,《淮南子》成書於西漢,都不是當時的記錄。這樣就使得史籍中關於武王伐紂時的天象記載,本身還有真偽難辨的問題。
史籍所載武王伐紂時的特殊天象,成為現代學者探索伐紂之年的重要途徑。因為應用現代天文學中的天體力學方法,天文學家已經能夠對幾千年前的許多天象進行回推計算。如日食、月食、行星位置、周期彗星等等,從理論上說,都可以根據 史籍中的記載,推算出此天象發生於何年何月何日,甚至精確到幾時幾分幾秒。由此即可推得武王伐紂之年究竟是哪一年。
二、前賢之研究
古今中外研究者所推得的伐紂之年,大相徑庭。據目前所見材料,截止於1997年5月1日,已經發表的關於武王伐紂之年的研究論著至少已達106種,提出了多達44種不同的伐紂之年。[3]表1以簡表形式給出一覽:
表1:44種武王克商之年
序號 | 克商之年(公元前) | 提出者及支持者 |
1 | 1130 | 林春溥 |
2 | 1127 | 謝元震 |
3 | 1123 | 胡厚宣 |
4 | 1122 | 劉歆、邵雍、劉恕、鄭樵、金履祥、馬端臨、吳其昌、島邦男 |
5 | 1118 | 成家徹郎 |
6 | 1117 | 胡厚宣 |
7 | 1116 | 皇甫謐 |
8 | 1112 | 劉朝陽 |
9 | 1111 | 一行、董作賓、嚴 一萍、鄭天傑 |
10 | 1106 | 張汝舟、張聞玉 |
11 | 1105 | 馬承源 |
12 | 1102 | 黎東方 |
13 | 1093 | 葛真 |
14 | 1088 | 水野清一 |
15 | 1087 | 白川靜 |
16 | 1078 | 胡厚宣 |
17 | 1076 | 丁驌 |
18 | 1075 | 唐蘭、劉啟益 |
19 | 1071 | 李仲操 |
20 | 1070 | 「殷歷家」、鄒伯齊、李仲操、張政烺、劉啟益 |
21 | 1067 | 姚文田 |
22 | 1066 | 姚文田、新城新藏 |
23 | 1065 | 姚文田、哈特納(W.Hartner)、白光琦 |
24 | 1063 | 山田統 |
25 | 1059 | 彭瓞鈞 |
26 | 1057 | 朱右曾、張鈺哲、葛真、趙光賢、張培瑜 |
27 | 1055 | 章鴻釗、榮孟源 |
28 | 1051 | 高木森、姜文奎 |
29 | 1050 | 李兆洛、葉慈(W.P.Yetts) |
30 | 1049 | 王保德 |
31 | 1047 | 林春溥 |
32 | 1046 | 班大為(D.W.Pankenier) |
33 | 1045 | 倪德衛(D.S.Nivison)、夏含夷、周法高、趙光賢 |
34 | 1044 | 李丕基 |
35 | 1041 | 吉德煒(Keightley) |
36 | 1040 | 倪德衛、周文康 |
37 | 1039 | 何幼琦 |
38 | 1035 | 蕭子顯 |
39 | 1030 | 丁山、方善柱、周流溪 |
40 | 1029 | 黃寶權 |
41 | 1027 | 梁啟超、雷海宗、莫非斯、陳夢家、高本漢、屈萬里、何炳棣 |
42 | 1026 | 勞干 |
43 | 1024 | 平勢隆郎 |
44 | 1018 | 周法高 |
我們對此進行了全面考察。上表各家之說,大體可分為如下幾類:
依據《竹書紀年》中王年記載及《史記·魯世家》中之魯公紀年以推算者。
《竹書紀年》晚出伐紂之後千年,當時出土、整理的情況如今也難知其詳,乾脆不信,也不算毫無道理。誠如吉德煒所說:
首先,不能斷定257年的記載是《竹書紀年》的原始記錄,還是後人的注釋。第二,我們不能斷定這條資料是否流傳準確。第三,我們不能肯定257年是到幽王元年,還是到幽王末年。……第四(也是最重要的),我們無法證明《紀年》的作者(們)見過據精確的西周記載中推衍出來的年表。[4]
但有些學者又很希望所定伐紂之年能夠與這些王年記載相合,遂有不同釋義以及懷疑文字有誤而作改動之論。不過這種改動的根據也大成問題。至於魯公紀年,本身就有調節的餘地。
考慮到《武成》曆日、月相及歷譜者。
《武成》篇之伐紂曆日記載,因其中甲子日克商之說得到利簋銘文證實,可信度較大。劉歆等古代學者解決伐紂之年的主要方法,就是從排算曆譜入手。不過由於古代曆法不夠精密,排算結果當然未盡可信。
現代學者則在《武成》及《世俘》中月相術語的理解上出現了巨大分歧,「四分」、「兩分」等說聚訟不已。以此解讀《武成》、《世俘》,自然言人人殊,難以取得確切結果。況且僅靠推排歷譜本來就難以確定伐紂之年。
利用天象以推算伐紂之年者。
前賢研究中已有多次此種嘗試,但因未能對所有有關的天象記載進行全面考察及甄別(在計算機尚未發展、普及如今日時,此種考察及甄別實際上幾乎無法進行),故常見各執一端之情形。
首先,能夠回推計算的天象必為周期天象,而周期天象必然會有多重解,比如「歲在鶉火」每12年就會出現一次,而「日在析木之津」則每年都會出現一次,等等。在計算機尚未發展、普及的年代,學者們通常只能對某種天象求取某一次或若干次特定的解,而無法對所有有關天象進行長時段的(比如說100年)、全面的回推、排比和篩選──理論上雖然可能知道如此做的必要,但實際上是人力不可能勝任的。因此前賢多在通過其他手段獲得一個假設的伐紂之年後,再用某種天象記錄來作為旁證,而由於天象的周期性,這樣的旁證很容易獲得。這就是為什麼同一個天象會被不同的學者用來支持不同的伐紂之年。
其次,前賢普遍將目光集中在「歲在鶉火」、「五星聚」、彗星出現等引人注目的天象上,結果反而忽略了對定年特別有用的天象。
再次,沒有計算機的幫助,沒有先進的現代天象演示軟體,某些天象的特殊性很難被明確揭示出來。
三、處理天象記載之基本原則
本文將全面考察與武王伐紂有關的天象記錄,再採用國際天文學界最先進的長時段星曆表資料庫及計算軟體,逐一對這些天象記錄進行回推檢驗,然後決定對這些天象的取捨。為此先要確定處理天象記載的兩條基本原則。
一、假定干支紀日從商、周時代直至今日始終連續,且無錯亂。
二、我們的任務,是運用現代天文學方法,對所有武王伐紂時的天象記載進行全面計算檢驗,從而:
甲、判斷可能的天象:在前後約百餘年間(各家伐紂之年所分布的極限範圍)的時段內,這些天象記載中哪些確實可能發生?
乙、判斷可用天象:在上述時段內可能發生的天象中,哪些可以用來確定伐紂之年?
丙、定年:利用可用的天象,篩選出可信的伐紂之年。
下文所述16項天象記載中,除第一項可認為是伐紂當時留下的記載之外,其餘皆為後世所傳。雖有個別學者曾懷疑某些記載系後人偽作,但並無足夠的證據。而天文學的計算檢驗能夠辨別這些天象記載之真偽。
四、關於回推計算及演示天象所使用之天文學軟體
在對上述天象進行檢驗計算,以及此後的回推、篩選計算中,行星、月球歷表為必需之物,1963年斯塔曼(Stahlman)曾用分析方法算出太陽和行星公元前2000年~公元2000年間的位置表,以供天文史研究之用。但該表精度不甚高,而且使用不便,所以有的學者乾脆自己用天體力學方法回推,並且都號稱自己的方法最精確。由於他們的源程序通常都秘不示人,其他人無從比較其優劣。
而在美國,著名的噴氣推進實驗室(JPL)之斯坦迪士(Standnish)等人,長期致力於行星和月球曆表的研究工作,他們用數值積分方法,結合最新的理論模型和觀測結果,研製出了與各個時期的科學水平相適應的系列星曆表,並無償提供給全世界學者使用(目前DE系列的星曆表是國際天文學界使用最多的星曆表)。八十年代他們製作了長時間跨度的行星曆表DE102 ,在國際上得到廣泛使用──但不知何故,國內天文史專家不用。最近,斯坦迪士等人又研製了時間跨度更長的行星曆表 DE404(公元前3000年~公元3000年),它不但吸收了雷達、射電、VLBI(甚長基線干涉)、宇宙飛船、激光測月等等高新技術所獲得的最新觀測數據,而且在力學模型上有所改進,保證了積分初始值的精確性和理論的先進性。並且在積分過程中,不但與歷史上的觀測記錄進行了比較,而且同時對比了純粹用分析方法所的結果。這樣就進一步保證了星曆表的穩定性和可靠性。[5]
經我們與斯坦迪士本人聯繫,他將全套DE404軟體無償提供給我們使用。這也可以看作國際天文學界對我們研究工作的支持。
另一個比較重要的軟體是Skymap3.2,這是一個非常先進的天象演示軟體,能夠在給定觀測時間、觀測地點之經緯度後,立即演示出此時此地的實際星空,包括恆星、太陽、月亮、各行星、彗星乃至河外星雲等幾乎所有天體的精確位置。我們用DE404檢驗了該軟體的精度,發現在前推3000餘年時,其誤差仍僅在角秒量級,這對本專題的研究來說已經綽綽有餘。[6]
五、史籍中伐紂天象之記載及考察
史籍中武王伐紂有關天象及日期記載,共有如下16項,我們逐條討論∶
1、利簋銘文∶
武王征商,佳甲子朝,歲鼎克昏,夙有商。
可信。指明克商之朝為甲子,其時(例如此日凌晨)在牧野見到「歲鼎」──即木星上中天。[7] 因屬必然會發生之的天象,無需檢驗。克商之日的天象中,上述兩點都應被滿足。
2、《漢書·律曆志下》引《尚書·周書·武成》∶
惟一月壬辰,旁死霸,若翌日癸巳,武王乃朝步自周,於徵伐紂。
粵若來三(當作二)月,既死霸,粵五日甲子,咸劉商王紂。
惟四月既旁生霸,粵六日庚戌,武王燎於周廟。翌日辛亥,祀於天位。粵五日乙卯,乃以庶國祀馘於周廟。
3、 《逸周書卷四·世俘解第四十》∶
惟一月丙午旁生魄(一說應作「壬辰旁死魄」,依據2,下同),若翼日丁未(一說應作「癸巳」),王乃步自於周,征伐商王紂。越若來二月既死魄,越五日甲子朝,至,接於商。則咸劉商王紂。
可信。曆日,無需檢驗,重現的克商日程,應滿足其中的干支、月相及曆日。關於此兩條記載中月相術語之解讀,採用李學勤先生最新研究成果:依文義只能取定點說。[8]
前人常認為《武成》「惟一月壬辰,旁死霸,若翌日癸巳,武王乃朝步自周,於徵伐紂」,以及《世俘》「惟一月丙午旁生魄,若翼日丁未,王乃步自於周,征伐商王紂」兩條記載矛盾,一直是據《武成》以改《世俘》,而未見為這樣改動提供足夠的根據。
根據我們的研究,從壬辰到丙午正好半個朔望月,這兩條記載的月相和曆日干支是完全自洽的,我們可以給出一個新的解釋:將《武成》「武王乃朝步自周」釋為「武王自周地出發」(注意:周師已經先期出發),將《世俘》「王乃步自於周」釋為「武王從周地來到軍中」。武王於一月壬辰旁死魄之次日從周地出發,至一月丙午旁生魄的次日與大部隊會合。這樣的解釋合情合理,又不必改動文獻,就可使《武成》、《世俘》兩者同時暢然可通,應該是更可取的。
4、《國語·周語下》伶州鳩對周景王∶
昔武王伐殷,歲在鶉火,月在天駟,日在析木之津,辰在斗柄,星在天黿,星與日辰之位皆在北維。 此條特別重要,我們已在另文中作了詳細考證,[1] 此處僅述其結論:
這一組天象實際上是按照伐紂戰役進程中真實天象發生的先後順序來記載的,可以說是武王伐紂時留下的天象實錄。
「歲在鶉火」歷來極受各家注意,但這條記錄的可靠性實際上大成問題。我們用DE404對《左傳》、《國語》中有明確年代的歲星天象記載共9項進行回推計算,發現竟無一吻合!這是無可置疑的事實,而其原因,則尚待解釋。[9] 但至少已經可以看出,用「歲在鶉火」作為確定伐紂之年的依據,是不可靠的。所以在下面的工作中,我們先不使用「歲在鶉火」──但考慮到伶州鳩所述天象的特殊性,不妨用作為輔助性的參證。
「日在析木之津」表示太陽黃經當時在223°~249°之間。
「月在天駟」,「天駟」,星名,可指中國古代的「天駟」星官,由包括天蠍座π星(Scoπ,正是二十八宿中房宿的距星)在內的四顆黃經幾乎完全相等、與黃道成垂直排列的恆星組成,古人將之比附駕車之四匹馬。
「辰在斗柄」:指日、月在南斗(斗宿)合朔。
「星在天黿」:意為「水星在玄枵之次」。
「星與辰之位皆在北維」:當太陽和水星到達玄枵之次時,它們就是在女、虛、危諸宿間,這些宿皆屬北方七宿,此即「北維」之意。
5、《淮南子·兵略訓》∶
武王伐紂,東面而迎歲,……,彗星出而授殷人其柄。
我們最近的研究已經證明:彗星天象是無法用於確定武王伐紂之年的。[10]
關於東面而迎歲,須稍作辨析:木星總是從東面升起,一年中許多日子皆可見到它東升。關鍵在「迎」字──迎是一個動作。武王的軍隊從周地出發,基本上是向正東方向行進,只有他們在清晨進軍路上恰好見到木星出現在東方(這就不是經常可見的了),這才能稱為「東面而迎歲」,也才值得專門記錄下來,流傳後世。
6、《荀子·儒效》∶
武王之誅紂也,行之日以兵忌,東面而迎太歲,……。
太歲是人為定義的假想天體,勻速繞周天運行,方向與歲星相反。殷末周初是否已有此種假想天體之定義,大可懷疑。故本條僅可作定年時輔助參考之用。
7 、《今本竹書紀年》卷下∶
(文王時)孟春六旬,五緯聚房。
8、《新論》(嚴可均輯本)∶
甲子,日月若合璧,五星若連珠,昧爽,武王朝至於商郊牧野,從天以討紂,故兵不血刃而定天下。
9、《太平御覽》引《春秋緯·元命苞》∶
殷紂之時,五星聚於房。
10、《今本竹書紀年》卷上:
(帝辛)三十二年,五星聚於房。有赤烏集於周社。……(帝辛)三十三年,王錫命西伯,得專征伐。
「五緯聚房」是否能在本文所考慮的時間段內出現,需要檢驗。
房宿的距星(巧得很,正是天駟!)在我們所考慮的時間段中,黃經(因歲差而有微小移動)在199.63°~201.03°之間,房宿本身的跨度又非常小(不足5°!)。我們用DE404計算該時間段中的所有五星聚,發現只有一次可以非常勉強地謂之「聚於房」(公元前1019年8月29日~9月25日,五星先後出現於角、亢、氐、房、心、尾等六宿)。
此外,五星聚還有兩個問題:一是定義問題,五大行星究竟要聚在多小的範圍中才算是「五星聚」?現今找到的古籍中的定義都是伐紂千年以後的,我們不知道武王伐紂時代天學家是用什麼定義----如果他們真的記載過「五緯聚房」的話。其二,從後世史籍所見此類天象與人間事變的對應來看,前後出入兩三年乃至五六年都可。也就是說,只要在伐紂之前或之後三、五年內出現「五緯聚房」,武王伐紂都可被作為它的「事應」。考慮到這一層,五星聚對確定伐紂之年的權重就非常之小了。故在後面的工作中我們不使用「五緯聚房」。
11、《逸周書·小開解》∶
維三十有五祀,(文) 王念曰∶多□,正月丙子拜望,食無時。
本條中「維三十有五祀王念曰」,有謂「三」字為「王」字之者;有謂「王念曰」之王為文王或武王者(理解為文王較可從);且「食無時」是否能解釋為月蝕,大有疑問。更合理的解釋應是「未按時進食」。故本條難以用來定年。
12、《舊唐書·禮儀志一》長孫無忌等奏議引《六韜》曰
武王伐紂,雪深丈余。五車二馬,行無轍跡,詣營求謁,武王怪而問焉,太公對曰:此必五方之神,來受事耳。遂以其名召入,各以其職命焉。既而克殷,風調雨順。
13、《周書·劉璠傳》載劉《雪賦》:
庚辰有七尺之厚,甲子有一丈之深。
有助於表明武王克商時在冬季。這一點實際上「日在析木之津」一致。
14、《屍子》卷下:
武王伐紂,魚辛諫曰:歲在北方不北征。武王不從。
「歲在北方」含義不明,更何況武王克商無論如何不是「北伐」而是東征。
15、《周書·泰誓》序:
惟十有一年武王伐殷,一月戊午師渡孟津,作《泰誓》三篇。
16、《史記·周本紀》:
十一年十二月戊午,師畢渡孟津,……武王乃作《泰誓》,……。
提供了周師渡過孟津的日干支。
六、武王伐紂日程表需要滿足的七項條件
根據上面對史籍中伐紂天象記錄的逐項討論,我們可以明確知道,僅僅從天文學計算出發,重建的武王伐紂日程表應該同時滿足如下七項條件:
1、克商之日的日干支為甲子。──據利簋銘文
2、克商之日的清晨應有歲星當頭的天象。──據利簋銘文
3、周師出發時應能在當地東方見到歲星。──據《淮南子·兵略訓》及《荀子·儒效》
4、在周師出發前後、應有「月在天駟」和「日在析木之津」的天象(對「月在天駟」的定義見上文的討論)。──據《國語》伶州鳩對周景王所述伐紂天象及《三統曆·世經》中的有關討論
5、從周師出發到克商之間應有一段日子,這段日子的長度應使得周師從周地出發行進至牧野有合乎常理的時間。──據《武成》與《世俘》所記曆日及《三統曆·世經》中的有關討論
6、在周師出發後、甲子日克商前,應有兩次朔發生,第一次日干支為辛卯或壬辰;第二次則約在克商前五日,日干支為庚申或辛酉(考慮周初對朔的確定有誤差)。──據《武成》與《世俘》所記曆日
7、在武王伐紂的過程中,應能見到「星在天黿」的天象。──據《國語》伶州鳩對周景王所述伐紂天象
七、推算篩選伐紂日程之過程及結果
★ 第一步:
先從「月在天駟」和「日在析木之津」入手:設定:
(1)太陽黃經在215°~255°範圍內(比析木之津略寬)
(2)月球黃經在天駟四星(該四星黃經在公元前1050年左右都在200°~201°之間)前後±15°之間(明顯比「月在天駟」寬泛)
(3)月球黃緯不限 [11]
計算本文所考慮的時間段內,所有滿足「日在析木之津,月在天駟」的日期(其中有一年兩個的情況)。對有連續二、三日滿足「日在析木之津,月在天駟」的情況,較靠近取其中月亮近天駟之日(所有位置都指當天世界時0時的位置,具體討論時,月黃經需增加一個與時差改正相應的量,約3. 5°左右)。結果共有145個。這145個日子附近,皆有可能是周師出發的時間。
★ 第二步:
尋找「日在析木之津,月在天駟」日期之後日干支為甲子的日期。要求「日在析木之津,月在天駟」之日和甲子日之間相隔合理的天數。然後計算這些甲子日的月齡──距離前一個定朔的日序,然後根據《武成》推算既死魄的日序(在此過程中,兩個「師初發」日期有時只對應一個合適的甲子日)。
從對月相名詞最自然的理解出發,首先可以認定:初三至十六不可能為既死魄定點日,故按《武成》曆日,克商之甲子日不會在初七到二十之間。刪除不合部分(甲子日重複的日期取其中適當的一組)。此時可選的日子已經減少為59個。
★ 第三步:
利用兩種歲星天象進行篩選。一、「日在析木之津,月在天駟」之日及此後若干日能否見到「東面而迎歲」;二、甲子日歲星上中天的情況:是否在白天,是否在日出前。這樣即可作進一步篩選:刪除:(1)在「師初發」前後不能在早晨東方天空見到歲星的日子;(2)「克商」之甲子日,歲星上中天時間在日出之後(看不見)和半夜之前(屬前一天)的日子,結果還剩18項。
★ 第4步:
天象綜合檢驗:考察月與天駟四星的位置關係、「月在天駟」發生的時間、「歲鼎」時歲星的地平高度、其它亮天體的情況,等等,可得表2:
表2 天象綜合檢驗結果
序號 | 事件 | 年 | 月 | 日 | 克商曆日 | 檢驗結果 |
1 | 師初發 | -1091 | 12 | 13 | 勉強可取 | |
克商 | -1090 | 1 | 16 | 初一 | ||
2 | 師初發 | -1081 | 11 | 24 | 勉強可取 | |
克商 | -1080 | 1 | 24 | 二十九 | ||
3 | 師初發 | -1080 | 12 | 10 | 勉強可取 | |
克商 | -1079 | 1 | 18 | 初五 | ||
4 | 師初發 | -1056 | 11 | 18 | 勉強可取 | |
克商 | -1055 | 1 | 12 | 二十四 | ||
5 | 師初發 | -1045 | 11 | 16 | 勉強可取 | |
克商 | -1044 | 1 | 15 | 二十八 | ||
6 | 師初發 | -1044 | 12 | 3 | 可取 | |
克商 | -1043 | 1 | 9 | 初四 | ||
7 | 師初發 | -1020 | 12 | 8 | 可取 | |
克商 | -1019 | 3 | 4 | 二十四 |
值得特彆強調的是,到此時為止,可選的日期只剩下了七組,真正可取的只剩下了兩組,而我們還未對月相作過任何定義!我們只是排除了既死魄定點在初三至十六的可能性──而這一點是月相爭議各家都無異議的。
★ 第5步:
現在我們可以針對錶2的結果,很方便地討論可採取的月相定義。
表2的七組日期中,甲子日的曆日可分為三種情況:
甲:公元前1056年和1020年,甲子日為二十四日。對應的既死魄定點日在二十日;
乙:公元前1045年、1081年和1091年,甲子日分別為二十八、二十九和初一。既死魄可定在二十五日,允許前後移一日;
丙:公元前1044年和1080年,甲子日為初四和初五。既死魄定在晦日或朔日,即不見月之日。
在周師出發後、甲子日克商前,應有兩次朔發生,第一次日干支為辛卯或壬辰;第二次則約在克商前五日左右,日干支為庚申或辛酉(考慮周初對朔的確定有一日之誤差)。因此出師之後十餘日即遇日干支為甲子,則該日即應排除,因為在此十餘日內不可能有《武成》所記載的兩次朔發生;若考慮下一個甲子,則從出師至克商長達七十餘日,又與《武成》所載不合。[12] 又,出師之後的兩次朔,其日干支不是《武成》所要求的辛卯或壬辰及庚申或辛酉,則該日亦應排除,因為顯然與《武成》曆日不合。
以表2中7組日期,按《武成》曆日進行具體的日程編排,立刻可以發現:
第1組:「一月壬辰旁死霸」與「一月戊午師渡孟津」分在兩個月里,甲子為三月朔日。不可取。
第2組與第4、第5組:「一月壬辰旁死霸」與「一月戊午師渡孟津」分在兩個月里。「師初發」與「武王乃朝步自周」相隔時間太長,不合情理。
第7組:「一月壬辰旁死霸」與「一月戊午師渡孟津」分在兩個月里。從「師初發」到「克商」長達87天,從「師初發」與「武王乃朝步自周」相隔時間也太長,不合情理。
只有第3、第6兩組才能排列出合理的伐紂日程。從而證明:
《武成》月相名詞「既死霸」只有解釋成為晦或朔時不見月之日才合理。
而就這兩組日期來說,公元前1080年1月18日甲子日「歲鼎」時間偏早。只有第6組:公元前1045年12月3日(或4日及附近日子)武王出師,公元前1044年1月9日甲子日克商──此日「歲鼎」時間為4:55,緊扣《利簋》銘文「甲子朝歲鼎」的記載,成為唯一可取的日期。
八、對篩選結果的進一步驗算
試將上述這組日子輸入SkyMap3.2進行演示,發現:
公元前1045年12月3日清晨5點30分,從西安向正東方天空觀測,可以見到一鉤殘月恰位於天駟正上方,這是非常理想的「月在天駟」天象。特別值得注意的是,這一天象只能持續約3個多小時。在凌晨3點時,月與天駟尚未升上地平線,因而不可見,而到6點時天已亮,此後群星自然又不可見。
《國語》中伶州鳩對周景王論此事云:「月之所在,辰馬農祥也。我太祖后稷之所經緯也,王欲合是五位三所而用之。」天駟即房星,是「農祥」,而后稷是周人的祖先,則天駟此星對周人來說應該有些不同尋常。[13]我們甚至還可以猜想:周人在這天清晨,面對此罕見的「月在天駟」天象,可能還舉行了某種不常舉行的儀式,是以故老相傳,而有此「月在天駟」之記載.
再來對「東面迎歲」、「歲鼎」進行檢驗:
前述七項條件中,第3項要求周師出發時應能在當地東方見到歲星;第2項要求在克商的甲子日清晨可以見到歲星當頭的天象。要檢驗這兩項,使用SkyMap3.2極為方便,下面討論其結果:
公元前1045年12月3日,在西安當地時間清晨5點30分,向正東方向,可見木星此時正出現於東方非常顯著的位置,地平高度達50餘度,非常有利於觀測。我們定周師在12月4日出發,實際上周師在此前或此後若干天內出發,每天清晨都可以在東方天空見到歲星。
公元前1044年1月9日,也就是甲子克商之日,在牧野當地時間清晨4點55分時,向正東方向見到木星上中天,地平高度約60°,正是不折不扣的歲星當頭天象,即「歲鼎」。
再用DE404,對水星及有關天象進行計算:
「天黿」即玄枵之次,在武王伐紂時代位置約在黃經278°~306°之間。我們的計算表明:
公元前1045年從12月21日起,水星進入玄枵之次,此時它與太陽距角達到18°以上。按照中國古代的經驗公式,上述距角超過17°時,水星即可被觀測到。事實也是如此。此時水星作為「在天黿」之昏星,至少有5天可以在日落後被觀測到。更奇妙的是,在甲子克商之後,從公元前1044年2月4日起,直至24日,水星再次處於玄枵之次,而且其距角達到19.99°~27.43°之多,幾乎達到其大距之極限。此時水星成為「在天黿」之晨星,更容易觀測,有20天可以在日出前被觀測到。
至此我們實際上已經得到了滿足前述全部七項條件的武王伐紂日程表。然而在給出這一日程表之前,我們還要再次考察「歲在鶉火」問題。
伶州鳩對周景王所說的伐紂天象中,實際上包括四條獨立的信息:歲在鶉火、月在天駟、日在析木之津、星在天黿。後三條經過上面的推算及多重驗證,表明它們皆能與《武成》、《世俘》、利簋銘文等相合,可見伶州鳩之說相當可信。那麼「歲在鶉火」一條何以就偏偏不可信?
先讓我們考察當時歲星的位置:從周師出發到甲子克商,歲星黃經約在168°~170°之間,這是在那個時代的壽星之次(這當然只是表示回推計算的結果,那時未必有十二次的概念),確實與「歲在鶉火」不合。
然而這個問題並非無法解決!「武王伐紂」是一個時間段的概念。它應有廣、狹二義。就狹義言之,可以認為是從周師出發到甲子克商;若取廣義言之,則可視為一個長達兩年多的過程。例如:
九年,武王上祭於畢,東觀兵,至於盟津。……是時,諸侯不期而會盟津者八百諸侯,諸侯皆曰:紂可伐矣!武王曰:女未知天命,未可也,乃還師歸。居二年,聞紂昏亂暴虐滋甚,……。(《史記·周本紀》)
在牧野之戰的前二年,武王已經進行了一次軍事示威,表明了反叛的姿態,這可以視為伶州鳩所說的「武王伐殷」的開始。八百諸侯會孟津的這一年,按照我們推算的伐紂年代,應該是公元前1047年。用DE404計算的結果,這一年中歲星的運行範圍在黃經68°~107°之間,下半年的大部分時間它都在鶉火之次!
因此我們完全有理由認為,伶州鳩所說的「昔武王伐殷歲在鶉火」也是正確的。
九、最終結論
至此,我們已經完成了對武王伐紂年份的確定,並且重建了伐紂日程表:
表3:武王伐紂天象與歷史事件一覽表
公曆日期 (公元前) | 干支 | 天象 | 天象記載之出處 | 事件 | 事件記載 之出處 |
1047 | 歲在鶉火(持續了約半年) | 國語 | 孟津之會,伐紂之始 | 史記周本紀 | |
1045.12.3. | 丁亥 | 月在天駟 日在析木之津 | 國語 | ||
1045.12.4. | 戊子 | 東面而迎歲(此後多日皆如此) | 淮南子 | 周師出發 | 三統曆世經 |
1045.12.7. | 辛卯 | 朔 | 武成 | ||
1045.12.9. | 癸巳 | 武王乃朝步自周 | 武成 | ||
1045.12.21. | 乙巳 | 星在天黿(此後可見5日) | 國語 | ||
1045.12.22. | 丙午 | 望(旁生魄) | 世俘 | ||
1044.1.3. | 戊午 | 師渡孟津 | 史記周本紀 | ||
1044.1.5. | 庚申 | 既死霸 | 武成 | ||
1044.1.6. | 辛酉 | 朔 | |||
1044.1.9. | 甲子 | 歲鼎 | 利簋銘文 | 牧野之戰,克商 | 利簋銘文 武成 世俘 |
1044.2.4. | 庚寅 | 朔。星在天黿(此後可見20日) | 國語 | ||
1044.2.19. | 乙巳 | 望(既旁生霸) | 武成 | ||
1044.2.24. | 庚戌 | 武王燎於周廟 | 武成 | ||
1044.3.1. | 乙卯 | 乃以庶國祀馘於周廟 | 武成 |
在經過非常複雜、也可以說是非常苛刻的驗算和篩選之後,而且是在完全不考慮考古學、甲骨學、碳14測年等方面結果的條件之下,發現《武成》、《世俘》、利簋銘文、《國語》伶州鳩對周景王等等文獻竟然真能相互對應,而且能夠從中建立起唯一的一個伐紂日程表(這是嚴格篩選出來的最優結果),唯一合理的解釋只能是:古人流傳下來的這一系列天象記載確實是真實的!
注 釋
[1] 另一個即將發表的方案是:江曉原、鈕衛星:《國語》所載武王伐紂天象及其年代與日程,《自然科學史研究》18卷4期(1999)。
[2] 關於這一問題可參見江曉原:《天學真原》,遼寧教育出版社,1991,第三章。
[3] 北京師範大學國學研究所編:《武王克商之年研究》,北京師範大學出版社,1997。
[4] 吉德煒:晚商的絕對年代,《武王克商之年研究》,頁507~512。
[5] DE404精度極高,其誤差估計:行星每世紀在百分之一角秒量級,月球在一角秒量級。這樣的誤差對於本課題所涉及的計算來說,已經完全不必考慮。
[6] DE404軟體給出的結果是曆書時,考慮到地球自轉速度的長期變化,為在準確時間上重現歷史天象還需要做一個修正,在距今3000年時,這一修正的結果是一個將近8小時的量。我們給出的結果已經考慮了這項修正。SkyMap3.2軟體和後面用到的Fred Espenak的交蝕表則在其給出的結果中都已經考慮了這項修正。
[7] 「上中天」指天體運行到當地子午線上,或者說在正南方達到最大地平高度。太陽上中天時就是當地正午。關於利簋銘文,這裡必須提到李學勤先生在1998年12月20日撰寫的一篇文章《利簋銘與歲星》(提要),指出張政烺在1978年第1期《考古》上發表的《利簋釋文》一文,最先提出利簋銘文中的「歲」應釋為歲星, 李先生認為認為:「張政烺先生首倡的這一說法,能照顧銘文全體,又可與文獻參照,應該是最可取的。」
[8] 李學勤:《尚書》與《逸周書》中的月相,《中國文化研究》98年2期(夏季號)。
[9] 前賢已經注意到這個問題,如新城新藏就試圖對此事實給出一種解釋,他從《左傳》、《國語》中若干次有關歲星記載的年代向後推算,假定人們是認定歲星正好12年一周天,則可推算出一個年份,即公元前376年,認為這是《左傳》、《國語》中有關歲星天象的起算年代,見新城新藏:《東洋天文學史研究》,中華學藝社,1933,頁391~392。但其說並不能解釋《左傳》、《國語》中所有有明確年代的歲星天象記載,況且公元前376年這一起算點從何而來也難以說明。
[10] 關於彗星記錄不可用於確定武王伐紂之年的問題,已經由盧仙文博士作了全面研究。他的博士論文《中國古代彗星記錄研究》(博士導師:江曉原),於1998年7月以優異成績在中國科學院上海天文台通過答辯。
[11] 以天駟四星中的天蠍座π星為例:該星在公元前1050年左右時,黃經為200.74°,黃緯則為-5.09°;而月球運動偏離黃道的極限約為5.5°。故如取月黃緯小於4.5°,則有1°之變動範圍,而天蠍座π星恰在其中位處。今對月球黃緯不加限制,條件極寬,意在不遺漏任何可能的日子。
[12] 自周地至牧野約900里,史籍中從無周師在途中遭到抵抗的記載,故設伐紂之師日行30里,自以一個月左右的時間為宜。這種「反叛中央」的戰役,理應速戰速決,而絕不能遷延緩進──萬一「勤王之師」來救,行動就可能失敗。
[13] 《乙巳占》卷二中,論月犯房宿諸星時,皆為凶象,唯有天駟例外:「月行天駟中,經歲安寧,五穀熟」。即使此為後出之占辭,仍可見天駟為農事之吉星。