A. 今年是閏七月,請問大家閏月的來歷
又逢閏年。按照中國傳統歷法,到了閏年,就在閏月加上一日;有時候要加上一個月,這樣一來,一年就有十三個月,其中一個月的名稱是重復的,用閏字來區別,例如,二月和閏二月、八月和閏八月,等等。不管是加一日、還是加一月,都是用加法,即通過「加差法」來做時差調整。然而,您是否想過,「閏」的本意是做減法、是減差法而不是加差法?是否想過,大約兩千年來,中國傳統歷法上有個調整時差的「千年之誤」:明明用加差法,卻叫作減差法的「閏」?
單從字眼角度看,這個名不副實的「閏」字用法是個「錯誤」;然而,從歷史角度看,這個「千年之誤」的流傳是個很幸運的事:它能幫助我們看到古代科技和文化的真相,從而能幫助我們更好地理解傳統文化和以求真務實的精神來做好文化發展事業。本文試圖說明「閏」字的本意,順藤摸瓜地考察一些古代文化的真相和來龍去脈。
【考察中國古代歷法的關鍵:閏月】
在考察中國遠古時代的歷法紀年和歷史文化的時候,不少是用一年365天和閏月加差法。這個方法有誤。中國遠古歷法用的是一歲366天和用減差法來調整時差:
《尚書·堯典》:「期三百有六旬有六日,以閏月定四時成歲。」
《史記·歷書》:「蓋黃帝考定星歷,建立五行,起消息,正閏余。」
《漢書音義》:「以歲之餘為閏,故曰閏余。」
「余」是多出來的意思;「閏余」是減去多餘的意思;「正閏余」則是用減差法調整時差。這些記錄說明,在堯典記載的時代,
*中國遠古歷法以 366天為一歲,用閏月確定四時和確定歲的終始。
*已經有日、月、旬和時的時間單位,具備了陰陽歷的技術。
*觀察到了五大行星和日月的運動規律,用閏月減差法來調整時差。
*歷法實施成為重要大事,主要內容之一是「以閏月定四時成歲」和「正閏余」,即確定閏月位置和如何減去多餘出來的天數(不是加上缺少的天數),由此來確定年歲的終結和開始。
為了簡便,本文按照堯典記載、姑且把這種歷法稱為「堯典歷法」。堯典歷法也有其他文字記載證明。例如,李圃的《甲骨文選讀》考證說,拓片《前四.一七.三》和《前七.五二》記錄有「十三月」。如此,一歲366天的歷法計算是:
30天 × 12個月 = 360天;
加上「以閏月定四時」的「閏月」6天,360天 + 6天 = 366天。
也就是《尚書》說的「期三百有六旬有六日」。到了閏月,根據時差積累做「正閏余」,減去多出來的一天。如果用一年365天和加差法,那麼,歷史記載應該是「期三百有六旬有五日」和「正加差」,而不是「期三百有六旬有六日」和「正閏余」。不管是用日象(陽歷)方法還是用月象(陰歷)方法,都是366天,不同的是周期起始,即如何「以閏月定四時成歲」。這是考察中國古代歷法變遷的關鍵,也是打開遠古歷史文化大門的鑰匙。
確定閏月,跟「日永」、「日短」和「日中」的選擇有關。如果選擇「日永」(夏至)作「正閏余」,那麼,「以閏月定四時成歲」的一年開始就是夏天。例如,商朝有建未之月(鄭慧生《殷正建未說》,《史學月刊》1984.1),一年之始在夏歷六月。這種方法,至今仍為中國南方少數民族的歷法所使用。「殷正建未」的建正排列是(數字為月份):
…地支…夏歷…殷歷…周歷
…子……11……06……01
…丑……12……07……02
…寅……01……08……03
…卯……02……09……04
…辰……03……10……05
…巳……04……11……06
…午……05……12……07
(閏)…………13……………「殷正建未」的閏月位置
…未……06……01……08……「殷正建未」的正月位置
…申……07……02……09
…酉……08……03……10
…戌……09……04……11
…亥……10……05……12
如果選擇「日短」(冬至)作「正閏余」,那麼,「以閏月定四時成歲」的一年開始就是冬天。例如,商朝建丑,閏月在子丑之間,一年之始相當於夏歷12月或周歷二月,跟「建未」正好相差半年。商代建丑的建正排列是:
…地支…夏歷…商歷…周歷
…子……11……12……01
(閏)…………13……………建丑的閏月位置
…丑……12……01……02……建丑的正月位置
…寅……01……02……03
…卯……02……03……04
…辰……03……04……05
…巳……04……05……06
…午……05……06……07
…未……06……07……08
…申……07……08……09
…酉……08……09……10
…戌……09……10……11
…亥……10……11……12
建正不同,是閏月位置選擇不同的結果,「以閏月定四時成歲」決定建正和整個紀年記錄,決定全體人民如何按照時節變化做事,自然就是大事,有「敬授民時」的隆重儀式。而一年365天和在二月加差的歷法,跟「以閏月定四時成歲」無關;「閏月」位置固定,年終年始固定;有過節活動、卻沒有「敬授民時」的隆重儀式。這樣的歷法不是中國遠古歷法,或者說,用這樣的歷法考察中國遠古歷史文化,就往往可能陷入困境和發生誤解歧義。
【從《詩經·七月》看周代多軌制歷法】
漢代史籍有「正閏余」的清楚記載,說明夏商周和秦代的歷法很可能還在使用堯典歷法。這種歷法,在漢朝《太初歷》和《三統歷》以後就不見了。對考察秦漢以前的中國歷史文化來說,使用堯典歷法和多軌制歷法互為補充的方法更符合實際情況,也更符合歷史文字的記載。對此,《詩經·七月》里「某之日」記載的周代歷法提供了很好的說明:
「七月流火。九月授衣。一之日篳發。二之日栗烈。無衣無褐,何以卒歲。三之日於耜。四之日舉趾。……七月流火。九月授衣。春日載陽。……一之日於貉。取彼狐狸。二之日其同。……十月納禾稼。……二之日鑿冰沖沖。三之日納於凌陰。四之日其蚤。獻羔祭韭。……萬壽無疆。」
古代註解把「一之日」解釋成「十月之餘,十一月」,別的說明就沒有了。郭沫若先生把「某之日」解釋為「一來呢,二來呢」的文字排比。許多年來,一些學者不同意郭老的論點,也不同意古代註解。他們問道:如果「一之日」是十一月、「二之日」是十二月,那麼,「三之日」就應該是十三月、「四之日」就應該是十四月了,而歷法沒有十三月和十四月。於是,這些學者便將這些「某之日」解釋成陽歷十個月以後的年終「余日」,即每年365天,每月36天、十個月360天,加上「某之日」的年終余日,正好一年。一些報刊雜志把這個論證稱為古代歷史研究的重大突破。
這些解釋都太勉強,更說不上是重大突破。如果把「某之日」解釋成年終「余日」的話,那麼,所有的「某之日」活動就應該跟年終有關。然而,《七月》中每一個「之日」都有跟時令有關的事情要做,或者是農活,或者是服役,不是年終過節的「余日」。比如,「三之日於耜」和「四之日舉趾」是是春天農忙的事情,不是年終過節。象「春日載陽」和蚤事等描述,就更不是年終過節的情景了。
文學和民俗學專家孫作雲在他的著作《詩經與周代社會研究》(中華書局版)中說:「對《七月》篇能闡述得當,則可以為西周社會研究建立一塊基石。」該書對「某之日」的說明是:詩歌直接使用的月份是農歷,即「建寅」的舊歷或夏歷,而「某之日」是使用「建子」的陽歷,即王室和貴族使用的官歷或周歷。如此一來,「某之日」的意義就很清楚了:
…地支…周歷…農歷…詩歌所提到的百事(「*」為「某之日」的活動)
…子……01……11……打狐狸,為公子裘。*
…丑……02……12……打獵、習武,鑿冰。*
…寅……03……01……修犁杖,藏冰。*
…卯……04……02……春耕,到公田送飯,採桑。*
…辰……05……03……農業勞動,修理桑枝,養蠶。
…巳……06……04……農業勞動。
…午……07……05……農業勞動。
…未……08……06……農業勞動。
…申……09……07……農業勞動。
…酉……10……08……收割作薄、紡織染色、為公子裳。
…戌……11……09……築場圃。
…亥……12……10……割稻、交公糧、釀酒、修建等雜役。
從上表看出,「一之日」就是周歷一歲起始的一月,相當於農歷十一月,古代文獻解釋為「十月之餘,十一月」。「三之日」和「四之日」是周歷的三月和四月,相當於農歷一年之始的一月和二月,不是十三月和十四月。從文字方面說,「一之日」可以用現代漢語「(周歷)一月的日子」、「二之日」可以用「(周歷)二月的日子」來理解,等等。每年開始的時候,詩歌用周歷月份(某之日)來吟唱,其它時候用農歷月份來吟唱,自然就沒有「五之日」和「六之日」了。
與周歷三月相對,是農歷的一月和新的一年的開始,與干支的「寅」對應。這就是「建寅」。有些學者說「建寅」歷法不可信,也許是忘記了考察《詩經·七月》這首詩歌。
除了「建寅」,還有殷「建丑」、周「建子」和秦「建亥」,等等。這些是「以閏月定四時成歲」的繼承,不同的建正是閏月選擇不同的結果。
使用「以閏月定四時成歲」的歷法,閏月的選擇跟朝代中心的地理位置、陰陽五行和干支的推導有關,其中包括國色、國數和國德因素。周歷是全國使用的「公歷」,各諸侯和各地民族部落還有自己的地方歷法。這是春秋戰國時期多軌制歷法的一個重要因素。秦國的歷法記載足夠詳細,也許能提供更直接的線索來說明問題。史書記載,秦始皇登基的時候頒布了「建亥」的歷法:
周得火德,秦代周從所不勝。
方今水德之始。改年始,皆自十月朔。
衣服旌旗等,皆上黑。
數以六紀。
這些歷法因素之間的運作聯系可以為:
水德由七政和五行定位的水星沖火星而來,國德為水。
水的方位是北方,北方屬黑,故秦尚黑,國色為黑。
水為陰,北為陰,故在河洛中棄「一」取「六」,數以六紀,國數為六。
子亥水,六為陰,故在地支中棄「子」取「亥」,建正為亥。
在周的「公歷」中,「亥」對陰歷10月,故皆自十月朔。
這是用「日短」確定閏月的歷法,符合堯典歷法和《史記》中「考定星歷,建立五行,起消息,正閏余」的方法。如果不知道「建亥」跟國德、國色和國數的關系,那麼,用「建子」、「建寅」或其他諸侯的歷法考察秦國的紀年歷譜,就可能發生不合,甚至可能發生對秦朝建制的誤解。
《光明日報》(1999年5月21日)關於夏商周斷代工程金文歷譜研討會的報導說:「歲首建正不同,直接影響到具體某月干支的推算。過去,學界大多相信夏正建寅、殷正建丑、周正建子之說。但是以周正建子去推算西周銅器干支,往往有所不合。本次會上,負責『西周歷法與春秋歷法』的陳美東先生,作了題為《魯國歷譜與春秋歷法》的報告。他從分析《左傳》與《春秋》對同一事件的歷日記載的不同入手,歸納出了春秋時期歷法建正的具體狀況,由此而上推西周建正問題。其結論為:春秋諸國歷法中以建子者居多,建丑者次之,是否有建寅還有待進一步考查。如此說來,夏代歷法建寅、商代歷法建丑、周代歷法建子的三正之說,是斷不可信的。經過討論,周正建子與建丑游移說得到了大多數學者的認同。」
這樣的結論和認可,是對周秦歷史的誤解,為社會大眾提供的是誤解的歷史圖景,關鍵就在於忽略了「閏月」功能、沒有看到周代實行歷法多軌制的史實。
周代的多軌制歷法由來已久,因而,只用一個歷法(如周正建子或魯國歷法)推算,自然有所不合。《漢書》說:「歷數之起尚矣。傳述顓頊名南正重司天,火正黎司地。其後三苗亂德,二官咸廢,而閏余乖次,孟陬殄滅,攝提失方。」所謂「三苗」,是夏商周之前統治中原的民族(當今積聚西南的少數民族,亦有「九黎」)。「三苗」各有自己的歷法,多軌制的重要標志是「閏余乖次,孟陬殄滅,攝提失方」,其中「閏余乖次」(閏月亂套)是關鍵。夏商周三代先後把「三苗」逐步排出中原,「三苗」由統治民族變成了「南蠻」,卻給夏商周三代帶來了「閏余乖次」的多軌制歷法的現象。
春秋戰國時期,周室衰微,諸侯各行其是,其中包括歷法。秦簡(《睡虎地秦墓竹簡》)記載:「受衣者,夏衣以四月盡六月稟之,冬衣以九月盡十一月稟之。」這跟《詩經·七月》中的「九月授衣」的歷法記錄吻合,說明秦國使用的是周歷方法。楚國詩人屈原的《離騷》說:「攝提貞於孟陬兮,惟庚寅吾以降。」攝提是「攝提格」的簡稱,是「寅年」的別名。孟取:夏歷建寅,正月。這跟周歷方法一樣。秦楚歷法也叫「顓頊歷」(史稱黃帝時代顓頊創建新歷),漢代繼承,直到實行《太初歷》的時候才終止。
其他諸侯的歷法卻不一定如此。就魯國來說,孔子呼籲「行夏之時」(用周歷的建寅方法),至少說明當時有不同的歷法、魯國和諸侯不一定按照周歷行事,否則,孔子的主張就是多此一舉、無的放矢了。用魯國歷譜上推西周建正問題,並且用這個推導的結論去考察諸侯歷法和他們的銅器干支,當然有所不合。用同樣的推導方法考察以前的歷法年代,也會發生不合。用這種不合的現象作根據來說明「夏代歷法建寅、商代歷法建丑、周代歷法建子的三正之說,是斷不可信的」,也許是忽略了周朝歷法的多軌制,至少忽略了秦楚兩個大國的歷法。至於「周正建子與建丑游移說」,也許是沒有顧及到當時的歷法不是建正「游移」,而是頗有根據的閏月和「正閏余」。
《詩經·七月》的「某之日」記錄了周朝多軌制歷法。因此,在做周代和周代以前的歷法推導考察的時候,首先要確定使用的是哪個歷法和如何「以閏月定四時成歲」,否則,難免發生不合、甚至會得出夏建寅、商建丑和周建子是「斷不可信的」的錯誤結論,對當時的文化和事件來龍去脈也就可能發生誤解。
【繼承「千年之誤」】
秦朝的歷法,是中國歷史上最後一個「以閏月定四時成歲」的歷法,從漢朝初期開始,中國的歷法出現了大轉折,堯典歷法成了歷史。東周時期,地球公轉接近一年365.25天,跟一年366天相差半天之多,用「正閏余」方法的誤差,已經非常明顯,而且,多年的知識積累、科學技術發展和各諸侯的歷法變化也允許做全國性的歷法革新了。然而,那個時期,中國處於諸侯爭雄的分裂狀態,沒有條件做全國性的大幅度歷法革新。西漢初期,天下統一已定,歷法革新的條件完全具備了,漢武帝責成司馬遷等人編寫了《太初歷》,後來,劉歆又搞出了《三統歷》。
《太初歷》和《三統歷》的基本內容是:規定孟春正月為每年開始的第一個月,一年365.25天,一年有二十四個節氣,沒有中氣的月份用做閏月(中氣指的是二十四個節氣中數雙的十二個節氣)。如此,就有十二個數單(奇數)的節氣用來確定閏月的位置。這是後來「閏二」、「閏四」、「閏五」和「閏八」等十二個閏月的來歷,也是閏月位置選擇的遺風。
這次歷法革新的重要特點是:年歲合一,一年的整數天數是365天,不再是堯典歷法的366天;年歲之始固定下來,農歷建寅,陽歷建子,統一了全國歷法建正;閏月只用來作時差調整,「定四時成歲」的功能消逝了;閏月的時候,加差法代替了「正閏余」的減差法。
特別值得一提的是陰陽五行的功能變化。在堯典歷法中,陰陽五行是綱,也就是《史記》說的「蓋黃帝考定星歷,建立五行,起消息,正閏余」。做法是:首先要考察五大行星和日月的運轉位置。用《尚書》話來說,叫「七政」。這是決定「干」。根據北斗所指的方向,確定五行在地上的位置。這是決定「支」。根據干支的陰陽(雙為陰,單為陽;日短為陰,日永為陽)和五行的對應,確定年歲終始和閏月位置。用司馬遷的話說,是「起消息」(開始一個新的終始)和「正閏余」(確定閏月減差的位置)。可見,如果陰陽五行弄錯了,整部歷法就可能全錯了。
《太初歷》和《三統歷》以後,年歲周期起始相當固定,用數學計算就能確定閏月,用不著「考定星歷,建立五行」。張衡發明了渾天儀,七政和陰陽兩歷的關系一目瞭然。從此,陰陽五行基本上退出了歷法舞台。然而,陰陽五行的基本方法沒有退出歷史舞台,而是藉助醫學和占卜等流傳至今,例如相生相剋的「五運」。用「五運」考察漢代以前的歷法,有吻合,也有不吻合。例如,周朝得火德,按照五運的方法,周歷的建正是「建巳」,而不是「建子」;用七政火德對應,周歷落在「建子」。再比如,不管用五運或七政的方法,秦歷都落在「建亥」。這種吻合與不吻合,也許提示了陰陽五行從歷法功能變成了各門學說的來龍去脈。
在春秋戰國時代,已經出現了不同的陰陽五行學派。這說明,諸侯歷法已有變革,陰陽五行等歷法因素脫離歷法功能的過程早在《太初歷》之前就開始了。不同的學派反映了不同的變化。例如,《呂氏春秋》說:
「凡帝王者之將興也,天必先見祥乎下民。
「黃帝曰:土氣勝。土氣勝,故其色尚黃,其事則土。
「禹曰:木氣勝。木氣勝,故其色尚青,其事則木。
「湯曰:金氣勝。金氣勝,故其色尚白,其事則金。
「文王曰:火氣勝。火氣勝,故其色尚赤,其事則火。
「代火者必將水,天且先見水氣勝。土氣勝,故其色尚黑,其事則水。」
秦相呂不韋用五行運轉向秦始皇陳述天下大變的規律,說明了秦國以水為國德來取代周朝的必然。到了漢代,董仲舒用陰陽五行來說明「天不變,道亦不變」的道理,陰陽五行成了代表「天意」的經學。
漢史記載:漢武帝正歷的時候改變了漢朝初建的國色、國數和國德,宣布漢朝色尚黃、數用五、國德為土。不過,這些東西的主要作用已經不是歷法推算,而是從歷史那裡獲取政權的合法性和權威了。董仲舒的「三統論」說:
三統朝代:夏代 · 商代 · 周代
三統國色:黑色 · 白色 · 紅色
三統建正:建寅 · 建丑 · 建子
董仲舒用歷法因素來說明「天之道周而復始」,到了漢代,就要按照漢代的「統」來行事。這跟秦相呂不韋的用法一脈相承,國德、國色和國數被用來說明合法與權威,脫離了歷法。
唐朝以後,除了表示國號和政權的象徵以外,國德、國色和國數幾乎沒有更多的意義了。現在,中國還在使用傳統的陰歷和陽歷,然而,國德、國色和國數已經盪然無存,連表示國號和政權的意義都沒有了。
在堯典歷法時期,「以閏月定四時成歲」決定人們如何生存和國家如何運作,因而,掌管歷法的人的地位非常重要,幾乎是代表「天意」來作帝王的左右手,不但參與政治、軍事、經濟和文化等各個方面的戰略策劃,而且有權代表「天意」來否定帝王的重大決定。商周卜占之職能影響君王重大決定,是遠古歷法的遺風。漢代歷法革新以後,「以閏月定四時成歲」的功能停止了,掌管歷法的人的作用僅僅限於歷法。從此,歷法中的神秘色彩消逝、歷法成了更為獨立的科學技術,其遺風之職的地位也隨之逐步下降。
漢代歷法改革和統一了中國的歷法,是中國歷法科學史上的一個重要的里程碑。司馬遷等漢代科學家把「正閏余」改成加差法的時候,沒有改變「閏月」的「閏」字,時差調整名不副實地一直流傳下來。從1912年選用公歷到現在,也沒有為加差法正名。「一字之差,千年之誤」。今天,中國歷法明明用加差法調整時差,卻把它叫「閏」、稱「加」為「減」,以至於一年365天和加差法成了不少人考察中國遠古歷法的根據了。不過,如果司馬遷等人當年沒有保留「閏」字,那麼,今天要發現堯典歷法中「期三百有六旬有六日,以閏月定四時成歲」的實際,可能就要困難得多。為了後人能了解歷史記錄的真相,我們也許應該長久地繼承這個「千年之誤」,每次調整時差的時候就專門犯一次「錯誤」,把加差法叫作減差法的「閏」。
【本文引用的主要參考資料】:
《尚書》,《周易》,《春秋左傳集解》,《詩義會通》,《史記》、《漢書》;《關於甲骨文的基礎知識》(李學勤)。