浦江清文錄 · 屈原生年月日的推算問題

浦江清 《浦江清文錄》
《史記·屈原傳》沒有提供可以考索屈原生年的材料,《離騷》王逸注有屈原生於寅年、寅月、寅日之說,因而有推算的可能性。照陳瑒等所推,屈原生在公元前三四三年正月二十一或二十二日,這是舊說。舊說的錯誤在於誤把歷史年表上的干支紀年法的寅年作為戰國時代歲星紀年的「攝提格」。郭沫若先生根據《呂氏春秋》里的一個歲星紀年例子用超辰法推求,假定屈原生於公元前三四〇年正月初七日,也只在疑似之間,未為定論。一九四八年,我在清華大學講授《楚辭》,開始注意這個問題,有興味深入研究,接觸到向來經史學家所聚訟紛紜的歲星紀年的種種複雜方面。研究的結果是公元前三四一年歲星在星紀,太陰在寅,太歲在子;公元前三三九年歲星在娵訾,太陰在辰而太歲在寅。太陰、太歲分別是依據錢大昕的舊說的。公元前三四一年正月里無庚寅日,而「攝提格」也應該是太歲在寅之稱,因此,我修正郭說,把屈原生年移後一年,推算他生在公元前三三九年、楚威王元年正月十四日庚寅,即陽曆二月二十三日。 一九四九到一九五〇年,我斷斷續續在古代天文學裡摸索,曾經把戰國秦漢之間的歲星紀年作通盤考慮,利用現代天文學家的表格,推算漢武帝太初元年的「攝提格」和《呂氏春秋》的「涒灘」那兩個例子的歲星的正確方位,證明:(一)戰國時期的攝提格,歲星在娵訾宮;西漢時期的攝提格,歲星在星紀宮;兩式不同。(二)歲星紀年的古法是把歲星合日的那個月份作為定年名的標準的。公元前三三九年可以肯定為攝提格之歲。 不過《離騷》詩句有王逸、朱熹兩家不同的註解,我們只依據王逸說推算屈原生年,是不能作全面的肯定的結論的。這兩家的說法互有短長,難判是非。現在我寫作本論文時,再度考慮這問題。天文上有兩個「攝提」。一個是有紀年作用的歲星攝提,一個是有紀月作用的大角攝提。但是,這兩個攝提有關聯作用,而王、朱兩家的意見也可以互相補充,不是互相矛盾的。要使屈原的生辰能夠同時正確滿足這兩個攝提的要求,那麼上面的那個答案是最合適的。 本論文雖然以屈原生辰的推算標題,討論的問題廣泛及於歲星紀年的各方面。這裡討論到:(一)歲星紀年和干支紀年的分別,即太歲超辰問題;(二)歲星紀年的原理和它的發展過程的推想;(三)歲星紀年的甲乙兩式;(四)歲星攝提和大角攝提的關聯作用。討論的要點提供史學研究者參考,並且期待天文曆法專家們的指正。 一 《離騷》:「攝提貞於孟陬兮,惟庚寅吾以降。」屈原自己敘說了他誕生的日子。這兩句詩很難懂,向來有兩種不同的解釋。一是後漢人王逸在《楚辭章句》里的註解;二是南宋人朱熹在《楚辭集注》和《楚辭辯證》里的意見。 按照王逸說,攝提是年名,太歲在寅曰攝提格,孟陬指夏曆正月孟春建寅之月,庚寅是生日的干支。所以屈原生在寅年、寅月、寅日,他的生辰巧逢三寅,見得不平凡的。按照朱熹說,攝提是星名,它是隨著斗柄指示方位以定月令的,正月孟春日沒始昏之時,斗柄指寅,在東北隅。屈原只說他生在正月庚寅日,不一定在寅年。如果攝提是年名,其下不應略去格字,而「貞於」兩字反而是多餘的衍文了。怎麼說寅年正於寅月呢?今按太歲在寅曰攝提格,見於《爾雅》,此外,《史記》和《淮南子》都有歲星紀年的攝提格的名稱,王逸說是有根據的。至於攝提是星名則見於《史記·天官書》,朱熹雖沒有引用《史記》,他是根據《漢書·律曆志》「孟陬殄滅,攝提失方」的孟康注的。王、朱兩家說法不同,而都有根據,也都涉及天文曆法專門之學,讀者很難判決是非了。 學者之間,多數同意了王逸的解釋。顧炎武說:「古人必以日月系年……攝提歲也,孟陬月也,庚寅日也……豈有自述世系生辰,乃不言年而止言月日者?」(《日知錄》卷二十)戴震作《屈原賦注》,說:「貞,當也,攝提之年當孟陬正月。」那支持朱熹的意見的卻在少數。如果屈原只生在正月庚寅日,平均每兩年可以有這樣一個日子,他的生年就無法推測了;如果他生在寅年寅月寅日,平均二十四年內可以有這樣一個日子,他的生年是有可能推定的。我們不願辜負這位大詩人自己提供的材料,認王逸說是正解,試為推算,把朱熹的意見暫且擱開,回頭再來討論。 差不多一百年來,有幾位學者嘗試過推算的工作。鄒漢勛、陳瑒、劉師培三人先後用殷歷、周曆、夏曆推算,推定屈原生在楚宣王二十七年戊寅(公元前三四三年)正月二十一或二十二日庚寅。(鄒說見《鄒叔績遺書》,陳瑒有《屈子生卒年月考》,劉說見《古歷管窺》)三人所用曆法不同,因而有一日之差,至於年份是相同的。因為前於戊寅的丙寅年,後於戊寅的庚寅年,正月里都沒有庚寅日,只有這年的正月里有庚寅,而且把這年定為屈原生年,和《史記》所敘屈原史實也暗相符合。這結論幾乎成為定論,早時所出的文學史書籍往往採用了他們推算的結果,把屈原生年定在公元前三四三年。 其實這結論是錯誤的,問題發生在年份上。何以知道楚宣王二十七年是戊寅年呢?從歷史年表上的干支紀年得來。我們知道,在戰國和在戰國以前,干支只用來記日,不用來紀年的,所以當屈原生時,只有庚寅日而沒有戊寅年。戰國時代有歲星紀年法,攝提格是歲星紀年的名稱,相當於寅年,可不同於干支紀年法的寅年,更不是我們現在所用的歷史年表上的寅年。這歷史年表上的干支年名,是後漢初期廢去歲星紀年法,直接採用干支紀年的年曆家所排定的,凡西漢以前的年份,逐年的干支是逆推附加上去的,和那個時期的歲星紀年年名,不相符合。 什麼叫做歲星紀年呢?查考古代紀年法的歷史,最早只有史官按照王公即位年次紀年的一種,稱周某王某年、魯隱公元年之類。到戰國時期,天文學發達起來,天文占星家觀測日月五星的運行,改進了曆法,他們也企圖用天文現象來規定年名。他們利用歲星運行的規律拿來做紀年之用。歲星就是木星,這顆明亮的行星在古代人們的心目中認為是尊貴的天神所憑依,有規律地巡遊在天空中的。它在恆星星座中的位置,逐年移動,從某星座回復到這星座,約計需要十二年。古代的天文家把黃道周圍平均分劃為十二「次」(古名「次」,今名「宮」),歲星年行一「次」。歲星每年和太陽會合一次,會合周期約計一年零一個月,如果今年在正月,明年便在二月,後年在三月,逐年推後一個月。它和太陽同宮會合,有三十天左右為日光所掩,人們看不見它,在合日前十五天晚見西方為黃昏星,合日後十五天晨見東方為曉星。木星合日好比日月合朔,晨見東方為曉星好比新月的出現。日月合朔和新月的出現可以做紀月的標準,那麼一年一次的木星合日和新木星的出現為什麼不可以做紀年的標準呢?歲星紀年法的被採用,一半是由迷信的占候吉凶觀點出發,一半是有科學的、物質基礎的。 因為文獻上的例證不多,所以歲星紀年法的發展過程不容易弄明白。約略說來,在戰國初期,天文占星家說到「歲在星紀」「歲在玄枵」等等那是歲星紀年的第一階段。星紀、玄枵等是黃道周圍平均分劃的十二個「次」名,即宮名。每宮有顯著的星座作為標紀,星紀宮有斗、牛兩宿,玄枵宮有女、虛、危三宿,大致如此。如果某年歲星在星紀,次年歲星在玄枵,到第十三年歲星又在星紀。此後,約在戰國中葉和末葉,產生了十二個太歲年名,是攝提格、單閼等等,乃是就歲星在某宮,在某月里和太陽會合而稱呼的。這些年名,十二循環,以攝提格為第一年。此後,大概在西漢年間吧,稱呼這十二年名做歲陰年名,另外加上十個歲陽是閼逢、蒙(一作焉逢、端蒙)等等,成為六十循環,以閼逢攝提格為第一年。十二循環的太歲年名,如果用十二辰名來替代,稱寅年、卯年等也是相當的;六十循環的年名,如果用干支來替代,稱甲寅年、乙卯年等,也是相當的。所以歲星紀年法漸漸蛻變而成干支紀年法。 我們必須注意兩點:一點是在紀年的歷史發展過程中,先有歲星紀年法,後用干支紀年法;一點是歲星紀年法有「超辰」,干支紀年法無「超辰」。干支是抽象的次第符號,六十循環永不間斷,比較便利。歲星紀年由木星的方位得出年名,木星在星空中運行,不恰恰是十二年一周天,此十二年一周天微速,積至若干年後便超過一宮,因而必須跳過一個太歲年名,方始再能和歲星的方位相合,這叫做「太歲超辰」。當初天文占星家利用木星來名年,是假定它十二年一周天的,後來才知道它有超辰,不能不隨時根據實測,規定年名,而超辰率又不容易計算正確,所以這古法終於被廢棄,直接用干支紀年了。後漢以後,閼逢攝提格等古年名,還偶或被文人雅士所應用,那是按照當年的干支年名翻譯過去的,和歲星毫無關係。可是屈原時代的攝提格,那麼確定指示歲星所在,是當時曆法上的原來術語,可以翻譯做寅年而不是干支紀年裡寅年的翻譯。 鄒、陳、劉三位不曾仔細研究這問題,在年表上找個寅年是不正確的。歷史年表上的干支年名是後漢時代人所排定,推前推後,循環不斷,中間沒有超辰,逆推歲星紀年的時代,只有王莽時代的干支年名和當時的太歲年名相合,再往前推便不合了。例如,公元前一〇四年是漢武帝太初元年,根據《史記》的記載,那時的天文曆法家定這年為焉逢攝提格(甲寅)之歲,按照《漢書》,這年又有丙子的年名,而歷史年表把這年定為丁丑年。公元前二三九年是秦王政八年,根據《呂氏春秋·序意篇》,這年「歲在涒灘」(太歲在申曰涒灘),而年表上作壬戌年。從此可證,楚宣王二十七年決不是戰國時代太歲在寅之年。 我們要在屈原生年附近找定一個攝提格,有兩種辦法。一個辦法是找一個可靠的歲星紀年用超辰率推求;一個辦法是研究什麼叫作攝提格,木星應該在哪一個星座,用天文算法推算木星的行程。後面一種辦法更可以得到正確的答案。 先說超辰率的計算法。照近代天文學所示,木星的恆星周期密率是11.8622年。它的合日周期密率是398.8846日,約為399日。木星在十二年中有十一次合日。我們用它的恆星周期密率計算正確的超辰率,算法如下: 真木星每11.8622年繞天一周,行十二宮,比之假定它十二年一周天行十二宮,逐年所超,以宮為單位是: 適超一宮。 超過一宮就是超過一辰,需要跳過一個太歲年名,或與之相應的干支年名,方始能夠使歲星和年名相合。八十六年是正確的「太歲超辰」率。戰國秦漢間的天文家雖然不能知道這正確的太歲超辰率,但是那時期的歲星紀年年名既然從歲星方位上得來,歲星的方位和它的合日的月份是容易觀測的,他們不知道超辰密率,由實測以定年名,等於知道超辰率一樣。所以我們根據干支年表,反求歲星紀年年名需要用這超辰密率來計算。 郭沫若先生在《屈原研究》(一九三五)里不用鄒、陳、劉三家舊說,另作推算。他根據《呂氏春秋》的「歲在涒灘」知道公元前二三九年太歲在申,從此逆推,公元前三四一年該是寅年。但這年的正月里沒有庚寅日,他覺察到在這一百年中歲星應該超辰一次,寅年應該移後一年,便當得三四〇年。查這年的正月甲申朔,庚寅是初七日。郭先生推定屈原生在公元前三四〇年正月初七日。 這個推算方法是合理的。結論是不是正確,還需要覆核。查公元前三四〇年的夏曆正月癸未朔,庚寅是初八日,那甲申朔的是周正正月,這是首先應該更正的。但主要的問題還在於年份上。 第一,《呂覽》的「歲在涒灘」向來為學者們所聚訟不決的,許宗彥、王引之輩甚至疑八年為六年之誤,以求強合於歷史年表上的干支,這意見是謬誤的。錢大昕知道它確切不誤,因而推論歷史干支年表是後漢人所逆推排定,最有卓見。可是錢氏也不能說明何以這年是申年。新城新藏加以申論,他認為公元前三六五年是戰國時代占星家所採用的元始甲寅歲(《東洋天文學史研究》,沈璿譯本,頁四〇二),從此順推,公元前二三九年是庚申年。如果新城的假定可以成立,那麼寅年在公元前三四一年。 第二,據《史記》,太初元年(公元前一〇四年)是由曆法家定為焉逢攝提格的,可以作為標準寅年。《史記》和《淮南子》說明攝提格之歲,歲星在鬥牛,即星紀宮。標準寅年,木星應該在年初入星紀,年終出星紀而入玄枵宮。公元前一〇四年年初距離公元紀年整整一百零四年,此數可以負號表示之。從此數減去木星周天密率的倍數,可以約略推知在此年以前木星進入星紀宮的年月。算式如下: -104-11.8622×20=-341.2440年 算式表示在公元紀元前三百四十一年零三個月木星步入星紀,所以公元前三四一年歲星在星紀,此年該是寅年。 第三,我們照超辰法計算。公元前一〇四年是攝提格,今年表作丁丑,年表上公元前三四四年也是丁丑,中間距離二百四十年,該有三個超辰,寅年要移後三年,當公元前三四一年。 覆核的結果,寅年在公元前三四一年,這年的正月里沒有庚寅日,很使我們失望。公元前三四〇年歲星在玄枵宮,很難定為攝提格的。 我們得重新考慮這問題。錢大昕《潛研堂文集》卷十六有一篇簡短而重要的文章叫做《太歲太陰辨》,可以給我們啟發。錢氏分別太歲、太陰為二,他認為太歲是太歲,太陰是太陰,相差兩辰,太陰在寅則太歲在子,太陰在卯則太歲在丑,太陰在辰則太歲在寅,余可類推。太陰一名歲陰,《史記》和《淮南子》所說的攝提格都是指太陰而言的,太初元年從太陰紀年是焉逢攝提格,太歲在子,所以年名丙子。這個分別很重要,因此我們疑心上面所推的公元前三四一年是太陰在寅,欲求太歲在寅還要移後兩年,應該是公元前三三九年。查此年正月丁丑朔,庚寅是十四日。這年的前後十二年,都應該是太歲在寅,正月里恰巧都有庚寅日,記出如下: 公元前三五一年正月初四日庚寅。 公元前三三九年正月十四日庚寅。 公元前三二七年正月二十四日庚寅。 我們參照《史記》所敘屈原事跡。以公元前三三九年為最合適。 錢大昕的學說能不能成立呢?他分別兩種寅年是正確的,不過太歲、歲陰、太陰這三個名詞,在文獻上有些地方是混用而沒有分別的,因此他的意見為王引之所非難,為新城新藏所擯棄(《東洋天文學史研究》,沈璿譯本,頁三九四、三九九)。此外,他認為歲陰紀年在前,用歲星年名,太歲紀年在後,用干支名稱,這是不正確的。從錢氏的意見得到啟發,我們深入研究,知道歲星紀年法實在有兩種,甲式以歲星在娵訾為攝提格,即錢氏所謂太歲紀年,行於戰國時代;乙式以歲星在星紀為攝提格,即錢氏所謂太陰紀年,是西漢時代新用的。《史記》和《淮南子》單說明了乙式。後面我們要詳細證明這個結論,然後我們有理由定屈原的生年在公元前三三九年。 二 先從整理史料入手。歲星紀年的名稱詳見於《淮南子·天文訓》和《史記·天官書》,兩處大同小異,今抄錄於後,本文用《淮南子》,括弧內是《史記》的異文: 太陰(歲陰)在寅曰攝提格,歲星(居丑)舍斗、牛,以十一月(正月)與之晨出東方。 太陰(歲陰)在卯曰單閼,歲星(居子)舍須女、虛、危,以十二月(二月)與之晨出東方。 太陰(歲陰)在辰曰執徐,歲星(居亥)舍室、壁,以正月(三月)與之晨出東方。 太陰(歲陰)在巳曰大荒落,歲星(居戌)舍奎、婁,以二月(四月)與之晨出東方。 太陰(歲陰)在午曰敦牂,歲星(居酉)舍胃、昴、畢,以三月(五月)與之晨出東方。 太陰(歲陰)在末曰協洽,歲星(居申)舍觜參,以四月(六月)與之晨出東方。 太陰(歲陰)在申曰涒灘,歲星(居未)舍井、鬼,以五月(七月)與之晨出東方。 太陰(歲陰)在酉曰作鄂,歲星(居午)舍柳、星、張,以六月(八月)與之晨出東方。 太陰(歲陰)在戌曰閹茂,歲星(居巳)舍翼、軫,以七月(九月)與之晨出東方。 太陰(歲陰)在亥曰大淵獻,歲星(居辰)舍角、亢,以八月(十月)與之晨出東方。 太陰(歲陰)在子曰困敦,歲星(居卯)舍氏、房、心,以九月(十一月)與之晨出東方。 太陰(歲陰)在丑曰赤奮若,歲星(居寅)舍尾、箕,以十月(十二月)與之晨出東方。 太陰、歲陰同是一個東西。《史記》多星居丑、星居子等說法,丑指星紀丑宮,子指玄枵子宮,乃是十二宮名的簡稱。兩書的異點在於晨見東方的月份相差兩個月,《淮南子》是正確的,《史記》是錯誤的。 其次,我們畫一個歲星紀年法簡圖來說明種種複雜的關係(以下參看附圖)。圖的中心是太陽,裡面一圈示地球繞日的軌道,外面一圈示木星繞日的軌道,這兩個軌道都不是正圓的,而且也不在一個平面上,有微小的交角,但是為了方便起見,我們把它們畫成正圓,而且畫在一個平面上。把地球繞日的軌道做成平面,叫作黃道平面,這平面橫剖天體圓球為二。最外的虛線大圈代表天體圓球上的黃道,平均分劃十二宮,每宮三十度。十二宮有恆星星座斗、牛、女、虛等二十八宿作為標識,每宿有長有短,距度不一(可參看《漢書·律曆志》)。地球自西向東在軌道上運行,繞日一周是一年,從軌道上不同的位置定冬至、立春等節氣。相對的,從地球上測太陽,它在恆星星座中逐日移動方位,自西向東,循著黃道,一年一周,歷十二宮、二十八宿、三百六十度。冬至日,太陽在二百七十度,在戰國時期公元前四〇〇年左右,恰當牛宿初度,有摩羯座的明星βCapricorni為記認,古代的天文家是把這裡定為零度的。西漢時期的冬至點已經不在牛宿初度了,但習慣上還把牛宿初度作為星紀宮的中心。我們設想一個冬至日,在黃道圈上星紀宮的中心畫地球上所測見的「視太陽」。再在木星的軌道上畫一個真木星,在黃道圈上畫一個「視木星」,在星紀始點,二百五十五度許。曆法家的一派以冬至為一個太陽年的開始,如果冬至日歲星居星紀始點,在太陽西十五度,日出前一小時晨見東方為曉星,是漢代天文家所規定的標準的攝提格。冬至在夏曆十一月,以陰曆年而論,屬於上一年,這冬至日後的那個陰曆年方才是攝提格之年。 圖法年紀星歲 附註:本圖中間十二地支原作紅字,以示區別。茲圖版已制就,特此說明。 圖上有三圈十二辰名。外圈是屬於宮名的十二辰,自東向西。中圈是《淮南子》和《史記》的歲星紀年辰名,即錢大昕所謂太陰或歲陰辰名。內圈是錢大昕所謂太歲辰名。這兩圈辰名都是自西向東的,跟木星的運行同方向。星在星紀丑宮,歲陰在寅,太歲在子,照《淮南子》和《史記》,這年是攝提格。余可順推。前代學者們討論歲星紀年法的,只畫外圈辰名,要人設想一個雄歲星,一個雌歲陰,在星紀始點,同時出發,背道而行,年行一宮,星居丑則歲在寅,星居子則歲在卯,用一個左轉一個右轉的說法。現在我們另畫兩圈辰名,那麼只要跟歲星順轉,比較簡單明白。 漢初用十月作歲首,到漢武帝元封七年十一月逢甲子朔旦冬至,曆法家要把它做「曆元」,改元封七年為太初元年,稱焉逢攝提格之歲,並且改用正月作歲首。《史記》上沒有記載歲星的方位,我們用天文算法可以推求的。這冬至日,照新城新藏《戰國秦漢長曆圖》所特示,是儒略日1683431.旦指夜半零時,實合1683430.5,即公元前一〇五年十二月二十五日零時。我們用Neugebauer氏的《天文年曆日月行星行程表》推算,在中國中部所見太陽和木星的方位如下: 太陽黃經270度27分 視赤經270度30分 視赤緯南23度29分42秒 木星實黃經256度54分36秒 實黃緯0度3分36秒 視黃經258度49分48秒 視黃緯0度3分10秒 視赤經257度49分48秒 視赤緯南23度9分14秒 實黃經是木星在它自己的軌道上的黃道經度,以太陽為中心的。視黃經是在地球上所測的黃道經度,以地球為中心的。視赤經是在地球上所測的赤道經度。漢代的天文家實在應用赤道經度。以視赤經而論,那一天的木星已過星紀始點二度五十分,距離太陽十三度不足。《後漢書·律曆志》說:木星在太陽西十三度有奇則晨見東方,所以一〇五年十二月二十五日的那個冬至日的下一天可以有新木星在東方出現。 我們利用現代天文學精密推算知道漢武帝太初元年的「前冬至日」木星在星紀初,解決了《史記》和《漢書》注家的疑問,也證明了劉歆認為歲星在星紀末是誤推的。把太初元年定為攝提格,符合於《淮南子》和《史記》的格式,我們稱這個格式做乙式。星紀宮在十二宮中占著很重要的地位,《漢書·律曆志》上說:「五星起其初,日月居其中。」原來曆法家中的一派把冬至作為一年之始,他們設想宇宙開闢元始第一年第一天,水、金、火、木、土這五顆行星都在星紀始點,而日月則處在星紀中央,這樣「日月如合璧,五星如聯珠」,叫作上元太初元年。這是甲子年、甲子月、甲子日、甲子時冬至。漢武帝太初元年的前冬至日,並不能那樣理想,不過是十一月初一甲子日冬至,日月在星紀中央,木星在星紀初,火星在星紀末,水、金兩星在玄枵,土星在析木,五星分居三宮,距離還不算太遠。(今天我們用表推算,結果這樣。) 從研究太初元年的這個例子,我們知道了西漢時期的攝提格方式。其次,我們研究《呂氏春秋》的歲星紀年。《呂覽·序意篇》的全文如下: 維秦八年,歲在涒灘,秋甲子朔,朔之日,良人請問十二紀。 秦八年指秦王政八年,即公元前二三九年。這年的木星在什麼地方,可以先用簡單的算法約略推算。知公元前一〇五年十二月二十五日零時木星實黃經二五六度五四分半,木星在它自己的軌道上平均每日行五分,要使它在星紀始點二五五度,應該推前二十三日,即十二月三日。這一天距離紀元元年一月一日有104.08年,以負數表之。使木星從星紀始點逆退十一周天有半,那麼: -104.08-11.8622×11.5=-240.4953年 算式表示在公元前二百四十年又六個月,木星在鶉首始點,即公元前二四一年陽曆七月木星入鶉首。次年陽曆七月入鶉火。公元前二三九年的陰曆五月在鶉火,六月到鶉尾。這年的木星,一年跨行兩宮,應該叫做什麼年呢?照《淮南子》和《史記》,星在鶉火,歲名作鄂(酉年),星在鶉尾,歲名閹茂(戌年),現行年表上倒是壬戌年,但是呂不韋何以稱它做涒灘(申年)呢? 這是使我們了解戰國時代的歲星紀年法的關鍵性的問題:《淮南子》和《史記》的說法在這裡不能應用了。呂氏本文的「秋甲子朔」和「歲在涒灘」連文,中間有密切的關係。木星一年跨行兩宮,年名要以合日的那個月份為標準。古人行文簡略,這「秋甲子朔」實是「秋七月甲子朔」的省略。而且用殷歷推算,那年的前冬至日是丙子,加二二八日得甲子立秋。所以這「秋」正是立秋日,正是秋季的開始,這個月份是標準的秋七月。立秋日太陽到鶉尾宮的始點,既然木星已經處在鶉尾,那麼它和太陽同宮會合。涒灘在歲星年名中排行第七,歲星在七月合日稱涒灘,又七月是申月,太歲在申曰涒灘,這絕不是偶然的。 《周禮》:「馮相氏掌十有二歲,十有二月,十有二辰,十日,二十有八星之位。」鄭氏註:「歲謂太歲,歲星與日同次之月,斗所建之辰。《樂說》說,歲星與日常應太歲月建以見。然則今歷太歲非此也。」又《周禮》保章氏條下也有類似的注釋。所謂歲星與日同次,就是木星和太陽同在一宮,看它在哪一個月份,這個月份初昏時斗柄所指的方位,得月的辰名和年的辰名,兩相應合的。例如歲星在七月合日,斗柄建申,得申月,太歲也在申,年名涒灘。涒灘者,乃是歲星第七次合日的稱呼。 以上是粗略的推算,是不是正確,還需要覆核。這年的秋七月甲子朔合儒略日1634351,即公元前二三九年八月十一日。用Neugebauer氏表推算那一天的零時在中國中部所見太陽和木星的方位,結果如下: 太陽黃經132度51分36秒 視赤經135度37分 視赤緯17度9分36秒 木星實黃經143度10分 實黃緯1度18分 視黃經141度33分 視黃緯1度5分24秒 視赤經144度20分 視赤緯15度51分 知太陽恰在鶉尾始點,木星已過鶉尾八度有餘,約計那年的夏初木星已經入鶉尾,上面的簡單算法是不夠正確的,因為沒有計算別的因素,如「歲差」等等在內,但是,秋七月木星和太陽同在鶉尾是確實不錯的。七月朔,星和日距離八度有餘,星為日光所掩,古書上叫做「伏」,約計十日後木星和日處於同度,又十三日有奇,在七月下旬,木星晨見東方。那年的木星的「伏」和「見」都在這個夏曆七月。 用《周禮》來證明《呂覽》,非常正確明白。歲星在鶉尾,「伏」「見」於七月,稱涒灘,那麼戰國時代的攝提格,歲星必須在娵訾宮,在正月里和太陽同宮了。這是歲星紀年的甲式,星在娵訾,太歲在寅,年名攝提格,從我們的圖上看,用最內一圈的十二辰。 我們用現代天文學的精密推算可以解決《呂氏春秋》的疑難問題,證明王引之、許宗彥、劉師培輩認為秦八年是六年或七年之誤,都是謬論。新城新藏假定公元前三六五年為戰國時代占星家所用的甲寅元,這個假定是單為解釋《呂覽》而設想的,無需的,也是錯誤的。因為公元前三六五年,歲星在星紀,照戰國時代的歲星紀年方式,乃是歲在困敦(子年),不是攝提格。在他那部大著作里凡根據這個假定而引申出來的意見都是蹈空的。此外,飯島忠夫認為星在鶉火、鶉尾,決不能稱為涒灘,因而疑心《呂覽·序意篇》是偽作(見他的《中國古代史論》,日文本四五四頁),也是因為拘執於《淮南子》和《史記》,不知道歲星紀年有兩種不同的方式而輕易下了個荒唐的判斷。 為什麼歲星紀年有兩種方式呢?推究原因,實在因為曆法家有兩派。漢初出現的六歷中,殷歷、周曆、魯歷、黃帝歷這四家推算節氣從冬至開始,他們把冬至到冬至作為一個太陽年;顓頊曆、夏曆這兩家推算節氣從立春開始,他們把立春到立春作為一個太陽年。六歷都以一年之長為365.25日,沒有什麼不同,不過所用曆元不同,前者要求十一月天正朔旦冬至的某年作為曆元,後者是要求正月人正朔旦立春的某年作為曆元。那天正派設想開闢元始第一年,日月五星都起於星紀一宮;那人正派設想開闢元始第一年,日月五星都起於娵訾一宮。 《唐書·歷志·大衍曆議》:「顓頊曆上元甲寅歲正月甲寅晨初合朔立春,七曜俱直艮維之首。(中略)其後呂不韋得之以為秦法。(中略)《洪範傳》曰:歷記始於顓頊,上元太始閼蒙攝提格之歲,畢陬之月,朔日己巳立春,七曜俱在營室五度。」艮維之首就是娵訾宮的始點,照《漢書·律曆志》是危宿十六度,《洪範傳》說是營室五度,有六度之差,所以然的原因,在這裡我們可以略而不論。 曆法上又有周正和夏正的分別。周正正月即夏正十一月,包含有冬至的那個陰曆月份。夏正正月是立春前後開始的那個陰曆月份。照天文學,把冬至作為一年之始來得合理;但是,冬至正在嚴寒,立春以後天氣漸暖,方才有春天的景象,所以按照春、夏、秋、冬四季的順序,用夏正又有方便的地方,尤其能夠配合農民的耕作習慣。在春秋時代,周朝廷所頒布的曆法是周正,魯國史官所記的《春秋》也用周正,但是當時許多國家,那些非姬姓之國和一般人民是不是都用周正呢?怕是不見得的。尤其是到了戰國時期,各國都在用夏正。歲星紀年的年名既然產生在戰國時期,而戰國時期的各國既然都用夏正,那麼把歲星在娵訾,在夏正正月里合日作為攝提格是極其自然的了。 《史記·天官書》上說:「歲星一曰攝提,曰重華,曰應星,曰紀星。營室為清廟,歲星廟也。」這段材料必定是從戰國時代占星家的星經來的,營室就是室宿,室宿和壁宿稱營室東壁,是娵訾宮的標識,一共有四顆極其明亮的恆星,即飛馬座三星和仙女座一星,構成一個四方形,也就是《詩經》「定之方中,作於楚宮」的定星。占星家把這四方形看做歲星的天廟,那麼他們必定假定歲星的運行是從室宿起始的了。 所以毫無疑問,甲式是歲星紀年的古法。 為什麼到了漢代要改用乙式呢?原因不得而知。漢代曆法家雖有六家,重要的只是殷歷和顓頊曆兩家,漢歷調和兩家,以殷歷推冬至,顓頊曆推立春,交相為用。漢武帝太初元年雖用乙式稱焉逢攝提格,但是並沒有拋棄甲式,因而又有丙子的年名,所以錢大昕說「太陰在寅而太歲自在子」。因為歲星在星紀,在十一月中和太陽同宮,按《周禮》太歲應月建以見的辦法,十一月斗柄建子,是子月,因而也是子年。為什麼不稱甲子年而稱丙子年呢?這丙子必定是沿著一個曆元來的。最可能的是西漢年間的顓頊曆家把公元前三六六年正月甲寅朔旦立春的這年作為甲寅元而順推下來的。所以在西漢時期已經有干支紀年,不過那個干支紀年還是和歲星方位有關,即是太歲所在的辰。 這太歲年名雖然用干支表示,要隨歲星超辰的。從太初元年(公元前一〇四)的丙子下推王莽始建國八年(即天鳳三年,公元後一六年),距離一百十九年,比十二的倍數少一年,但是歲星已經超過一宮有半,所以在那年的年初歲星已到星紀中央了。《漢書·王莽傳》說,「始建國八年,歲躔星紀」,這是正確的,那年也是丙子年。推前三年,公元後一三年,歲星在壽星,《王莽傳》:「始建國五年,歲在壽星,倉龍癸酉。」倉龍即蒼龍亦即太歲。這裡是太歲紀年,用甲式,用干支,是和歲星方位應合的。直到後漢初年廢去歲星紀年法,直接用干支紀年,不再顧到歲星的方位,就把王莽時代的太歲干支年名固定下來了,推前推後六十循環,無超辰,無間斷的了。我們今天所用的干支年名,從王莽時代來,沒有間斷。但是,把王莽時代的始建國八年固定為丙子,那麼逆推上去,漢武帝太初元年就變成丁丑;這是歷史年表上丁丑的來歷。 這些都是年代學上紛爭的問題,我們總算弄明白了。我們知道西漢年間把太歲年名改用干支表示而把歲星年名施於乙式;至於在戰國時期那麼但用甲式,不以干支表示而是用攝提格、涒灘等年名的。那麼屈原時代的攝提格必定是歲星在娵訾,在正月里和太陽同宮會合的那一年。 楚威王熊商元年正月十四日庚寅,合儒略日1597657,即公元前三三九年西曆二月二十三日。我們用Neugebauer氏表推算這天的太陽和木星的方位,結果如下: 太陽黃經329度22分 視赤經329度25分 視赤緯南11度48分36秒 木星實黃經330度38分 實黃緯南1度22分 視黃經330度25分30秒 視黃緯南1度9分10秒 視赤經332度55分30秒 視赤緯南12度31分10秒 娵訾宮的始點三一五度照《漢書·律曆志》合危宿十六度,危宿共有十七度,所以那天的太陽在室宿十三度許,木星在室宿十六度許,距離三度,都在娵訾宮的中央。那年的年名是攝提格,月份是孟陬正月,歲星和太陽同宮,照《周禮》太歲應月建的辦法,正月斗柄建寅,即太歲在寅。所以按照王逸說,屈原的生年月日應該確定在公元前三三九年陰曆正月十四日,陽曆二月二十三日。 朱熹懷疑王逸說,他認為如果攝提是年名,下面不應該略去一個格字,而「貞於」兩字反而是多餘的衍文,把寅年正在寅月上,在語文上顯得不通順。我們的答辯如下。 《史記·天官書》上說,歲星一名攝提。「格」字的意義是「正也,來也,至也」。「貞」字的意義是「正也、當也」。它們是同義字,說「攝提貞於孟陬」等於說「攝提格於孟陬」,沒有什麼兩樣的。在朱熹心目中,攝提格是渾成的一個專名,不可以分拆,其實「攝提格」就是「攝提正」,歲星正於正月是第一攝提格,年名就叫攝提格,歲星正於二月是第二攝提格,年名叫做單閼。逐年有一個攝提格,有一個歲星所當臨的月份。那第一攝提格是歲星紀年的「正年」。 再深進一層說,歲星為什麼一名攝提呢?那是就其作用而稱呼的。攝提是天文上的術語,分析它的意義,包含有「標準」和「合辰」的意思。「合辰」就是日、月、五星的會合。歲星和太陽會合的這個現象可以做紀年的標準,因而它有攝提的別名。它一名紀星,一名應星,也是因為它應於某月作為紀年的標準,就其作用而稱呼的。朱熹把歲星一名攝提這件事情忽略了,單舉出恆星中的攝提星,即大角星下面的左右攝提星。那六顆小星為什麼也叫攝提呢?《史記·天官書》上說: 大角者,天王帝廷,其兩旁各有三星,鼎足句之,曰攝提。攝提者,直斗勺所指以建時節,故曰攝提格。 無論這六顆小星叫做左右攝提,或者連那顆明亮的大角星在內都叫做攝提,總之是按其作用而稱呼的。大角同斗勺第七星連接成一根直線,通過左右攝提小星的中間,指示方位,下合於蒼龍之首(即壽星宮角、亢、氐三宿),以建時節,有這樣的作用,才叫做攝提。星的作用是攝提,攝提所當是攝提格。這兒不是也可以分拆開來嗎? 《離騷》:「攝提貞於孟陬兮」,孟陬是夏曆正月。孟的意思是始,正月始春,同時也是一年的始月。陬字來歷不明,或者是指正月里太陽在娵訾而得名的。這句詩的意義指示出歲星和太陽同在娵訾宮會合的天文現象,在一句話里同時表達了年和月。我們知道屈原在《左傳》《國語》的作者之後,在呂不韋之前。按照歲星紀年的發展過程,在戰國初年,占星家只說「歲在星紀」「歲在娵訾之口」等,那是直舉歲星在星座中的位置的,還沒有十二個太歲年名。到了呂不韋時代,既然有「歲在涒灘」的出現,可見那十二年名已經確立了。屈原時代的情況,因為沒有別的文獻作為旁證,所以這十二年名已經確定了沒有是無從推論的。如果已經有了,那麼他用貞字代格字也不能說不通。如果還沒有確定,而在醞釀時期,那麼他的說法,比較前期的標舉歲星所在的宮名已經發展了一步,指出了合日的月份了,而比用太歲年名則還在具體說明的過渡的階段,在歲星紀年的發展過程上是很可以說得通的。 我們也不能知道《周禮》裡面太歲應月建以見的辦法,屈原時代已經有了沒有。假如已經有了,那麼屈原知道他生在寅年寅月,如果還沒有,他只知道他生在歲星紀年的正年正月。 以上是根據王逸的註解,詳細研究了歲星紀年的情況所得出來的結論,也補充了王逸註解的不足,去除了朱熹的疑問。後面我們再詳細考慮朱熹的意見。 三 上面我們已經引用了《史記·天官書》關於大角星下攝提星的材料。朱熹並不根據這材料,他的根據在《漢書·律曆志》的孟康注。《漢書·律曆志》說: 歷數之起上矣,《傳》述顓頊命南正重司天,火正黎司地。其後三苗亂德,二官咸廢,而閏余乖次,孟陬殄滅,攝提失方。堯復育重黎之後,使纂其業。故《書》曰:乃命羲和,欽若昊天,曆象日月星辰,敬授民時,歲三百有六旬有六日,以閏月定四時成歲,允厘百官,眾功皆美。 孟康註:「正月為孟陬,曆紀廢絕,閏余乖錯,不與正歲相值,謂之殄滅也。攝提星名,隨斗勺所指,建十二月,若歷誤春三月當指辰而乃指巳,為失方也。」 又,《史記·曆書》:「其後三苗服九黎之德,故二官咸廢所職,而閏余乖次,孟陬殄滅,攝提無紀,歷數失序。」註解《史記》的也有類似的注釋,因為出於孟康注以後,我們可以不引。 這兒剛巧是「孟陬」和「攝提」連文,所以朱熹引用孟康注來解釋《離騷》,是平正通達的。如果按照他的解釋,屈原只生在孟春正月,和歲星紀年的攝提格是無關的。 仔細研究,我們還可以提出許多意見。 孟陬殄滅和攝提失方是指遠古時代的天文官失了職守,不知道在陰曆年裡隨需要而插入閏月,以致不能和太陽季節調和,例如名為正月,斗勺不指東北寅位,氣候不是孟春的意思。《史記》《漢書》把這種現象說在堯舜以前,那不過是說說罷了,事實上在春秋的初期,曆法還不夠進步,所以也還有失閏的現象的。不過,照新城新藏的研究,在春秋末葉已經有規律地用十九年七閏法,在戰國初期已經有七十六年一周期的曆法了,已經過了「觀象授時」的時代,用不到逐年觀測,只要按曆法推算了。在屈原時代,早已沒有失閏的可能,他特地說「我生在一個攝提正的正月」,就是「不失閏的正月」,豈不是無的放矢嗎? 若說他生在夏曆正月,特別用這樣的詞句來分別周正和夏正的,我們疑心楚國原來在周人統治圈子以外,和周敵對的,就是在春秋時期也未必用周正,怕是向來用夏正的一個國家。而且要表明夏正正月,「孟陬」兩字足以了之,「攝提貞於」都是衍文了。宋人詩話里有這樣一個故事。有一天,蘇軾見到秦觀,問他近來寫了些什麼,秦觀背誦了他得意的詞句:「小樓連苑橫空,下窺繡轂雕鞍驟。」東坡道:「十三字只說得一個人騎馬樓前過。」屈原用「攝提貞於孟陬」那樣一句話只說了個正月,不是太費勁了嗎? 因此,我們疑心那句話不光是說個正月,內容還要豐富些,如果攝提不是紀年,那麼也應該指示些別的。 先談那幾顆攝提星到底怎樣定時節呢?北斗七星就是大熊座的七顆明星,形狀像斗,俗名北斗,向外三星稱斗柄或斗勺。這北斗七星在離開現在三四千年前,極近北極,所以終夜不沒到地平線下的。古代的人民從生產鬥爭實踐中,積累獲得許多天文知識,用斗勺所指的方位推定四時節氣也是古老的實用知識之一。在每天日沒黃昏時看北斗,所指方向,四季不同,指正東是仲春節氣,指正南是仲夏節氣,指正西是仲秋節氣,指正北是仲冬節氣。天文家把人民大眾的知識,加以發展,更求精密。斗勺三星是彎曲的,僅得大概,假如用大角星(牧夫座的明星)連接北斗第七星成直線,在戰國時期,上面是正對北極的,下面交於赤道圈上約在亢、氐兩宿之間,近壽星宮末點。這根直線在天體圓球上是一弧線,有「時圈」的作用。壽星宮的角、亢、氐三宿是東方蒼龍七宿之首。攝提或者原來是大角星的別名,後來移稱於「鼎足句之」的左右六顆小星,那六顆小星非極好的目力也不容易辨認。這攝提線所至就是蒼龍之首所在的方位。冬至日,太陽在星紀宮中央,日平西方酉中,壽星中央到正北子中,日沒後一小時,壽星末點到正北。立春日,太陽在娵訾初點,日平西方酉中,壽星中心到正東北寅初,日沒後一小時壽星末點到寅初,余可類推。所以在戰國時期,於日沒後一小時初昏觀測這根攝提線是可以定節氣的。冬至正位於正北子中,春分正位於正東卯中,夏至正位於正南午中,秋分正位於正西酉中,立春正位於東北寅初,雨水正位於東北寅中,余可類推。雖然在戰國時期未必即有這二十四個節氣的全部名稱,但是用這攝提線可以推知太陽在某宮的中心或起點,等於定了節氣。這攝提線所至就是攝提格,作用等於「斗建」,比較更正確些。 假如屈原只生在一個普通的正月里,可以有種種的說法,例如「孟春」「孟陬」「獻歲發春」「玉衡指孟春」等等都可以表示了,為什麼要特提這攝提線呢?「攝提貞於」就是「攝提格於」,包含有標準和合辰的意義,不應該太空泛。因此,我們不妨作種種猜測: 第一,他生在一個標準的正月里,正月朔日立春,陰曆月份和陽曆節氣調和,得陰陽之正。庚寅不管是哪一天。正月朔日立春是顓頊曆和夏曆可以用作「曆元」的年份,曆法上的始年。《漢書》所說「孟陬殄滅,攝提失方」,是失閏的現象。要不失閏,需要觀測天文現象,在「現象授時」的時代是如此的。但是累積了觀象授時的經驗,曆法進步了,知道了十九年七閏的規律,知道用七十六年一周期的辦法,用不到逐年觀測,只要按曆法推算,就能調和陰陽。所以「攝提失方,孟陬殄滅」在曆法學來說,就是不曾找到一個正確的曆元。屈原說,他生的那個正月是攝提正的,那麼他應該生在一個可以作為曆元的「朔旦立春」的正月了。 第二,他生在一個普通的正月里,而他的生日庚寅是立春日,是顓頊曆家的年始,太陽入娵訾始點,初昏時斗勺和攝提正指東北寅初。 第三,他生在一個普通的正月里,而他的生日庚寅是雨水日,正月孟春的中氣,太陽居娵訾宮的中央,初昏時斗勺和攝提正指東北寅正。 有這麼三個可能性。要檢查有沒有適當的年份,需要作一個立春表。 用顓頊曆公元前三六六年夏正正月甲寅朔旦立春,順加三六五·二五日,推逐年立春,把新城新藏所作《戰國長曆》的夏正正月朔日干支附註於下,作立春表如下: *公元前三六六年甲寅·〇〇(甲寅朔) 三六五年己未·二五(戊申朔) 三六四年甲子·五〇(壬申朔) 三六三年己巳·七五(丁卯朔) *三六二年乙亥·〇〇(庚寅朔) 三六一年庚辰·二五(乙酉朔) 三六〇年乙酉·五〇(己卯朔) 三五九年庚寅·七五(癸卯朔) *三五八年丙申·〇〇(丁酉朔) 公元前三五七年辛丑·二五(壬辰朔) 三五六年丙午·五〇(丙辰朔) *三五五年辛亥·七五(庚戌朔) 三五四年丁巳·〇〇(甲辰朔) 三五三年壬戌·二五(戊辰朔) 三五二年丁卯·五〇(癸亥朔) 三五一年壬申·七五(丁亥朔) 三五〇年戊寅·〇〇(辛巳朔) 三四九年癸未·二五(乙亥朔) 三四八年戊子·五〇(己亥朔) *三四七年癸巳·七五(甲午朔) 三四六年己亥·〇〇(戊子朔) 三四五年甲辰·二五(壬子朔) 三四四年己酉·五〇(丙午朔) 三四三年甲寅·七五(庚午朔) 三四二年庚申·〇〇(乙丑朔) 三四一年乙丑·二五(己未朔) 三四〇年庚午·五〇(癸未朔) *三三九年乙亥·七五(丁丑朔) 三三八年辛巳·〇〇(壬申朔) 三三七年丙戌·二五(丙申朔) *三三六年辛卯·五〇(庚寅朔) 三三五年丙申·七五(甲申朔) 三三四年壬寅·〇〇(戊申朔) 三三三年丁未·二五(癸卯朔) 三三二年壬子·五〇(乙丑朔) 三三一年丁巳·七五(辛酉朔) 三三〇年癸亥·〇〇(乙卯朔) 三二九年戊辰·二五(己卯朔) 在這些年份中間,正月朔日立春只有公元前三六六年,此外三五八年、三五五年、三四七年正月朔日和立春僅差一日,但是這四個年份的正月都無庚寅日,可以不論。留下來可以討論的只有三個年份。三六二年正月初一是庚寅日,年前十三月中的乙亥立春,加十五日得庚寅,所以這年的正月朔庚寅恰是雨水日。不過把這年定為屈原生年,他活到秦攻取黔中郡(公元前二八〇)私自起拔郢(公元前二七八),年壽在八十以上,是不合適的。這年的歲星在降婁,是單閼之歲,太歲在卯。三三六年正月初一也是庚寅日,初二辛卯立春,僅差一日,這個月份也夠上標準的正月。不過把這年定為屈原生年,到公元前三一三年張儀來楚,他被疏去職,才二十四歲,上推他初任左徒時,年才二十,未免年紀太輕些。這年的歲星在實沈,是大荒落之歲,太歲在巳。這兩個可以考慮的年份都有缺點。 公元前三三九年正月丁丑朔,上年十二月晦日是丙子,晦前一日乙亥立春,有〇·七五餘分,正月朔旦不過在立春後一·二五日,也是近於標準的正月。《淮南子·天文訓》說:立春日斗勺指報德之維,加十五日指寅則雨水。《天文訓》里凡斗勺指著十二辰都建立「中氣」,如指子則冬至,指癸則小寒,指丑則大寒,指報德之維則立春,指寅則雨水,指甲則驚蟄,指卯中繩則春分,指乙則清明,指辰則穀雨,指常羊之維則立夏(余略)。把十二辰應用在十二個中氣上,另外用四個維當立春、立夏、立秋、立冬,把甲乙丙等天干用在其餘的節上。所以泛泛說斗柄指寅是孟春正月,嚴格說斗柄恰指寅位是正月中氣的雨水日。現在十二月晦前一日乙亥立春,那么正月十四日庚寅恰當中氣雨水日,斗勺和攝提指寅正。這個孟春中氣,照《淮南子·天文訓》是雨水,別處也稱驚蟄,驚蟄和雨水有時互換,那沒有關係,總之是正月的中氣。 所以就是我們尊重朱熹的意見,認為是同於斗建作用的那個大角攝提,公元前三三九年的正月十四日庚寅也是最合適的。而況這一年歲星在娵訾,恰在正月里合日,年名攝提格,太歲在寅呢!在這兒,王逸和朱熹的矛盾居然統一了,誠然是巧合!這年是楚威王元年,屈原生在這年,到張儀來楚,被疏去左徒的職位時,年二十七歲。從《史記》所記事跡和《楚辭》里可以推論他的年齡的,都能夠配合,不發生困難。 《離騷》的「攝提」不管它指哪一種攝提,關鍵在於「貞於」兩字。貞,正也。屈原說「正」,如果是的的確確正,一點兒不含糊,那麼不是歲星的攝提當臨在正月,便是大角的攝提正在立春或雨水。寫《天問》的屈原,他對於天文知識是豐富的,攝提是天文上的術語,有一定的意義。如果不能判斷哪一種意義是主要的,那麼我們能夠找到一個同時能夠滿足兩種攝提格的要求的答案是最合理的了。 照我們看,王逸和朱熹兩家的注釋都有毛病。王逸只作了訓詁上的解釋,說攝提格就是寅年,引起誤會,使人誤認為屈原時代已經有干支紀年的習慣,是詩人故意用了文雅、艱深的替換詞的。因此也引起了後人根據干支紀年年表來推算屈原生年的錯誤。王逸是後漢時代的人,他已經習慣了干支紀年,也不清楚戰國時代的所謂攝提格之年歲星在什麼方位了。他只注意了訓詁,卻忽略了天文。朱熹注意天文,可是他單舉出了大角星下的攝提星,忽略了「歲星一名攝提」的事實,所以他的解釋也不夠全面。恆星和行星里都有稱為攝提的,同見於《史記·天官書》,我們相信它們都是戰國時期的天文占星家所習用的,同樣的古。在占星家看來,歲星的地位更其重要。在屈原時代已經有歲星紀年的習慣,所以《離騷》詩句中的攝提,應該主要指歲星,不指大角。不過既然是攝提格之年,又在孟陬正月,那麼大角攝提同時也正在這個月份上,所以一句話可以既明其年又明其月了。 再深進一層考慮,我們覺得這兩個攝提,是互相關聯,交相為用的。申論如下: (一)中國的曆法向來是陰陽合曆,並不是純陰曆。古代的天文曆法家,他們的主要工作在於調和陰陽,在陰曆年裡適當地插入閏月,調節太陽節氣,使四季得其正。所以年有兩種,從正月朔到十二月晦是一個陰曆年,平年十二個月,閏年十三個月。另外有太陽年,從冬至或立春起算,以三六五·二五日為歲實。月份也有兩種,陰曆月是月朔到月晦,節氣月是太陽年的十二分之一。例如孟春的那個節氣月是從立春開始的三十天。用歲星紀年,既然是要把歲星和太陽同宮的那個月份作為標準的,這個月份應該用節氣月,不用陰曆月。否則歲星合在閏月,稱什麼年呢?節氣月用什麼來正呢?用大角攝提線來正是正確的。所謂寅月、卯月等都應指節氣月的。歲星合日(這是「合辰」,也是所謂「攝提」)在寅月,大角弧線正於寅位(這也是「攝提」),歲星合日在卯月,大角弧線正於卯位,余可類推。從大角弧線的合辰,也就是從大角攝提所正,得歲星紀年的年名。這道理同《周禮》註上所說「太歲應月建以見」一樣的。歲星一年只合日一次,只需要大角攝提一次。一年只有一個攝提格。 (二)大角弧線的作用同於斗建,那麼一年可以正十二個節氣月,可以用十二次。但從文獻上看來,孟春節氣月只稱斗勺指寅,而不說攝提在寅的。說攝提在寅等於說蒼龍在寅。說蒼龍在寅等於說太歲在寅。因為大角弧線所指即蒼龍之首。論理蒼龍之首所在也是十二個月份不同,每月正在一個辰位上。但是在習慣上特別提出蒼龍所在是要關聯著歲星所在而言的。例如說蒼龍在寅,決不是說寅月,乃是說寅年,那就是歲星在娵訾在寅月合日,大角弧線正在寅位,蒼龍之首也在寅位。這樣的合辰才是攝提格。我們想像古代的天文占星家是有許多神秘的思想的,攝提格要求歲星、大角線、蒼龍三方面的合辰是包含有天帝蒞臨在某方位的思想的。由此推論,似乎大角攝提總是結合歲星攝提的,而一年只有一個。這大概是因為用攝提來正月令,這時已經有歲星紀年,所以為歲星紀年的特殊用法所專用了。 (三)《大唐開元占經》卷二十三《歲星占》中引甘氏曰: 攝提格之歲,攝提格在寅,歲星在丑;單閼之歲,攝提格在卯,歲星在子;執徐之歲,攝提格在辰,歲星在亥(余略)。 這裡稱引甘氏,應該出於《甘氏星經》,其真偽可以不論。可以注意的是攝提格的用法,每年有一個攝提格。這裡的攝提就是歲陰,是假想的雌歲陰,和雄歲星背道而馳的;「格」就是「到」,就是「正」。這兒的歲星紀年法是西漢時期的乙式。如果改為戰國時期的甲式,那麼是: 攝提格之歲,攝提格在寅,歲星在亥,單閼之歲,攝提格在卯,歲星在戌,執徐之歲,攝提格在辰,歲星在酉(余略)。 這兒的攝提就是大角攝提,也就是太歲,也就是蒼龍了。 所以攝提是活用的,指星的合辰,是就星的作用而言的,原來不指木星或大角星或大角星下面六顆小星的物質本體的。《漢書》所謂「孟陬殄滅,攝提失方」,《史記》所謂「孟陬殄滅,攝提無紀」,也應該活看,那就是歷官失職,找不到正年正月的意思。屈原《離騷》詩說「攝提貞於孟陬」指示他生在正年正月,而那個正年,在他的時代是歲星紀年十二循環的始年,也就是歲星在天廟的那一年。 所以我們認為王逸注雖然失之疏略,大致不錯。朱熹注是片面的。上面的推算雖然恰巧能夠同時滿足雙方的要求,庚寅日的恰值孟春中氣不能作為主要條件。 我們根據夏曆、殷歷、周曆三個曆法來推算,公元前三三九年的夏曆正月丁丑朔,三歷俱同。十四日庚寅零時,照現代天文表格推算,太陽視赤經三二九度二五分,當天的未時到三三〇度,交雨水中氣,和用顓頊曆所推乙亥·七五立春,庚寅·七五雨水,相差極微,可以說是密合的了。這些曆法是從戰國流傳到西漢年間的。假如當時楚國實用的曆法比此稍有出入,那麼可能節氣和朔日有一日之差。這樣,楚威王元年也可能碰到正月丙子朔旦立春,又值歲星在天廟,竟極適宜於作為曆元的了。如果是那樣的話,庚寅便變成了十五日,值日月之望。至於合算陽曆,仍然是二月二十三日。 總結我們所推算的屈原生辰有下列幾個特點: (一)出生的月份是孟春正月,一年的始月。而且這個正月是近於標準的正月,朔日和立春極近,太陰月份和太陽節氣相調和,得陰陽之正。 (二)出生的年份是當時天文占星家流行應用的歲星紀年法的正年,是十二循環紀年的始年。歲星在天廟,就在他出生的月份正月孟春和太陽同宮會合。如果用《周禮》從月建得太歲辰名的辦法,那麼這年就是寅年。他生在寅年寅月,月份上有太歲。 (三)出生的日子是庚寅,值孟春節氣月的中氣,雨水。而且也極近於陰曆月的中心,望日。 《離騷》詩上說: 皇覽揆余初度兮,肇錫余以嘉名。 名余曰正則兮,字余曰靈均。 紛吾既有此內美兮,又重之以修能。 這裡皇即皇考,先父。揆是度算。初度就是生辰。大意說他生下以後,他的父親察算了他的生辰的優點給他取了好的名字。王逸註:「言父伯庸觀我始生年時,度其日月,皆合天地之正中,故賜我以美善之名也。」《文選》五臣註:「我父鑒度我初生之法度。」什麼叫「初生之法度」呢?是指小孩的軀幹容貌嗎?不是的,是指出生的日子的天文星象,也就是後世所謂「星命」。因為這句詩是緊接著上面說他的生辰「攝提貞於孟陬兮,唯庚寅吾以降」的那一句的。王逸注得其大意。屈原的屈姓是楚王族的分支,楚王族自稱是顓頊帝高陽氏之後,又是職掌天文的重黎氏之後,在楚國天文占星術必定很發達,在當時是結合著陰陽五行說的。屈原的父親按照他的生辰來命名是非常自然的。我們今天說「生辰」,那不過是出生的日子的意思。「辰」字在古代包含有星象安排的意義,是帶有具體的內容的。例如《詩經》里有「我生不辰」「我辰安在」等說法,都是慨嘆自己星命不好。因此,「初度」其實就是「生辰」。 屈原的生辰得到日、月、星三光的齊平中和景象。日月東西相望,歲星和日同宮相合。同時,年是正年,月是正月,日子是陰陽兩歷的齊平中和。因此他得到「正則」和「靈均」的美名。「正」和「均」都包含有齊平中和的意義。他的正式名字是一個「平」字。這「平」是從天文法度上的「平正有則」得來的。這「平」也是屈原一生立身行事的法則。古人相信人的德行是稟賦於天的,所以屈原稱為「內美」,王逸註上說:「言己之生內含天地之美氣」,詩人實在暗示有這層意思,倒並不是注說者的穿鑿附會。 《離騷》是難讀的詩篇,「攝提」兩句尤其難懂。倒不是屈原故意作難我們,兩千三百年以前的天文曆法的術語,到了今天變成了一個啞謎了。本文不憚煩地做了反覆推尋的考據工作,不敢說把這個啞謎正確地打中了,不過是經過了一番細密的研究,報告這問題的複雜性,在許多可能的答案中挑選出比較能夠符合各方面的條件的一個,把它提供給屈原研究者參考,天文歷算專家覆核和指正。 1953年5月5日寫畢,北京大學。 (《歷史研究》1954年1期)