正文

杜甫詩(shī)文中的歷法問(wèn)題

唐詩(shī)與唐史論集 作者:謝思煒 著


杜甫詩(shī)文中的歷法問(wèn)題

杜甫詩(shī)文中有一些篇章涉及歷法問(wèn)題,而歷法是專門(mén)之學(xué),舊時(shí)注家未必深通其術(shù),所以解說(shuō)中難免出現(xiàn)一些誤解,或者對(duì)某些文句茫然不知其解。這不能不說(shuō)是一個(gè)缺憾。本文僅就習(xí)學(xué)所得一二,對(duì)其中幾個(gè)問(wèn)題試加探討。

大歷年間,杜甫在夔州作《雨》詩(shī)一首。由于涉及歷法問(wèn)題,作品編年也產(chǎn)生爭(zhēng)議:

冥冥甲子雨,已度立春時(shí)。輕箑煩相向,纖恐自疑。煙添才有色,風(fēng)引更如絲。直覺(jué)巫山暮,兼催宋玉悲。

宋人趙次公謂:“按《資治通鑒》,大歷二年正月辛亥朔,至十三日甲子。但不知立春在前相去幾日,以無(wú)《長(zhǎng)歷》考之也。今立春矣,值春甲子而雨,則將有諺語(yǔ)千里之旱,不亦可憂乎?”系此詩(shī)于大歷二年(767)。黃鶴注謂:“按《舊史》,大歷元年正月丁巳朔,則是初八日為甲子。史又云自春旱,至六月庚子始雨,卻與唐諺合。公是時(shí)在云安。其年十一月甲子日長(zhǎng)至,方改為大歷元年。若大歷二年,甲子在正月十三日,而立春已在元年十二月二十六七,無(wú)容謂甲子雨‘已度立春時(shí)’也?!?sup>黃鶴注的意思是大歷二年正月十三日甲子,而立春在此前的十二月二十六七日,自然不可能有自甲子日下雨直至立春的情況,因此改系此詩(shī)于大歷元年(766)云安作。與趙次公相比,黃鶴當(dāng)是認(rèn)真核查了歷日,故下此判斷。

明代王嗣奭對(duì)宋人舊注提出不同意見(jiàn):“先雨而度立春,是冬甲子雨,而注引春甲子,誤。按諺:‘冬雨甲子,雪飛千里?!戏降嘏什谎┒?。注引‘赤地千里’,是年春旱,又誤?!?sup>意思是說(shuō)此甲子日并非是春正月甲子,而是立春前的冬甲子。這樣就解釋了自甲子雨而至立春的問(wèn)題。但是他沒(méi)有說(shuō)明冬甲子的日期(應(yīng)在十一月),對(duì)此詩(shī)系年也沒(méi)有發(fā)表意見(jiàn)。清仇兆鰲注引用了王嗣奭說(shuō),系年則從黃鶴注,此外未加任何解釋,或許并沒(méi)有在意此二人說(shuō)法中可能包含的問(wèn)題。

以上三人說(shuō)法中,王嗣奭說(shuō)最不可取。如果依王說(shuō),此甲子日是冬甲子,在立春前,而非在立春后,那么如黃鶴注已查明的,大歷二年立春在大歷元年十二月二十六七日(實(shí)為二十七日戊申。古人以冬至為二十四節(jié)氣之首,兩個(gè)冬至之間即是一個(gè)回歸年),大歷元年立春在永泰元年(765)十二月十六日癸卯。據(jù)此可以推算出,大歷二年前的冬甲子至立春為44天,大歷元年前的冬甲子至立春為39天。不論是在夔州還是在其他地方,哪有可能一冬下如此長(zhǎng)雨?況且詩(shī)里所描寫(xiě)的情景也全非如此。王嗣奭的牽強(qiáng)解釋實(shí)乖謬于常識(shí)。

黃鶴通過(guò)核查歷書(shū),改動(dòng)此詩(shī)系年,思路似較前人嚴(yán)密,但其說(shuō)法其實(shí)是站不住腳的。因?yàn)橹灰獡?jù)其思路追究一下就會(huì)發(fā)現(xiàn),即使將此詩(shī)作年提前到大歷元年,立春同樣在正月甲子日前,而且更為提前,達(dá)21天,而大歷二年是16天。因而改動(dòng)系年不但沒(méi)有解決問(wèn)題,反而使問(wèn)題更難解釋。實(shí)際上,根據(jù)歷法常識(shí)可以知道,只有將此詩(shī)作年后移,甲子日才會(huì)出現(xiàn)在立春之前。因?yàn)橐粋€(gè)回歸年(即二十四節(jié)氣一個(gè)循環(huán))為365日,比六十甲子的倍數(shù)360日多出5日。只有將此詩(shī)作年后移三年以上,甲子日才會(huì)跑到立春之前。但這時(shí)杜甫不但已離開(kāi)夔州,甚至已離開(kāi)人世。黃鶴看來(lái)沒(méi)有料到他的推論如此經(jīng)不住推敲,這是因?yàn)樗麑?duì)歷法知識(shí)不熟悉,或者查歷書(shū)沒(méi)有查到底。

事實(shí)上,黃鶴等人對(duì)詩(shī)意本身理解有誤,才導(dǎo)致對(duì)系年的不必要改動(dòng)。詩(shī)云“冥冥甲子雨,已度立春時(shí)”,是說(shuō)甲子這天下雨,而這一天已在立春之后,并不是說(shuō)自甲子日下雨一直下到立春。大歷二年正月甲子日在立春之后,這并沒(méi)有什么特別之處(大歷元年、三年、四年也是如此),而恰好這一天下雨,使詩(shī)人想到了俗諺所說(shuō)“春雨甲子,赤地千里”(見(jiàn)《朝野僉載》卷一,趙次公注已引)。在以上注家中,只有趙次公沒(méi)有誤會(huì)詩(shī)意,其他人都被黃鶴引導(dǎo)到錯(cuò)誤方向上去了,這至少說(shuō)明注家都沒(méi)有肯再去核實(shí)黃鶴提出的歷法問(wèn)題,而其實(shí)這是一個(gè)很簡(jiǎn)單的算術(shù)問(wèn)題。

為了顯示自己的博學(xué)多才,杜甫在一些文章寫(xiě)作中直接安插進(jìn)了歷法內(nèi)容。天寶年間,杜甫在長(zhǎng)安獻(xiàn)三大禮賦,其中《朝獻(xiàn)太清宮賦》寫(xiě)到:

帝之苗裔,坤之紀(jì)綱。土配君服,宮尊臣商。起數(shù)得統(tǒng),特立中央。且大樂(lè)在懸,黃鐘冠八音之首;太昊斯啟,青陸獻(xiàn)千春之祥。

清朱鶴齡注此文,引《史記·歷書(shū)》及《索隱》黃鐘為律之首之說(shuō),又引《漢書(shū)·律歷志》“黃鐘為天統(tǒng)”之說(shuō)。仇兆鰲注又引《律歷志》“數(shù)從統(tǒng)首日起算”及“以閏法乘日法得統(tǒng)法”之說(shuō)。

在《有事于南郊賦》中杜甫又寫(xiě)到:

蓋九五之后,人人自以遭唐虞;四十年來(lái),家家自以為稷卨。王綱近古而不軌,天聽(tīng)貞觀以高揭。蠢爾差僭,粲然優(yōu)劣。宜其課密于空積忽微,刊定于興廢繼絕。而后睹數(shù)統(tǒng)從首,八音六律而惟新;日起算外,一字千金而不滅。

朱鶴齡注此文“數(shù)統(tǒng)從首”引《律歷志》“數(shù)從統(tǒng)首日起算”之說(shuō)。此外引《唐書(shū)》開(kāi)元中僧一行造《大衍歷》、歷成張說(shuō)等上之事,認(rèn)為“課密”以下蓋指此而言。

以上兩段文字安插在三大禮賦中,相互呼應(yīng),從中可以看出作者有某種整體布局上的考慮。這兩段話的內(nèi)容則主要是依據(jù)《漢書(shū)·律歷志》所載劉歆《三統(tǒng)歷》之說(shuō),用音律學(xué)和象數(shù)《易》學(xué)來(lái)解釋歷法?!度y(tǒng)歷》“日法八十一”,即分一日為八十一分,“元始黃鐘,初九自乘,一龠之?dāng)?shù)”(《漢書(shū)·律歷志下》),認(rèn)為這一數(shù)字是以黃鐘律管九寸自乘而來(lái)。又“統(tǒng)法一千五百三十九,以閏法乘日法,得統(tǒng)法”,即以閏法19(指十九年七置閏)乘日法81,得1539,為一統(tǒng)的年數(shù),也是統(tǒng)術(shù)運(yùn)算中的日分?jǐn)?shù),在許多運(yùn)算中被用作分母。這即是所謂的“起數(shù)得統(tǒng)”。杜甫引用這一說(shuō)法,是用來(lái)說(shuō)明唐應(yīng)土德,其位中央,其音宮,而君亦為宮,律中黃鐘,而黃鐘則是歷法中統(tǒng)法數(shù)據(jù)的來(lái)源。劉歆為歷法數(shù)據(jù)尋找音律的根據(jù),以此來(lái)證明天道運(yùn)行有某種數(shù)學(xué)規(guī)則的神秘性。杜甫則以此來(lái)論證唐德所在(實(shí)際上,后代歷法已不再勉強(qiáng)與黃鐘律數(shù)配合),并順帶顯示了自己在歷法和數(shù)學(xué)方面的修養(yǎng)。

至于“數(shù)統(tǒng)從首”、“日起算外”兩句,則是講《三統(tǒng)歷》統(tǒng)術(shù)中推(天)正月朔的方法。“數(shù)從統(tǒng)首日起算外,則朔日也”(《律歷志》),即以60(干支一周數(shù))除積日,所馀數(shù)(大馀)首日干支與統(tǒng)首日干支同,從此日起算,可求得朔日干支。王先謙《漢書(shū)補(bǔ)注》所引錢大昕、董祐誠(chéng)等人之說(shuō),有詳明解說(shuō),是朱鶴齡、仇兆鰲二人所未及見(jiàn)的。朱、仇二人只能勉強(qiáng)給出《律歷志》中“統(tǒng)首”的出處,但又拉雜引了其他一些不相干的說(shuō)法,說(shuō)明他們對(duì)這些歷法術(shù)語(yǔ)并不真正理解。

從這兩句來(lái)看,杜甫對(duì)統(tǒng)術(shù)的計(jì)算方法似乎頗有心得,不然也不會(huì)接連使用“統(tǒng)首日”、“算外”這兩個(gè)相當(dāng)冷僻的專門(mén)術(shù)語(yǔ)。果然,好像是有意為了證實(shí)這一點(diǎn),上元二年(761)杜甫在蜀州為縣令王潛作《唐興縣客館記》,文末忽然別出心裁:

自辛丑歲秋分大馀二,小馀二千一百八十八,杜氏之老記已。

結(jié)尾這幾句話一下難倒了諸位注家。朱注在此下仍引《漢書(shū)·律歷志》推正月朔法,仇注引黃百家之說(shuō):“杜記蓋謂秋分后二日之二十馀刻耳?!?sup>顯然是逞臆之言。楊倫則直言:“末大馀小馀,即觀朱釋亦未明。”在筆者閱讀范圍內(nèi),尚未見(jiàn)到其他精于歷算的學(xué)者有馀暇顧及杜甫此文。

此處所言秋分大馀、小馀,是求節(jié)氣的干支日及時(shí)刻。在歷法中,要首先推求天正冬至(歷代歷法冬至均固定在十一月)大馀、小馀,然后依次求其他節(jié)氣的大馀、小馀。在《三統(tǒng)歷》中,統(tǒng)法(日分?jǐn)?shù))為1539,兩個(gè)冬至日間的年長(zhǎng)為365日,棄去可為60除盡的360整日,馀數(shù)為日。以入統(tǒng)以來(lái)歲數(shù)乘之,所得稱積策馀日,大馀即其整數(shù)部分(日數(shù))滿60除去后之馀數(shù),小馀即不足一日的日分?jǐn)?shù)。將冬至大馀加45(滿60仍除去),小馀加1010(滿1539除去,同時(shí)大馀加1),即次節(jié)立春大馀、小馀。依次可推出八節(jié)的大馀、小馀。

但《三統(tǒng)歷》的統(tǒng)法為1539,故小馀應(yīng)<1539。杜甫此文所給出的秋分小馀為2188,顯然與此不符。朱鶴齡?!岸А币蛔鳌叭А保鹱⒅^“二千”或作“一千”,都不可據(jù)。事實(shí)上,此數(shù)據(jù)并非依據(jù)《三統(tǒng)歷》,而是另有來(lái)歷。朱鶴齡曾認(rèn)為《有事于南郊賦》借漢言唐,所指為一行造《大衍歷》事。此文則提供了一個(gè)確實(shí)的證據(jù),證實(shí)了杜甫是依據(jù)《大衍歷》來(lái)進(jìn)行此次演算。以下就依據(jù)新舊《唐書(shū)·歷志》所載《開(kāi)元大衍歷經(jīng)》“大衍步中朔第一”部分,對(duì)這兩個(gè)數(shù)據(jù)加以驗(yàn)算。

《大衍歷》稱上元以來(lái)年數(shù)為積算,給出上元至開(kāi)元十二年(724)積算為96961740算(年)。據(jù)此,上元至肅宗上元二年(761)的積算為96961777年?!洞笱軞v》所定通法(日分?jǐn)?shù),在《三統(tǒng)歷》中稱統(tǒng)法)為3040分,一回歸年所含日分共1110343分,稱策實(shí)。其算法的文字表述是:

推天正中氣,以策實(shí)乘入元距所求積算,命曰中積分。盈大衍通法得一,為積日。不盈者為小馀。爻數(shù)去積日,不盡日為大馀。數(shù)從甲子起算外,即所求年天正中氣冬至日及小馀也。

以策實(shí)乘積算為中積分,即上元到所求年天正冬至的總?cè)辗帧T诖死校?/p>

96961777×1110343=107660830359511

以中積分除以通法3040,為積日:

107660830359511÷3040=35414746828.78651(日)

積日滿60(干支一周,《大衍歷》稱為爻數(shù))即除去,在此例中,積日/60的整數(shù)部分為590245780,所以冬至大、小馀為:

35414746828.78651(積日)-590245780×60

=35414746828.78651-35414746800

=28.78651

即大馀28,從甲子起算外,冬至為壬辰日。小馀為0.78651×3040=2390.9904(日分)。

下面求節(jié)氣大、小馀。其算法的文字表述是:

求次氣,因天正中氣大小馀,以三元之策及馀、秒加之。其秒盈象統(tǒng),從小馀。小馀滿大衍通法,從大馀。大馀滿爻數(shù),去之。命如前,即次氣恒日及馀、秒。

三元之策公式是:

三元之策,一十五;馀,六百六十四;秒,七。

即每一個(gè)節(jié)氣所含日數(shù)為。自冬至至秋分共18個(gè)節(jié)氣,以此年冬至小馀加18個(gè)節(jié)氣整日之外的馀數(shù):

2390.99+664×18=14348.24

滿3040為一日,除去(滿大衍通法,從大馀):

14348-3040×4=2188

即此年秋分小馀。冬至大馀加18個(gè)節(jié)氣整日數(shù),再加小馀滿通法4日:

28+15×18+4=302

滿60(爻數(shù))去之:

302-60×5=2

得大馀2。據(jù)此推算出的此年秋分在八月十三日丙寅。

以上據(jù)《大衍歷》演算結(jié)果,與杜甫給出的上元二年辛丑歲秋分大馀、小馀完全相合。當(dāng)然,步中朔、求干支在歷法中都屬于相對(duì)簡(jiǎn)單、初步的運(yùn)算。其他步發(fā)斂術(shù)、步日躔術(shù)、步交會(huì)術(shù)、步五星術(shù)等內(nèi)容要復(fù)雜得多,更不用說(shuō)一行《大衍歷》在歷法和中國(guó)數(shù)學(xué)史上有許多創(chuàng)新,是一般人難以掌握的。因此,不能據(jù)此文得出杜甫精通歷法的結(jié)論,但他曾研習(xí)此術(shù)并掌握一些基本的運(yùn)算方法,應(yīng)該是可信的。

值得玩味的是,杜甫為什么在此文中運(yùn)用這種在一般文章中極少見(jiàn)的記大馀、小馀方式?筆者查《全唐文》,只有張《龍筋鳳髓判》中有“二分二至,無(wú)虧余遂之蹤;大馀小馀,允葉容成之度”之語(yǔ),也不過(guò)是借以泛言時(shí)刻。其他在提及節(jié)氣或時(shí)間時(shí)給出準(zhǔn)確的大馀、小馀數(shù)據(jù)的,一例也沒(méi)有。原因大概是,能夠真正掌握這種算法的人很少。一般歷書(shū)是查不到大馀、小馀數(shù)據(jù)的。杜甫又一次讓我們見(jiàn)識(shí)了他的出人意料之處。

要解釋這個(gè)問(wèn)題,不能不聯(lián)想到寫(xiě)作此文的時(shí)間背景?!缎绿茣?shū)·歷志三》記載:

至肅宗時(shí),山人韓穎上言《大衍歷》或誤,帝疑之。以穎為太子宮門(mén)郎,直司天臺(tái)。又損益其術(shù),每節(jié)增二日,更名《至德歷》,起乾元元年用之,訖上元三年。

原來(lái),杜甫寫(xiě)作此文恰在行用《至德歷》期間?!吨恋職v》的具體內(nèi)容不詳,除去這條簡(jiǎn)略記述外別無(wú)記載。據(jù)《唐會(huì)要》卷四二,頒韓穎所造新歷在乾元元年六月十七日。此月,杜甫恰好自朝內(nèi)外放華州司功參軍。唐代所行不同歷法所設(shè)的上元甲子積年及通法是不同的,這直接關(guān)系到各節(jié)氣小馀數(shù)字的計(jì)算。代宗時(shí)所行五紀(jì)歷,即恢復(fù)唐初麟德歷所用通法1340(見(jiàn)《新唐書(shū)·歷志五》),與《大衍歷》不同。這樣,在推算冬至或其他節(jié)氣時(shí),小馀數(shù)也必然與《大衍歷》不同?!吨恋職v》所設(shè)通法與《大衍歷》是否相同,不得而知。按改歷的一般情況來(lái)看,應(yīng)該有所變化。此外還要考慮到,盡管當(dāng)時(shí)朝廷所頒《至德歷》也應(yīng)在蜀中實(shí)行,但其算法卻未必為眾人所知,而杜甫卻早在開(kāi)元、天寶年間即研習(xí)過(guò)《大衍歷》。所以基本可以肯定,此文所作演算當(dāng)據(jù)《大衍歷》無(wú)疑。

那么,在朝廷行用《至德歷》背景下,使用《大衍歷》作此演算有何意義呢?我們?cè)谶@里不必作太多的政治聯(lián)想,畢竟這只是一篇普通的應(yīng)景文字,但在文中直接給出大馀、小馀數(shù)確實(shí)不同尋常。大馀其實(shí)只是干支日的另一種表示,稍通歷法的人就可以據(jù)干支換算出大馀數(shù),或進(jìn)行相反計(jì)算,而且不管怎樣改歷,干支(大馀)都不會(huì)有變。但給出大馀數(shù)的結(jié)果是必然同時(shí)給出小馀數(shù),而小馀數(shù)則必須是經(jīng)過(guò)演算才能得出來(lái)的,是采用某一種歷法的確切表示。而且不通歷法的人,或者沒(méi)有經(jīng)過(guò)一番演算,根本就看不出這種表示的意義,不知道作者為何給出這兩個(gè)數(shù)據(jù)。這正是此文記述大馀、小馀數(shù)的深意所在。筆者認(rèn)為,這是杜甫表達(dá)他對(duì)開(kāi)元盛世懷念的一種方式,與這一時(shí)期他的許多詩(shī)作的主題相通。而這種表達(dá)是專門(mén)寫(xiě)給少數(shù)知音(唐興縣宰王潛或是其一?)以及內(nèi)行人士看的??上У氖?,由于歷算之學(xué)太過(guò)專門(mén),一般文人知之甚少,歷代注家竟然都沒(méi)有讀懂。

《傅璇琮先生八十壽慶論文集》,中華書(shū)局2012年

  1. 此詩(shī)《續(xù)古逸叢書(shū)》影印《宋本杜工部集》卷十六卷目有,正文缺。《錢注杜詩(shī)》在卷十五,上海古籍出版社1979年排印本,第557頁(yè)。
  2. 林繼中輯?!抖旁?shī)趙次公先後解輯?!肺爨硪?,上海古籍出版社1994年,第874頁(yè)。
  3. 黃希、黃鶴《補(bǔ)注杜詩(shī)》卷三二,影印《四庫(kù)全書(shū)》本,第1069冊(cè),第613頁(yè)。
  4. 王嗣奭《杜臆》,上海古籍出版社排印本1983年,第230頁(yè)。
  5. 朱鶴齡《杜工部詩(shī)集輯注》文集卷一,河北大學(xué)出版社2009年,第864頁(yè)。
  6. 仇兆鰲《杜詩(shī)詳注》卷二四,中華書(shū)局1979年,第2118頁(yè)。
  7. 《杜工部詩(shī)集輯注》,第879頁(yè)。
  8. 唐興縣即蜀州唐安縣?!对涂たh圖志》卷三一蜀州:“唐興縣,望。西北至州四十里。本漢江原縣地,后魏于此立犍為郡。……武德元年于廢州置唐隆縣,屬益州,垂拱二年割入蜀州。先天元年以犯諱改為唐安,至德二年改為唐興縣?!毙屡f《唐書(shū)·地理志》蜀州唐安縣,皆未載其至德改名。舊注皆引東川遂州唐興縣,天寶元年改為蓬溪,謂此文及《逢唐興劉主簿弟》等詩(shī)沿舊稱,誤。
  9. 《杜詩(shī)詳注》卷二五,第2207頁(yè)。
  10. 楊倫《杜詩(shī)鏡銓》文集卷一,上海古籍出版社1981年,第1076頁(yè)。
  11. 《舊唐書(shū)·歷志三》作“九千六百六十六萬(wàn)一千七百四十算”,誤。此據(jù)《新唐書(shū)》。
  12. 《舊唐書(shū)》卷三四《歷志三》,中華書(shū)局1975年,第1232頁(yè)。
  13. 《舊唐書(shū)》卷三四,第1232頁(yè)。
  14. 《舊唐書(shū)》卷三四,第1232頁(yè)。
  15. 參見(jiàn)張培瑜等《中國(guó)古代歷法》第八章大衍歷,中國(guó)科學(xué)技術(shù)出版社2008年,第487頁(yè)。
  16. 《全唐文》卷一七四《漏生夜睡不覺(jué)失明,天曉已后,仍少六刻不盡,鐘鼓既晚,官司失朝》,中華書(shū)局影印1982年,第1773頁(yè)。
  17. 專門(mén)討論歷法問(wèn)題的不在此列,如傅仁均《對(duì)王孝通駁歷法議》(《全唐文》卷一三三)。元稹《景申秋八首》(《全唐詩(shī)》卷四一〇):“風(fēng)頭難著枕,病眼厭看書(shū)。無(wú)酒銷長(zhǎng)夜,回?zé)粽招♀?。三元推廢王,九曜入乘除。廊廟應(yīng)多算,參差斡太虛。”是詩(shī)歌中僅見(jiàn)用此語(yǔ)者。
  18. 《新唐書(shū)》卷二七《歷志三下》,中華書(shū)局1975年,第635頁(yè)。
  19. 朝廷所頒只能是日歷形式的歷書(shū),算法必須另有專書(shū)?!缎绿茣?shū)·藝文志三》歷算類著錄《開(kāi)元大衍歷》一卷、《寶應(yīng)五紀(jì)歷》四十卷、《建中正元?dú)v》二十八卷等皆是此類專書(shū),但這類書(shū)必然流傳不廣?!吨恋職v》的算法書(shū)是否寫(xiě)成,也不得而知。
  20. 《舊唐書(shū)·代宗紀(jì)》載:寶應(yīng)元年九月“甲午,秘書(shū)監(jiān)韓穎、中書(shū)舍人劉烜配流嶺表,尋賜死,坐狎昵李輔國(guó)也?!笔掠忠?jiàn)《新唐書(shū)·宦者傳》。從時(shí)間上看,杜甫未必趕上與韓穎同朝處事。如果杜甫曾與聞其人,必是十分厭惡的。

上一章目錄下一章

Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)