小引

本文主要引據《史記》的曆書和前後《漢書》的曆志,試圖用現今較易明白的表述方式,對中國古代天文學的基本知識和制訂曆法的基本原理有所闡明,談不上什麼研究,主要是自己學習,寫出來成文,或者可以省讀者的翻檢尋繹之勞。

讀史者每謂曆志難讀。然而須知,其難並不在於一般認為的要求多少數學和自然科學的知識準備,而是在於其語文和其所指的意義較難索解;以及古人思想的系統相,以今人習慣的思路和話語,較難進入和把握(論者動輒說中國古人的思想沒有系統,此乃浮論)。打個比方,這種困難的性質有點類似於小學生讀不懂應用題的題意因而題目做不來。華羅庚先生六十年代為中學生寫過三本小冊子:《從祖沖之的圓周率談起》,《從楊輝三角談起》,《從孫子的“神奇妙算”談起》,都是從中國古代算學的問題“談起”,涉及到在天文曆法中有重要應用的若干知識,如連分數和同餘式,華先生說:這些知識“不難,高小初中的學生都可以學會。”由此即可見,讀曆的難處並不在於數學。華先生循循善誘,通過古代“不難”的問題和方法,將讀者引導到具有現代風格的比較高等的數學思想和知識裡去,讓中學生也享受到下學上達的通感。那時候似乎沒有“素質教育”一說,但是有華羅庚這樣的大家給中學生上課,以大手筆,寫小文章,起點低,觀點高,辭淺文美,思雋意遠,讀懂一本,受用一生;比照現在,素質教育的口號震天價響,惡劣爛俗的教輔書堆積如山,教師和學生,全都陷在“為了對抗應試教育,必須搞素質教育,而為了搞好素質教育,必須對素質教育的成果進行考核評分”的怪圈之中。難怪印刷業雖興旺發達,卻沒有哪家出版社想到將早年那些好的中學生課外讀物舊籍重刊一下。

解釋綱領性的一段話

中國古代天文曆法知識的綱要大概,高度濃縮地表述在《後漢書•曆志》的一段話中[1],把這段話逐字逐句地弄清楚,進一步讀曆的ABC也就有了。下面將這段話分為五句,加以詳釋。

1.天之動也,一晝一夜而運過周,星從天而西,日違天而東。

地球在自西向東地自轉,古人雖然不懂地動的道理,但是古人與今人一樣,每天都看到整個天球在自東向西地運轉,此即所謂“天之動也,一晝一夜而運過周。”(圖一)地球又在自西向東地繞著太陽公轉(請參圖二),當地球從A點轉到B點,地球上的人(無論古今)不覺自己之動,只是看到太陽原來在天球背景的C點,現在看到太陽在天球背景的D點,感覺上像是D點反向地(自東向西)轉到我們眼前來了,又感覺到太陽同向地(自西向東)從C點轉到了D點。自東向西,即順時針方向,叫做“左旋”;自西向東,即逆時針方向,叫做“右旋”。左右旋的說法,古人早有;而左右旋在現代粒子物理學中,也是重要的概念。中國古代不像古希臘那樣有明確獨立的“天球”概念,但是說“星從天而西,日違天而東”,味其語義,顯然“星”與“日”與“天”是三樣東西,要之,“天”是獨立實存的,這才可以被星所從,被日所違。就“一晝一夜而運過周”來說,日與星都是“從天”的,這是地球自轉產生的唯象運動,“運周”沿著赤道進行。而星“從”日“違”,則是地球公轉產生的唯象運動,是沿著黃道進行的。下面的解釋要參照把赤道黃道結合起來的圖三進行。

2.日之所行與運周,在天成度,在曆成日。居以列宿,終於四七,受以甲乙,終於六旬。

此句講的是由於地球公轉引起的太陽的周年視運動。太陽在黃道上行走(從西向東,右旋),古人早知365又1/4日走完一圈,所以分黃道為365又1/4度,太陽每日走一度,此即“在天成度,在曆成日”。古人的空間觀念常須依託於具體的物象,圍繞著黃道便有二十八星宿的存在。二十八宿,依右旋,即東宮七宿(蒼龍),角、亢、氐、房、心、尾、箕;北宮七宿(玄武),斗、牛、女、虛、危、室、壁;西宮七宿(白虎),奎、婁、胃、昴、畢、觜、參;南宮七宿(朱鳥),井、鬼、柳、星、張、翼、軫。宿者,宿舍也,太陽依次住在二十八宿裡,一圈完了,重新來過,故曰:“居以列宿,終於四七。”另外一個終始相接的週期是六十甲子,“受以甲乙,終於六旬”是也。甲子週期是人為制定的形式(完全可以採取別的週期,如以百日為週期,或以七七四十九天為週期等),而日月週期則是天行之常,“天人合一”的古人不加區分,此句的表述方式,便是反映古代思想混淆性的一例。

錢寶琮先生認為二十八宿最初是“為觀察月之行度而建立的”[2],換言之,二十八宿是月離之所(月亮的住處),不是日躔之所(太陽的住處),月巢日占,乃是後來的事情。月球繞地的軌道叫白道,白道與黃道的交角,比黃道與赤道的交角小得多,觀察不很精密,即可以認為黃白同道。月繞地轉,經天一周的時間(經天月,不是朔望月,兩者的區別詳後)約二十七又三分之一日,取整數二十八日,月亮每日居一宿,恰需二十八宿。月離何舍,夜間隨時可以直接觀察到;然而赫日當空的時候,一切失色,日躔之所,何由知之?《左傳•昭公四年》魯申豐曰:“古者日在北陸而藏冰,西陸朝覿而出之。”[3]北陸、西陸分別指北宮星宿和西宮星宿,日在北陸,是為冬天,故取冰藏之;“西陸朝覿”,意即,早晨太陽將出未出之際,在東方見到西宮星宿,因知日在西陸,這時候已經是春天了,故又出冰。可以朝覿,也可以昏見,但朝覿昏見太過粗疏,後來的辦法是於望日(日月對望之日),依月所在星推日所在星,如望月在翼即可推知日在營室,此法自比以朝覿之星為日躔所在要精密。辦法無論精粗,正大光明的太陽,它的居處卻是隱蔽的,須靠偵察推知,這總有點不大自然,所以從“歷史的認識論”(HistoricalEpistemology)之觀點來看,益信二十八宿之起源,在古人的思想上,最初並不是日躔之所。

3.日月相推,日舒月速,當其同所,謂之合朔。舒先速後,近一遠三,謂之弦。相與為衡,分天之中,謂之望。以速及舒,光盡體伏,謂之晦。晦朔合離,斗建移辰,謂之月。

此句講日與月的運動和位置關係,建立朔望月的概念。太陽和月亮都在違天右旋,太陽走得慢(“舒”),月亮走得快(“速”)。不妨把太陽比作時針,月亮比作分針(只是鐘面上的指標乃作左旋)。日月同居一所(即日、月、地三點一線,以月居中)時叫做“合朔”,相當於兩針重疊(如十二點整時)。日月相對(亦日、月、地三點一線,以地居中)時叫做“望”,相當於分時針連成一條直線。合朔到望之間有上弦月,望到下一次合朔之間有下弦月,文曰“舒先速後,近一遠三,謂之弦”,可能還與另一種月行週期即“近點月”有關,但我不能精確解釋,俟高明以教。不過這一困難是局域性的,可以封閉起來,不會影響理解別的文字。從一次合朔開始,月亮經過上弦、望、下弦,“以速及舒”,將追上太陽,再一次合朔。再一次合朔的前一日叫做“晦”。《說文》:“朔,蘇也;晦,盡也。”《孫子•虛實篇》:“日有短長,月有死生。”屈原《天問》:“夜光何德,死則又盲?”皇侃《論語疏》:“月旦為朔,朔者蘇也,生也。言前月已死,此月復生也。”朔是月初,晦是月末,從朔到晦的月行週期,在古人看來,類似於一個從復蘇始生到終盡死亡的生命過程。須注意,月始生是在西方,終盡則在東方;黃昏西方微見月,此朔日也;早晨東方見微月,月光將盡,月體將伏,晦日至矣。把“晦朔合離”的全過程,當作一個單位,就是“月”,即一個朔望月。朔望月的長度,即兩次合朔之間的天數,要略大於經天月,平均約二十九天半多一點。試想,日和月從合朔起跑,“日舒月速”,月亮跑完一圈回到原點時,太陽畢竟往前面跑了一段,要再次合朔,月還得再跑。就像從十二點整兩針重疊開始,分針兜一圈後,還得再走一段至十三點零五分頃才能再次與時針重疊。時針兜一圈(一小時),相當於經天月;兩次重疊之間的時間(一小時零五分多),相當於朔望月。

順便補充一點。月行有朔望月與經天月的區別,相應地日行也有回歸年與恒星年的區別。由於地球自轉軸的進動,唯象地看,黃道與赤道的交點在恒星背景上發生著極微小的移動,因此,從春分日(或冬至日)到下一個春分日(或冬至日)的回歸年,與太陽在恒星背景上的經天一周,是不同的,也有相應的微小差別,是為歲差。朔望月與經天月的區別容易觀察,先秦時候就早已知道,歲差卻遲至東晉的虞喜始有討論。古人以冬至日為回歸年的起訖點,虞喜發現,冬至的日躔“五十年退一度”(日行右旋為進,故“退一度”即向西移一度),從而提出“天為天,歲為歲”[4]。“天”即太陽行天一周的恒星年,“歲”即從冬至到冬至的回歸年)。祖沖之則第一次在曆法計算中引用歲差。

朔望月與朔望月之間的推移,怎樣標誌呢?當然可以用序數來標誌,一月,二月,三月,等等。但序數的標誌是相對的,周正的一月,乃夏曆的十一月;夏曆的一月,則又是周正的三月。從歷史的認識論觀點來看,相對的標誌方法應是後起的,早期應有一種絕對的客觀的標誌方法,此即“斗建移辰”。所謂“斗建”,是指北斗七星的斗柄所指向的地平圈上的方位。地平圈方位用十二支來表示,正北為子位,左旋經丑、寅、卯(東)、辰、巳、午(南)、未、申、酉(西)、戍、亥,回復到子位。初昏時分觀察斗柄所指,以命其月,同時可知其月所在的季節,如斗建為子,其月為子月,冬至屬焉,時在仲冬;斗建為寅,其月為寅月,立春屬焉,時在孟春,等等。觀察斗建移辰,可知時序推移,這乃是“觀象授時”的重要一種。子月、寅月等是絕對的不動的標識,由客觀的天象所確定。以哪一月為正月,則是人為的政治上的決定。“周正建子”,即周朝以子月為正月;現在的農曆以寅月為正月,據說承用的是“夏正建寅”,所以農曆又叫夏曆。

4.日月之行,則有冬有夏;冬夏之間,則有春有秋。是故日行北陸謂之冬,西陸謂之春,南陸謂之夏,東陸謂之秋。

此句講一年四季太陽在黃道上的位置。黃道二十八宿,劃分成西、南、東、北四“陸”,分別是春、夏、秋、冬四季的日之所在。二十八宿明明在天上,卻命其為“陸”,與上文所說天有獨立的存在,與從之之星、違之之日應加以區分的觀念是相符合的:星宿被看成了天上的陸地。天上的四陸與地平圈上的四個方位不能混淆,兩者又有一定的聯繫。看圖三,赤道和黃道的交點a、c分別代表春分點和秋分點,假定此時是春分日的初昏時分,太陽正位於a點(即將下山),太陽所在的西陸便正好與地平的西方一致,於是南、東、北陸的位置也確定了,分別以b、c、d標識。但如假定此時是春分日的清旦時分,太陽應位於c點(剛要出山),西陸便應與地平的東方一致,因而南、東、北陸便應分別以d、a、b來標識了。有趣的是,冬天日在北陸,當冬天的中午,北陸“從天”依赤道方向左旋到了南方的上空,比起夏天的中午位於南方上空的南陸來,反而更南。

5.日道發南,去極彌遠,其景彌長,遠長乃極,冬乃至焉。日道斂北,去極彌近,其景彌短,近短乃極,夏乃至焉。二至之中,道齊景正,春秋分焉。

此句中的“日道”,並不是太陽周年視運動走的黃道,而是太陽每天“從天而西”(左旋)所循的軌道,用數學的術語,可以說為“以黃道為準線、天球上與赤道圈平行的一束圓圈”,天球的北極正好是北極星所在的位置,這束圓圈也可以看作天球的緯度圈。春、秋分日的日道即是赤道,冬、夏至日的日道(圖三中的dd'和bb')關於赤道成對稱,其餘所有的日道都夾在dd'和bb'之間。從秋分日起,日道與北極星越來越遠,向南發散(發南),中午太陽的影子就越來越長,長到極點,也就是“發南”到極處,以dd'為日道,就是冬至日。反之,從春分日起,日道與北極星越來越近,向北收斂(斂北),中午太陽的影子就越來越短,短到極點,也就是“斂北”到極處,以bb'為日道,就是夏至日。

以上所解釋的短文,不足三百字,包含著豐富的內容,所述的知識呈現出立體相,結構相,系統相,所以必須立體地、結構地、系統地讀之,始能明白。

曆之法數——歲實和朔策

《史記》八書,律、曆、天官分為三書。前後《漢書》諸志,則律、曆並為一志,天文志另立。律管音樂,曆講曆法,以今日觀之,明明音律與曆法關係疏遠,天文與曆法關係密切,但《漢書》之後的正史裏,卻基本上都是律曆合志,天文另志。如此分合之際,頗能反映出古代思想的情實。

天文志主要記載星宿分佈,虧食異常等等,是自然客觀的現象;而律曆之事,卻有人為主觀的作用在裏面。《書•堯典》:“乃命羲和,欽若昊天,曆象日月星辰,敬授人時。”“曆象”是動詞,作謂語;“日月星辰”是名詞,作賓語。堯命重黎之後羲氏與和氏做一種官,他們不管理人事,專門“掌天地四時”。但這和現在國家設天文局等機構有著本質的區別。現在天文局的基本立場和指導思想是主客二元分化下的“認知”,原則上私人天文家也可以做同樣的事情,只是私人條件不夠,往往做不了而已。羲和之官則是天人合一的宇宙總秩序下的一個環節,不可僭代,居此官者最要緊的是必須對天抱持恭敬順從的道德態度(欽若昊天)。李約瑟《中國科學技術史》天文卷引了一句話作卷首語:“許多歐洲人把中國人看作是野蠻人的另一個原因,大概是在於中國人竟敢把他們的天文學家——這在我們有高度教養的西方人眼中是最沒有用的小人——放在部長和國務卿一級的職位上。”雖然說的是制度,卻牢牢地抓住了關於中國古代天人之際思想的這個本質。電視劇《編輯部的故事》裏,某位業餘天文愛好者用自製望遠鏡看到一個不知什麼星星正向地球撞來,斷言地球馬上就要大爆炸,引得人們恐慌萬狀。立場堅定的牛大姐始則不信,理由是“中央沒有發過檔”,繼則猶豫彷徨,終於抗不住周圍形勢的壓力,也相信了大爆炸的鬼話,沮喪地說:“看來中央也有疏忽的時候。”牛大姐關於天人之際的思想,首先當然是現代的科學認知觀,而不是古代的道德敬順態度,但她同時又堅信在科學認知上存在著一個雖非上帝卻全知全能的人間主體。這是一種比較特殊、比較怪異、很有中國特色的現代思想,信者頗眾。

“曆象日月星辰”是人對日月星辰有所作用,怎麼個作用法呢?查許氏《說文》,“曆”字凡三見。一見於“廠”部,作“厤”,釋文:“治也”,段注:“厤者調也,按調和即治之義也。”一本身即是部首,作“秝”,釋文:“稀疏適厤也”,段注遍引眾說,終歸於“調和”、“均調”之義。一見於“甘”部,作“曆”,釋文:“和也,從甘厤。厤調也。”段注:“廠部曰,厤治也。私生活秝部曰,稀疏適也。稀疏適者,調和之義。周禮,凡和,春多酸,夏多苦,秋多辛,冬多鹹,調以滑甘。此從甘厤之義也。”這第三種寫法,恰恰就是後來的“曆”字。調和即治,治即調和,是溫和輕柔的作用。中國古代的調曆之法,確實像調味一樣,味道太鹹,加點滑甘,只是一種“微調”。

《堯典》又云:“咨爾舜,天之歷數在爾躬。”協律和調曆之所以能視同一事,因為它們都是數的運用:“夫一、十、百、千、萬,所同用也;律、度、量、衡、曆,其別用也。故體有長短,檢以度;物有多少,受以量;量有輕重,平以權衡;聲有清濁,協以律呂;三光運行,檢以歷數。”[5]這裏表達的思想與古希臘畢達哥拉斯學派數的本質主義很相象。應將歷史上的“算術”和“數術”看作兩碼事,算術傾向於擺脫數字的具體意義,只對數字作形式的運作;“數術”則偏偏要從數字裏頭抉發,或向數字裏頭注射許多意義。另一方面,歷史上的算術又往往是受“數術”指導、為“數術”服務的。太初曆“以律起曆”[6],《漢書》首開律曆合志,就體現了“數術”的統領地位和指導作用。這是否略同於文革期間某種哲學對所有自然科學和社會科學的統領地位和指導作用呢?一笑。

曆法中的資料古人稱為“法數”,最重要的“法數”是回歸年的日數(歲實)和朔望月的日數(朔策),以及將歲實與朔策協調起來的“閏周”。祖沖之說:“古之六曆,並同四分”[7],即黃帝、顓頊、夏、殷、周、魯六曆,都以365又1/4為歲實。這個資料來自實測。《後漢書•曆志》云:“日發其端,周而為歲,然其景不復,四周千四百六十一日,而景初複,是則日行之終。”[8]太陽在冬至日的中午,影子最長,但相鄰兩個冬至,中午的日影並不重合,必須日行四周積1461天,日影才比較嚴格地重合,所以,經過這“千四百六十一日”,太陽才算達到了它的終點(日行之終)。太陽的這又一個週期,1461日,等於四個365日加一日,這多出來的一日平分給四年,故每年有365又1/4日。

協調歲實與朔策是有實際需要的。朔望月約29天半多一點,一個大月一個小月地排列(有時候會有兩個連大月),一年12個月共計354天,或355天,比日行一周少11天左右,不到三年就將差一個月,要是不作協調,朔望月的排列就不能反映四季氣候的推移變化,如本應是孟春的夏曆正月十年後會前移到秋天去了。所以需要適時地置閏,“以閏月定四時成歲”。《左傳•文公六年》:“閏以正時,時以作事,事以厚生,生民之道於是乎在矣。”[9]以時而作的事當然主要是農事,農事必須根據四時氣候,四時氣候根據太陽運行,置閏則是以調整月行週期的排列來反映日行週期。可見中國古代的曆法,表面上是陰曆,骨子裏是陽曆,是一種相當合理的陰陽合曆。

從顓頊曆起,各家曆術長期遵用十九年七閏的閏法,或者說,一個回歸年有12又7/19個朔望月。這個資料也是觀察的結果,《後漢書•曆志》:“察日月俱發度端,日行十九周,月行二百五十四周,復會於端,是則月行之終也。”[10]日行十九周,即19年;月行二百五十四周,即月亮254次經過恒星天背景上同一點,也即254個經天月。這段期間裏,日月合朔的次數只須以254減去19即得,等於235,即19年裏有235個朔望月。這個簡單的演算法也可以用鐘錶來例示:從隨便什麼時分如一點鐘,到下一個一點鐘,時針走了1圈,分針走了12圈,時分針相合的次數為12-1=11。19年有235個朔望月,而235=12×19+7,可見19年須置7個閏月。

只要堅持長期觀察,這個資料不難得到,這點耐心,古人是有的。但是在古代的技術水準下,朔策卻礙難直接觀測。月行速率很不穩定,在同一個週期裏,月行有遲疾,不同的朔望月,它們的長度也不一,在29天6小時到29天20小時之間,據現代測定,月平均時間為29.530588日。先秦古人的朔策是從歲實和閏法間接算得的,19年有235個朔望月,而1年有365又1/4日,故朔望月平均長度為365又1/4乘以19再除以235,等於29又499/940日(29.530851日)。

十九年是又一個週期,是月(朔望月)與歲(回歸年)的最小公倍數。“歲首至也,月首朔也,至朔同日謂之章。”[11]冬至作為歲首,朔日作為月首,如果冬至合朔在同一日,那麼經過19年,又將出現冬至與合朔同日,這個週期稱為“章”。但一章19年共計6939又3/4日,並不是整日數,於是更以4乘19等於76年,共計27759日,得到另一個週期,稱為“蔀”。蔀是日、月、歲的最小公倍數。我們可以模仿著說:“歲首至也,月初朔也,日起夜半也,至朔夜半同刻謂之蔀。”但是如果考慮干支計日,一蔀的日數不能被60整除,不是整數個甲子週期,於是又以20乘一〖FJF〗踚〖FJJ〗之年數76,等於1520年,稱為“一紀”。紀是日、月、歲、六十甲子的最小公倍數了,可以再模仿說:“歲首至也,月初朔也,日起夜半也,甲子始甲子也,至朔夜半甲子所同謂之紀。”《左傳•襄公三十年》:“二月癸未,晉悼夫人食輿人之城杞者,絳縣人或年長矣,無子而往,與於食。有與疑年,使之年。曰:‘臣,小人也,不知紀年。臣生之歲,正月甲子朔,四百有四十五甲子矣,其季於今三之一也。’”[12]一個平頭百姓,不知道自己的歲數,但記得活了多少個甲子,可見古代甲子計日的普遍性。當制訂曆法時,考慮將其與別的週期協調起來,也就不是什麼勉強的要求了。

另一方面,曆法上章、蔀、紀這樣越來越長的週期系列,確實也反映了古人將政道與天道混為一談,以圖政治之長久的思想。制訂曆法時,總希望千年一系地管用,驗諸事實,則中國歷史上改曆之頻繁,可謂首屈一指,舉世無雙。據朱文鑫《曆法通志》統計,從古六曆到太平天國的天曆,共有過102種曆法,其中私撰不曾行用的只占極少數,改曆很多是出於政治上改朝換代的原因,更重要的則是所行用之曆的法數,積久而與實際天象不能相符,“閏餘乖次,孟陬殄滅,攝提無紀,歷數失序”[13],疏闊到了不得不改的程度。漢初承秦,用顓頊曆,武帝元封七年改曆,改當年為太初元年。“太初曆”閏法依舊,為19年7閏,故“至朔同日謂之章”不變;而改朔策為29又43/81日,歲實相應為365又385/1539日。現在太初曆一章的日數是6939又61/81日,為了取得整日數,使得“至朔夜半同刻”,便須以81乘一章,得1539年,稱為“一統”。“一統”的日數也不能被60整除,甲子不復,故須“三統”,即1539乘以3等於4617年,稱為“一元”,才是日、月、歲、六十甲子的最小公倍數,所乙太初曆又稱“三統曆”。總而言之,日、月、歲、章、〖FJF〗踚〖FJJ〗、紀,是四分曆的週期系統;日、月、歲、章、統、元,是三統曆的週期系統。

已知四分曆是先有歲實,再算朔策,歲實(主要是那個“斗分”1/4)乃是實測所得,其他的資料都不難從它算出來(根據19年7閏的規則)。太初曆反之,是先有朔策,再算歲實和其他資料。那麼,朔策29又43/81=2392/81,又其來何自呢?

《漢書•律曆志》對這個朔策2392/81的來歷作了說明:“日法八十一。元始黃鐘初九自乘,一龠之數,得日法。”“月法二千三百九十二。推大衍象,得月法。”[14]古代曆算術語中,“法”與“實”相對,例如以5乘10或除10,則10為“實”(被乘數或被除數),5為“法”(乘數或除數)。將一日等分為81份,以每一小份為“實”,則一日所有的份數81即為“日法”,而一月的總份數2392,即叫“月法”。體現“法”與“實”的概念區分,43/81日,應讀作“八十一分日之四十三”,不能讀作“八十一分之四十三日”。成語“三分天下有其二”,不說“有三分之二之天下”。這些似乎反映古代曆算中的“分數”尚未從對具體事物或意義的依附中抽象出來。

太初曆法數是從“黃鐘之數”依易理推出來的。《漢書•律曆志》云:“數者,一、十、百、千、萬也,所以算數事物,順性命之理也。《書》曰:‘先其算命’(顏師古注:‘先立算數以命百事也。’)。本起於黃鐘之數,始於一而三之,三三積之,曆十二辰之數,十有七萬七千一百四十七,而五數備矣。(師古引孟康注:‘五行陰陽變化之數備於此矣。’)”[15]1、3、9、27、...直至3的11次方177147,這12個數是“黃鐘之數”,萬物皆備於此,都可以從這裏得出來。日法81,即是“黃鐘之數”之一。《志》又云:“以易大衍之數五十,用其四十九,成陽六爻,得周流六虛之象也。夫推曆生律制器,規園矩方,權重衡平,準繩嘉量,探頤索隱,鉤深致遠,莫不用焉。”[16]且看它是怎樣“推大衍象,得月法的”:“元始有象一也,春秋二也,三統三也,四時四也,合而為十,成五體。以五乘十,大衍之數也,而道據其一,其餘四十九,所當用也,故蓍以為數。以象二二之(49×2=98),又以象三三之(98×3=294),又以象四四之(294×4=1176),又歸奇象閏十九及所據一加之(1176+19+1=1196),因以再〖FJF〗*=〖FJJ〗兩之(1196×2=2392),是為月法之實。如日法得一,則一月之日數也。”[17]最後一句是說,以日法81除月法2392,等於29又43/81,即一個朔望月的日數。“實如法得一”,是古代曆算裏關於除法的典型說法。

改歲實和朔策,是一種“微調”。朔望月29天半略多,29是鐵定之數,關鍵在那個餘數,怎樣調得恰到好處呢?揆度古人的實際思路,取“黃鐘之數”81為“日法”,可能真的是出於對此類數的特殊信任和愛好,而一旦取定,朔餘之分母43也就定了,因為只有它才使得新舊朔餘的差最小。不取同樣是“黃鐘之數”的27或243的理由也在這裏:若取27,則分子只能取15,但15/27比43/81誤差大;若取243,則計算太繁複。朔策29又43/81,化成假分數得分子2392,即是月法。太初曆的作者偏不這樣說,偏要通過“元始之象”、“大衍之數”、“以象二之”、“以象三之”一連串複雜的說辭把它重新湊合出來,明明是湊合,卻又說成是推衍。這種用易理來網羅一切事實的做法,在中國思想史上,甚至在現代中國人的思想中,是普遍存在著的。始作俑者或許是故弄玄虛,傳述者則信以為真,承前啟後,輾轉滋乳,越講越玄。越玄,也就越容易給人一種什麼都說通了的似是而非的滿足。在對自然和社會人際事物的認知、解釋上,有易理的那一套在起作用,科學那一套既有普遍概念的規定性、又有具體實證的規定性的認知活動就無從生起。李約瑟說:“我們對陰陽和五行的理論的討論,指示它們對中國科學思想的發展,是有助益而非阻礙的。...但是如果以中國的科學哲學的第三個偉大成分-《易經》-言,則不易作如是良好的評價。”[18]誠哉斯言。

古代改曆的基本原理

陽曆好辦,陰曆難弄,原因在於,歲實容易測,朔策極難量。相對而言,日行比月行穩定得多,歲實只要足夠精確,其誤差得經很長時間才會積累至明顯程度,而且容易預見,容易調整。如現行西曆格利高裏曆,系1582年改訂也屬“四分曆”的儒略曆而成。四分曆歲實偏大,四百年後會多出三日,冬至將“後天”三日,即曆上的冬至比實際的冬至晚三天。格利高裏曆規定:逢整百數的年份,必須能被四百整除,才算閏年,便把多出的三天打發掉了。格利高裏曆已非常精確,要一萬年後才會又多出三天,“一萬年太久”,現在正大可不必擔心。《孟子.離婁》:“苟求其故,千歲之日至,可坐而致也。”歲實在手,一千年後的冬至日,立馬可以算得。雄辯滔滔的孟夫子可並不敢說“千歲之月朔可坐而致也。”“其故”即在於月行很不穩定,而古人排曆日只能根據朔策對月份作平均的安排(所謂“平朔”),結果常常出現曆上之朔與實際之朔錯位的情況,月朔的推算比冬至日的推算複雜得多,一般人民自己不會算(也不容許算),只能由統治者來告訴他們,於是有“頒告朔”的儀式。可以說,“千歲坐致”是長期預報,“頒告朔”則是一年一度的短期預報。

《周禮.春官.太史》:“頒告朔於邦國。”《論語.八佾》:“子貢欲去告朔之餼羊。子曰:‘賜也,爾愛其羊,我愛其禮。’”朱熹注:“告朔之禮,古者天子常以季冬,頒來歲十二月之朔於諸侯,諸侯受而藏之祖廟。月朔,則以特羊告廟,請而行之。餼,生牲也。魯自文公始不視朔,而有司猶供此羊,故子貢欲去之。子貢蓋惜其無實而枉費。然禮雖廢,羊存,猶得以識之而可復焉。若並去其羊,則此禮遂亡矣,孔子所以惜之。”[19]“頒告朔”就是每年年底預先告知來年的月日安排,“凡歲將終,奏新年曆”[20],與現在人家每年買日曆簿差不多,不同處在於,買日曆簿是百姓日用,而告朔則是“諸侯所以稟命於君親”的“禮之大者”[21]。

告朔之禮名存實亡以至於名實俱亡後,曆法方面就出現了混亂。日食必定發生在朔日,所以根據歷史上關於日食的記載,可以探知當時曆朔的安排情況。《漢書•五行志》統計:“凡春秋十二公,二百四十二年,日食三十六。《谷梁》以為朔二十六,晦七,夜二,二日一。《公羊》以為朔二十七,二日七,晦二。《左氏》以為朔十六,二日十八,晦一,不書日者二。”[22]這個統計表明,《春秋》三傳所依據的曆法各不相同。王韜在《春秋朔閏至日考》中解釋說:“周既東遷,王室衰微,天子未必頒朔,列國自為推步,故經、傳日月常有參差。”[23]所謂“古六曆”,學者早已論定:其實並不如其名稱所說的那麼古,不過是“列國自為推步”,而又假託於古罷了。

月行的週期與週期之間,長短相差可觀,象《公羊》、《穀梁》所依據的曆法,以“平朔”的方法推算月朔,而能讓36次日食中,有四分之三發生於朔日,應該說相當不錯了。問題在於,既然“古之六曆,並同四分”,歲實、朔策和閏周都相同,為什麼排出來的曆日會彼此不同,有的精確,有的粗疏呢?《漢書.曆志》:“漢興,方綱紀大基,庶事草創,襲秦正朔。以北平侯張蒼言,用顓頊曆,比於六曆,疏闊中最為微近。”[24]到了元封年間,漢興已百年,出現了“朔晦月見,弦望滿虧,多非是”[25]的情況,武帝下詔改元封七年為太初元年,同時改曆,太初曆的歲實、朔策都比四分曆的誤差大,後世劉宋朝的何承天批評太初曆“尤復疏闊”[26],事實上,以今測歲實365.24220天,朔策29.530588天為標準,在中國歷史上有過的一百多種曆法中,太初曆恰恰是“微近中最為疏闊”的一種,為什麼一段時期內,竟能做到“晦朔弦望,皆最密”[27],以致於班固盛稱其“推法密要”[28]呢?太初曆行用近二百年,“失天益遠,日、月宿度相覺浸多”[29],東漢元和二年,章下詔復行四分曆,而“後年歷數遂正”[30],這又究竟是怎麼回事呢?

這裏涉及到古代制曆的一個基本原理。朱文鑫《曆法通志》有“各曆歲實朔策表”一節。從表中不難看出,一百多種曆法的資料例多大於今測,例外是極少數。而且,每次改曆也往往並不是把資料改得更精密些,太初改四分曆,固然把資料改壞了,但是這種情況後世多有;壞資料的曆法,反而比資料較好的前曆,與實際天象符合得好一些,也屢見不一見。可見,這裏重要的並不是資料。由於資料例多偏大,一種曆法行用年久以後,就會出現“曆後天”,也不妨說為“天先曆”。改進的辦法:即使仍用原資料,甚至更壞的資料,只要將新曆的“曆元”(起始點)適當地前移,就能使新曆在一段時期內較好地符合天象。中國歷史上頻繁地改曆,除了政治因素外,原因和原理都在這裏了。

請乙太初改曆具體說明。

西漢元封七年,武帝因大中大夫公孫卿、壺遂、司馬遷等言“曆紀壞廢,宜改正朔”[31],乃詔禦史曰:“十一月甲子朔旦冬至已詹,其更以七年為太初元年。”[32]“詹”,訓作“讎”,《集解》:“讎,比校也”,“相應曰讎”。“已詹”,即已經測候校定。“已詹”在先,更年號在後,可知“十一月甲子朔旦冬至”是上一年(元封六年)的事。至朔甲子同日是很難得的,所以決定以這一日的夜半為“太初本星度新正”[33]。

《史記.曆書.曆術甲子篇》:

“太初元年,歲名‘焉逢攝提格’,月名‘畢聚’,日得甲子,夜半朔旦冬至。正北(案:夜半為子時,子位正北)。十二(歲有十二月,有閏則云十三也)。無大余,無小餘;無大余,無小餘。”

“焉逢攝提格太初元年。十二。大餘五十四,小餘三百四十八;大余五,小餘八。”

“端蒙單閼二年。閏十三。大餘四十八,小餘六百九十六;大余十,小餘十六。”[34]

案:上面第一段話是確定太初曆的曆元“新正”,太初元年的起點,既然是從新從零開始,無論什麼意義上都沒有餘數,所以連續兩個“無大餘,無小餘”。

第二段話是說太初元年年終的情況,用的是四分曆的“法數”,陰曆一年十二月積日35

4又348/940日,減去5個甲子迴圈,尚餘54又348/940日,所以說:“大餘五十四,小餘三百四十八”。冬至周365又1/4日,等於365又8/32日,減去6個甲子迴圈,尚餘5又8/32日,所以又說:“大餘五,小餘八”。

第三段話是說太初二年,這年閏,有十三個月,但計算陰曆年積日時只計十二個月,而將閏月日數加於下年積日中,上年之余加本年積日為:54又348/980+354又348/980=408又696/980,減去6個甲子迴圈,餘48又696/980日,故曰:“大餘四十八,小餘六百九十六。”冬至周積日為上年之余加上本周日數:5又8/32+365又8/32=370又16/32,減去6個甲子迴圈,餘10又16/32日,故曰:“大餘十,小餘十六。”

《甲子曆術篇》往下的條文,都可以上面所說的方法來解讀和推算。《曆術篇》共排列了一蔀七十六年,等於一本簡易的“蔀曆”。有趣的是,司馬遷雖是太初改曆的建議者,《曆術篇》中卻不用太初曆法數,而仍襲用四分曆法數,他承認新的曆元,但不滿鄧平的八十一分術,這也說明,改歷時曆元的確定比“法數”更重要。另一個值得注意之點是,司馬遷把閏月日數都加於下年積日,這似乎可以作為年終置閏的一種表示,冬至日是太陽歲行的起訖點,閏月之置,或在冬至後,或冬至在其中,都可以合乎情理地將其月之日數加積於下一年。

令人最感興趣的是:太初新曆的曆元究竟是怎樣前移的?相對於前歷來說,又前移了多少?《漢書.曆志》有一段關於昭帝元鳳年間,太史令張壽王屢屢攻擊太初曆的記載。張壽王是個頑固保守分子,他上書胡說漢元以來用的是黃帝調律曆,攻擊說“今陰陽不調,宜更曆之過也。”詔下各有關人等“雜候上林清台,課諸曆疏密。凡十一家。”“曆本之驗在於天”,讓各家曆法比賽,看誰與天象符合得最好,這裏有一點用觀察和實驗檢驗理論優劣的科學思想的味道。結果,“壽王課疏遠。”他不服,“複候”,還是他和他的信從者“課皆疏闊”。比賽比輸了,壽王仍死不買賬,“妄言”如故,“誹謗益甚,竟以下吏”。張壽王的“妄言”中,倒有一句正好對我們感興趣的問題透露了實質性的消息。“太初曆虧四分日之三,去小餘七百五分,以故陰陽不調,謂之亂世。”[35]

太初六年的十一月,至、朔、甲子同日,這是客觀的符同,已經測候詹定。不難算出四分曆的誤差是三百年朔差一日,四百年至差三日,原用顓頊曆雖有違失,但誤差還沒有積累到“後天”一日以上,故顓頊曆上,那一個甲子日也是至朔並同。問題在於,一日是一段時間,有十二個時辰,至朔所交的時分,可以各曆並不相同。馬遷《曆術篇》規定至朔並交於那一日的夜半時分,建立了一個新的起點,張壽王攻擊這種做法是“虧四分日之三,去小餘七百五分”,造成“陰陽不調”的“亂世”。夜半以後經過“四分日之三”,那是傍晚;“小餘七百五分”,除以“〖FJF〗踚〖FJJ〗月”九百四十,也約等於四分之三,可見在原用顓頊曆上,那一天至朔都交於傍晚時分。“虧”掉“四分日之三”,“去”掉“小餘七百五分”,將曆元前移到那一日的夜半,這就是太初曆的主要改進。這一步改進,把顓頊曆已經有所積累的“後天”因素一下子潛移掉了,從而使得資料“尤複疏闊”的太初曆一段時間內反而更管用。張壽王的“妄言”,不僅使我們得以探明太初改曆的具體要點,且使我們可以藉此溯知前用顓頊曆的某些情況。

用“前移”的方法克服“曆後天”,西方人也這麼做過。西方人重視春分,因為它與原來根據陰曆推算的復活節密近。西元325年的春分在3月21日,當年召開的尼西亞主教會議,索性將復活節規定在3月21日春分那一天。到了1582年教皇格利高裏十三世下令改革儒略歷時,春分已經飄移到3月11日去了,曆後天達10日之多。為了讓復活節和春分仍在同一日,教皇乃下令當年十月份減去10天,10月4日星期四的翌日便是10月15日星期五。於是第二年,即1583年,春分又在3月21日了。關於這一點,格利高里改曆和太初改曆,本質上沒有什麼不同。所不同的是,陽曆不需考慮月行,不存在曆對月相的先天後天問題,所以好辦得多,格利高里改曆使回歸年日數高度精密化,一次前移,便可千年不移。而中國所行陰陽合曆,曆日要同時符合日躔月離,稍有差失,即須改動,中國雖然歷史悠久,但行用最久的明大統曆,也只不過用了276年,而明代以前的近百種曆法,沒有行用超過200年的,多數只用了幾十年,甚至只有幾年。

且不談同時行用幾種不同曆法的情況。頻繁改曆,曆與曆接榫處往往情況複雜,後人要排出前面世代的明細長曆,做到絕對精確,是極其困難的。陳寅恪《柳如是別傳》第三章,有一段考證,因云間陳臥子“癸酉長安除夕”詩(有“去年此夕舊鄉縣,紅妝綺袖燈前見”句),考得“臥子等實於崇禎五年壬申除夕參預河東君在內之花叢歡宴。”又考得錢肇鼇《質直談耳》中柳如是約徐三公子“臘月三十日當來”一事,當亦指崇禎五年除夕而言。陳寅恪接著發問:“檢近人所推算之明代年曆,崇禎五年六年七年,十二月皆小盡。唯四年八年,十二月大盡。肇鼇是否未曾詳稽當時所用之官曆,遂以五年除夕為臘月三十日。抑或肇鼇所言無誤,而近人所推算之明曆,不合實際?”[36]陳寅恪又檢出錢牧齋“(崇禎十四年)二月十二日橫山晚歸作”詩,“最是花朝並春半”句,而云:“可證牧齋當日所依據之官曆,崇禎十四年二月十二日為春分節。但近人所推算之明代年曆,則崇禎十四年春分節在二月十日,相差兩日。吾人今日因未得見明代官曆,不能決定其是非。故此問題,可置不論。”[37]陳寅恪以嚴謹的讀史態度,對後人推算之前曆,不敢盡信。明代尚屬近古,至中古甚至上古,更何敢盡信乎?

[1]《後漢書》,中華版,第11冊,頁3055。
[2]《錢寶琮科學史論文選集》,頁345。
[3]《春秋三傳》,上海古籍出版社,1987年3月,頁420。
[4]《新唐書•曆志》,第2冊,頁600。一行“大衍曆•日度議”中語。
[5]《後漢書》,第11冊,頁2998。
[6]《漢書》,第4冊,頁975。
[7]《宋書•律曆志》,第1冊,頁313。
[8]《後漢書》,第11冊,頁3057。
[9]《春秋三傳》,頁224。
[10]《後漢書》,第11冊,頁3057,3058。
[11] 同上,頁3056。
[12]《春秋三傳》,頁403。
[13]《史記》,第4冊,頁1257。
[14]《漢書》,第4冊,頁991。
[15]《漢書》,第4冊,頁956,957。
[16] 同上,頁956。
[17] 同上,頁983。
[18] 陳立夫等譯《中國古代科學思想史》,頁381。
[19]《四書章句集注》,中華書局1983年版,頁66。
[20]《後漢書•百官志》,第12冊,頁3572。
[21]《四書章句集注》,頁66。
[22]《漢書》,第5冊,頁1500。
[23]《春秋曆學三種》,中華書局1959年11月,頁101。
[24]《漢書》,第4冊,頁974。
[25]同上。
[26]《曆法通志》,頁67。
[27]《漢書》,第4冊,頁976。
[28]同上,頁979。
[29]《後漢書》,第11冊,頁3026。
[30]同上,頁3027。
[31]《漢書》,第4冊,頁975。
[32]《史記》,第4冊,頁1260。
[33]《漢書》,第4冊,頁975。
[34]《史記》,第4冊,頁1262-1265。
[35]《漢書》,第4冊,頁978。
[36]《柳如是別傳》,上冊,頁71。
[37] 同上。



為什麼學習古代漢語要學點天文學 王力 中國先秦史論壇轉載

我們學習古代漢語,是為了培養閱讀古書的能力。而我們的古書中,有不少地方講到天文,所以我們要學點天文學。又有一些地方講到曆法,所以我們要有曆法的知識。而曆法是和天文密切相關的,要學歷法,必須先學天文。

明末大學者顧炎武說:

三代以上,人人皆知天文。‘七月流火’,農夫之辭也;‘三星在天’,婦人之語也;‘月離於畢’,戍卒之作也;‘龍尾伏辰’,兒童之謠也。後世文人學土,有問之而茫然不知者矣。①

“七月流火”,出於《詩經•豳風•七月》,這是大家熟悉的詩句。但是這句話一向得不到正確的解釋,直到戴震才講清楚了。余冠英先生在《詩經選》注云:“火,或稱大火,星名,即心宿。每年夏曆五月,黃昏時候,這星當正南方,也就是正中和最高的位置。過了六月就偏西向下了,這就叫作流。”這是傳統的解釋,但這是不妥當的。戴震依照歲差來解釋,周時六月心宿才中天,到七月才向西流。

“三星在天”,出於《詩經•唐風•綢繆》。三星,指心宿。第二章“三星在隅”,第三章“三星在戶”,也是指心宿。有人說,第一章指參宿三星,第二章指心宿三星,第三章指河鼓三星,不可信。毛傳以三星為參宿三星,亦通。那要看詩人作詩的時令了。

“月離於畢”,出於《詩經•小雅•漸漸之石》。畢,指畢宿。“月離於畢”,是月亮走到畢宿的意思。據說月離於畢將有大雨。

“龍尾伏辰”,出於《左傳》僖公五年。原文是:

童謠云:“丙之晨,龍尾伏辰,袀服振振,取虢之旗,鶉之賁賁,天策焞焞,火中成軍,虢公其奔!”其九月、十月之交乎。丙子旦,日在尾,月在策,鶉火中,必是時也。

這短短的一段話,有天文,有曆法。②童謠的大意是說,十月初一日清晨,晉國將進攻虢國,虢公將出奔。丙,這裏指丙子日。古人以干支紀日。龍尾,即尾宿。尾宿是東方青龍七宿的第六宿,所以叫做龍尾。辰,又寫作“◆[上辰下會]”,是日月交會的意思。夏曆指日月交會為朔日,朔日就是每月的初一。伏,是隱藏的意思。太陽在尾宿,故尾宿隱藏不見。鶉,指鶉火星,在柳宿九度至張宿十六度之間。按,《禮記•月令》:“孟冬之月,日在尾,昏危中,旦七星中”。這裏所謂鶉,當指星宿。火中,就是“鶉火中”的意思。天策,星名。日在尾,月在策,月亮比太陽走得快,半夜日月交會於尾宿,到了天明,月亮已經走到了天策星的所在了。

下面按經、史、子、集,舉例說明學習古代漢語要學點天文的重要性。

一、經部

《書•堯典》:

乃命羲和,欽若昊天,曆象日月星辰,敬授民時。
日中星鳥,以殷仲春;
日永星火,以正仲夏;
宵中星虛,以殷仲秋;
日短星昴,以正仲冬。

“日中”、“宵中”指晝夜平分,即春分、秋分。“日永”即晝長夜短,指夏至。日短,即晝短夜長,指冬至。春分之日,昏七星中,七星是朱雀七宿的第四宿,所以說“日中星鳥”;夏至之日,昏心中,心宿又名大火,所以說“日永星火”;秋分之日,昏虛中,所以說“宵中星虛”;冬至之日,昏昴中,所以說“日短星昴”。古人不懂歲差,所以得不到正確的解釋,只好含糊其辭。例如《禮記•月令》說:“仲冬之月,日在鬥,昏東壁中。”那麼,應該說“日短星壁”,怎麼說成“日短星昴”呢?所以孔穎達只好含糊其辭,說“昴,白虎之中星,亦以七星並見,以正冬之三節”。直到唐一行才解了這個謎,宋蔡沈《書集傳》采用僧一行的說法,以歲差的道理證明,堯時冬至日在虛,昴昏中。

《書•堯典》:

朞,三百有六旬有六日,以閏月定四時,成歲。

這是說,太陽一周天共三百六十五又四分之一日,舉整數來說,就是三百六十六日。陰曆每年只有二百五十四日(或二百五十五日),所以要用閏月來解決陰陽曆的矛盾,否則春夏秋冬四時就亂了。“歲”和“年”不同:“歲”指陽曆,“年”指陰曆,所以說“以閏月定四時成歲。”

《詩•召南•小星》:

嘒彼小星,維參與昴。

參,參宿。參宿七星,均屬獵戶座,白虎七宿之末宿。昴,昴宿。昴宿七星,六屬金牛座,白虎七宿之第四宿。

《詩•鄘風•定之方中》:

定之方中,作於楚宮。揆之以日,作於楚室。

定,星名,即室宿,又名營室。中,中天。夏曆十月(孟冬),昏營室中,這時可以營造宮室。揆,量度。樹立八尺的臬(測日影的標杆),度太陽出入之影,以定東西;又參照太陽正中之影,以正南北。

《詩•鄭風•女曰雞鳴》:

女曰雞鳴,士曰昧旦。子興視夜,明星有爛。”

“明星”,星名,即啓明。啓明是金星的別名。由於它比太陽先出,所以叫“啓明”。金星晨見東方為啓明,昏見西方為長庚。

《詩•小雅•大東》:

維天有漢,監亦有光。跂彼織女,終日七襄。

雖則七襄,不成報章;睕彼牽牛,不以服箱。東有啓明,西有長庚。有救天畢,載施之行。

維南有箕,不可以簸揚;維北有鬥,不可以挹酒漿。維南有箕,載翕其舌;維北有斗,西柄之揭。

漢,指銀河;織女,指織女星。牽牛,指牛宿(不是“牽牛星”)。箕,指箕宿;舌,指箕宿下邊的兩星。斗,指斗宿,即南斗(不是北斗)。柄,指斗柄。

二、史部

《左傳》僖公五年:

凡分、至、啓、閉,必書雲物。

分,指春分、秋分;至,指夏至、冬至;啓,指立春、立夏;閉,指立秋,立冬。

《史記•天官書》:

北斗七星,所謂璇璣玉衡,以齊七政。杓携龍角,衡殷南斗,魁枕參首。

《索隱》引《春秋運斗樞》:“斗第一,天樞;第二,璇;第三,璣;第四,權;第五,衡;第六,開陽;第七,搖光。第一至第四為魁,第五至第七為杓(biao)。携,連。龍角,即角宿。殷,中。南斗,即鬥宿六星。參,指參宿。

《漢書•天文志》:

漢元年十月,五星聚於東井。以曆推之,從歲星也。

漢元年十月,是沿用秦代的十月,等於夏曆七月。五星聚,也叫五星聯珠,指金、木、水、火、土五行星同時並見於一方。東井,即井宿。歲星,即木星。

《後漢書•天文志》:

元初元年三月癸酉,熒惑入輿鬼。

元初元年三月癸酉,即漢安帝元初元年(公元一一四年)陰曆三月十二日。熒惑,即火星。輿鬼,即鬼宿。

三、子部

《呂氏春秋》:

孟春之月,日在營室,昏參中,旦尾中。
仲春之月,日在奎,昏弧中,旦建星中。
季春之月,日在胃,昏七星中,旦牽牛中。
孟夏之月,日在畢,昏翼中,旦婺女中。
仲夏之月,日在東井,昏冗中,旦危中。
季夏之月,日在柳,昏心中,旦奎中。
孟秋之月,日在翼,昏鬥中,旦畢中。
仲秋之月,日在角,昏牽牛中,旦觜巂中。
季秋之月,日在房,昏虛中,旦柳中。
孟冬之月,日在尾,昏危中,旦七星中。
仲冬之月,日在鬥,昏東壁中,旦軫中。
季冬之月,日在婺女,昏婁中,旦氐中。

孟春,正月;仲春,二月;季春,三月;孟夏,四月;仲夏,五月;季夏,六月;孟秋,七月;仲秋,八月;季秋,九月;孟冬,十月;仲冬,十一月;季冬,十二月。日,太陽。在,指太陽行到什麼星宿的所在,叫做“日躔”。昏,黃昏時候;旦,天亮時候。中,中天,指某星宿走到了正中最高的位置。營室、參、尾、奎、胃、七星,牽牛、畢、翼、婺女、東井、亢、危、柳、心、斗、角、觜巂、房、虛、東壁、軫、婁、氐,都是星宿名。營室,即室宿;七星,即星宿;牽牛,即牛宿;婺女,即女宿;觜巂,又作觜觿(gui),即觜宿;東壁,即壁宿。弧,即弧矢,星名,在鬼宿之南,近井宿。建星,近斗宿。

讀《左傳》“宮之奇諫假道”時,可以拿《呂氏春秋》對照。《呂氏春秋》說:“孟冬之月,日在尾,昏危中,旦七星中。”《左傳》的“龍尾伏辰”就是日在尾;“鶉之賁賁”、“火中成軍”,就是旦七星中,因為七星是屬於鶉火這個星次的。

《淮南子•天文訓》:

十五日為一節,以生二十四時之變。鬥指子則冬至;加十五日指癸,則小寒;加十五日指醜,則大寒;距日冬至四十六日而立春;加十五日指寅,則雨水;加十五日指甲,則雷驚蟄;加十五日指卯,中繩,故曰春分;加十五日指乙,則清明;加十五日指辰,則穀雨;加十五日則春分盡,故曰有四十六日而立夏;加十五日指巳,則小滿;加十五日指丙,則芒種;加十五日指午,則陽氣極,故曰有四十六日而夏至;加十五日指丁,則小暑;加十五日指未,則大暑;加十五日而夏分盡;故曰有四十六日而立秋;加十五日指申,則處暑;加十五日指庚,則白露降,加十五日指酉,中繩,放曰秋分;加十五日指辛,則寒露;加十五日指戌,則霜降;加十五日則秋分盡,故曰有四十六日而立冬;加十五日指亥,則小雪;加十五日指壬,則大雪。加十五日指子,故十一月日冬至。③

這是講二十四節氣。十五日為一個節氣。④二十四時,這裏指二十四個節氣。斗,指北斗的斗柄。子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥、甲、乙、丙、丁、戊、己、庚、辛、壬、癸,指斗柄所指的方向。中繩,指晝夜平分。這一段話說明瞭天文和曆法的關係。

《論衡•偶會篇》:

火星與昴星出入,昴星低時火星出,昴星見時火星伏。

火星,即心宿;昴星,即昴宿。見,出現。伏,不出現。心宿在東方,昴宿在西方,此出彼沒,各不相見。這與“參商不相見”是一樣的道理。

四、集部

《古詩十九首》之七:「玉衡指孟冬,衆星何歷歷!…南箕北有斗,牽牛不負軛。」

玉衡,北斗第五星,這裏指斗柄,指孟冬,斗柄指著陰曆十月的方向,即亥方(參看上文所引《淮南子•天文訓》)。南箕,南有箕宿。北有斗,北有斗宿。斗指南斗,由於在箕宿之北所以說“北有斗”。牽牛不負軛,即《詩經》”睕彼牽牛,不以服箱”的意思。

《古詩十九首》之十:

迢迢牽牛星,皎皎河漢女。纖纖擢素手,札札弄機杼。
河漢清且淺,相去複幾許。盈盈一水間,脉脉不得語。

牽牛星,這裏指河鼓。河鼓三星,與織女星隔河相對。河漢,指銀河。河漢女,指織女。

曹植《洛神賦》:「嘆匏瓜之無匹兮,咏牽牛之獨處。」

匏瓜,星名,一名天雞,在河鼓東。牽牛,這裏也是指河鼓。

王勃《滕王閣序》:「星分翼軫,地接衡廬。」

翼軫,指翼宿和軫宿。據《越絕書》,翼軫是南郡、南陽、汝南、淮陽、六安、九彙、廬江、豫章、長沙的分野。

駱賓王《獄中咏蟬》詩:「西陸蟬聲唱,甫冠客思深。」

西陸,指昴宿,這裏指秋天。司馬彪《續漢書》“日行西陸謂之秋。”南冠,指囚犯。《左傳》成公九年:“南冠而繫者誰也?”

陳子昂《春夜別友人》詩:「明月隱高樹,長河沒曉天。」

長河,指銀河。

沈佺期《夜宿七盤嶺》詩:「山月臨窗近,天河入戶低。」

天河,指銀河。

張說《恩救麗正殿書院宴應制》詩:「東壁圖書府,西園翰墨林。」

東壁,即壁宿。《晉書•天文志》:“東壁二星,主文章,天下圖書之秘府也。”

岑參《冬夜宿仙游寺》詩:「太乙連太白,兩山知幾重?」

太乙太白,皆星名。這裏指終南山。

李白《蜀道難》詩:「捫參曆井仰脅息,以手撫膺坐長嘆。」

參,參宿;井,井宿。參宿是益州的分野,井宿是雍州的分野。蜀道跨益雍二州,故云。

杜甫《贈衛八處士》詩:「人生不相見,動如參與商。」

參,參宿。商,即心宿。參在西,商在東,所以不能同時出現在天空。

杜甫《秋日送石首薛明府》詩:「紫微臨大角,皇極正乘輿。」

紫微,星座名,三垣之一,古人認為是天帝之座。大角,星名,是北天的亮星,即牧夫座α星,古人以為是天王座。

杜甫《贈王二十四侍郎契》詩:「一別星橋夜,三移斗柄春。」

星橋,即七星橋。《華陽國志》:“李冰守蜀,造橋七,上應鬥魁七星。”斗柄,指北斗的柄。三移斗柄春,指時間過了三年。斗杓指東,天下皆春。

杜甫《送李八秘書赴杜相公幕》詩:「南極一星朝北斗,五雲多處是雲台。」

北斗,即大熊座。三台,上臺、中台、下臺,共六星。《晉書•天文志》:“在人曰三公,在天曰三台。”

杜甫《泊松滋江亭》詩:「今宵南極外,甘作老人星。」

南極,泛指南天,也專指老人墾。老人,星名,即龍骨座,在弧矢南。古人以為是壽星,指壽。

韓愈•孟郊《城南聯句》:「文升相照灼(愈),武勝屠攙搶。」

攙搶(cheng),也作攙槍,天攙,天搶,慧星名。《史記•司馬相如傳》正義引《天官書》:“天攙長四文,末銳;天搶長數丈,兩頭銳。其形類慧也。”

蘇軾《江城子》詞:「會挽雕弓如滿月,西北望,射天狼。」

天狼,星名,即大犬座α星。《晉書•天文志》:“狼一星,在東井南,為野將,主侵掠。”

秦觀《鵲橋仙》詞:「纖雲弄巧,飛星傳恨,銀漢迢迢暗度。」

飛星,指牛郎,織女;銀漢,指銀河。

以上所舉經史子集的一些例子,足以說明我們讀古書需要具備一點天文曆法的知識。

***

讀古史的人,應該知道古代的曆法。古代以干支紀日,逢朔日則加“朔”字。從朔日可以推知某月某日。例如《左傳》僖公三十二年:“冬,晉文公卒。庚辰,將殯於曲沃。”我們推知庚辰是魯僖公三十二年十二月十日。《資治通鑒•肥水之戰》:“八月戊午,堅遣陽平公融督張蚝,幕容垂等步騎二十五萬為前鋒。……甲子,堅發長安戍卒六十餘萬。”我們推知戊午是晉太元八年(公元三八三年)八月初二日,甲子是八月初八日,因為八月朔日(初一)是丁巳。那麼,我們怎麼知道哪一天是朔日呢?那就是天文學的問題。日月交會之日為朔日。所謂合朔。

每月最後一日叫做“晦”,最初一日叫做“朔”,“晦”與“朔”是相連的,晚上沒有月光,所以叫“晦”。《說文》有一個“眺”字云:“晦而月見西方謂之眺”。這是曆法未密之所致。

《春秋經•襄公》二十七年:“冬十有二月,乙卯朔,日有食之。”《左傳》:“十一月乙亥朔,日有食之。辰在申,司曆過也,再失閏矣。”這裏有兩個問題:(一)《春秋》經所載日食的月日與《左傳》不同,是誰錯了?(二)《左傳》說是“失閏”,為什麼?這也都是曆法問題。杜預說:《左傳》是對的,因為依長曆推算,應該是十一月,不是十二月。杜預又說:周曆十一月等於夏曆九月,夏曆九月應該是鬥建指戌,不該是指申(“辰在申”)。魯文公十一年三月甲子到襄公二十七年共七十一年,應該有二十六個閏月,現在按長曆推算只有二十四個閏月,可見漏了兩個閏月(“再失閏”)。依杜預的意見,這裏應該說九月乙亥朔才對(等於夏曆七月),這是春秋時代司曆(主管曆法的官)的錯誤。

由此可見,讀古史的人要懂一點曆法;而要懂一點曆法,必須先懂一點天文。

————————————————————
①顧炎武《日知錄》卷三十。

②這一段話在《古文觀止》和我主編的《古代漢語》的《宮之奇諫假道》裏被删去了,因為難懂。

③原文略有删節。

④實際上是十五日多一點。
arrow
arrow
    全站熱搜

    FguHistoryAlumni 發表在 痞客邦 留言(0) 人氣()