武家璧
(北京師范大學 歷史學院,北京 100875)
《包山楚簡》卜筮祭禱簡記載了“盛公之歲、刑夷之月”的“集歲”占3次、“邵滑之歲、刑夷之月的“集歲”占5次。[1](P32~37)《望山楚簡》中也可以復原兩個年份刑夷之月的“集歲”占。[2](P68~71)可見刑夷之月“集歲”占是一種比較流行的占卜程式。占卜事項不是就某日某時發(fā)生的具體事件進行占卜,而是就一整年的事項(出入、事王、躬身等)進行總體判斷,顯然這樣的占卜最適宜在歲首元旦進行。我們認為刑夷之月的“集歲”占與文獻記載“王者歲首”的“候歲”占俗有關,可能提供了兩年元旦的日辰干支,從而為歷朔斷代創(chuàng)造了條件,略論如下。
《包山楚簡》“集歲”占中,有關年月日三要素、起止時效、占卜事項等,基本上出現(xiàn)在同一支竹簡上,例如:
宋客盛公臱聘于楚之歲,刑夷之月,乙未之日,盬吉以保家為左尹佗貞:自刑夷之月以適刑夷之月,出入事王躬身尚毋有咎?占之,恒貞吉,少有憂。(包簡197)
大司馬邵滑率楚邦之師徒以救郙之歲,刑夷之月,己卯之日,盬吉以保家為左尹佗貞:出入侍王自刑夷之月以適集歲之刑夷之月,盡集歲躬身尚毋有咎?占之,恒貞吉。(包簡226)
占卜的起止時效是自本年的刑夷之月至“集歲”的刑夷之月,就一整年的時間段進行占問,中間沒有遺漏,故稱“盡集歲”,又稱“盡卒歲”。包簡可以概括出兩條獨立有效的在刑夷之月進行“集歲”占的時間記錄:
盛公之歲,刑夷之月,乙未之日。(包簡197、199、201)
邵滑之歲,刑夷之月,己卯之日。(包簡226、228、230、232、234)
有一次疾病占曰:“大司馬邵滑救郙之歲,夏夷之月,己亥之日,觀義以保家為子左尹邵佗貞:以其有瘇瘀,尚毋死,義占之,恒貞不死。有祟,見於繼無后者與漸木立,以其故敚之。”(包簡249)又有遣策簡載“大司馬邵滑救郙之歲,亯月丁亥之日,左尹葬,甬車一乘”。(包簡267)按照楚簡歷法的月序(詳見下文),自夏夷(5月)己亥至亯月(6月)丁亥,跨48日,邵佗在最后一次疾病占——“不死”占之后不久就死了。墓主左尹邵佗死于大司馬邵滑救郙之歲,表明盛公之歲、許裎之歲都應在邵滑之歲以前。這給包山楚簡的歷朔斷代提出了很強的限制條件。
為了弄清楚這一問題,我們先來說明楚國月名的含義。云夢睡虎地秦簡《日書》中有秦、楚月名與日夕數(shù)對照表,記載了不同月份的晝夜長短數(shù)據(jù)[3],見表1。
歷法上有依據(jù)晝夜長短的變化規(guī)律來劃分季節(jié)的做法,例如晝夜平分是春分,此后變得晝長夜短,到白晝最長、夜晚最短是夏至;然后再往回變到晝夜平分是秋分,此后變成晝短夜長,到白晝最短、夜晚最長是冬至等等,一年內(nèi)往返變化,四季分明。這套數(shù)據(jù)把一晝夜(日夕)劃分為十六等分,晝夜長度用“分”數(shù)來表示,例如秦歷五月白晝(日)最長占11分,夜晚(夕)最短只占5分,則晝長占一日的11/16是極大值,故是夏至月;十一月白晝最短,僅占一日的5/16是極小值,故是冬至月;二月、八月晝夜平分,各占8/16是中值,故是春分和秋分月。
很容易判斷楚歷的刑夷就是秦歷的正月,也是《夏歷》和《顓頊歷》的正月——立春月。
我們提出楚國歷法屬于《顓頊歷》。[4]立春是《顓頊歷》的歲首。《新唐書·歷志》載僧一行《日度議》曰:“《顓頊歷》上元甲寅歲正月甲寅晨初合朔立春,七曜皆直艮維之首……命曰《顓頊》,其實《夏歷》也?!浜髤尾豁f得之,以為秦法,更考中星,斷取近距,以乙卯歲正月己巳合朔立春為上元?!盵5](P602)這段話說明《顓頊歷》有兩種:一種是早期使用的“甲寅元”,另一種是經(jīng)過呂不韋改造過的“乙卯元”。《后漢書·律歷志》(下文簡稱《后漢志》)“熹平論歷”載劉洪議曰:“《甲寅歷》于孔子時效;己巳《顓頊》,秦所施用;漢興草創(chuàng),因而不易?!盵6](P3042)楚簡使用的《顓頊歷》應是文獻記載的“甲寅元”《顓頊歷》,我們稱為《顓頊大正》[7];傳世秦漢《顓頊歷》就是“乙卯元”《顓頊歷》,我們稱為《顓頊小正》。睡虎地秦簡所列的秦楚月名對照表是《顓頊歷》的《大正》月名與《小正》月序的對照表。
《國語·楚語》載“觀射父對楚昭王問”曰:“古者民神不雜?!吧侔傊ヒ玻爬鑱y德,民神雜糅,不可方物。……顓頊受之,乃命南正重司天以屬神,命火正黎司地以屬民,使復舊常,無相侵瀆,是謂絕地天通。”[8](P194~196)這是說上古有神歷和民歷之分,亂世還有“民神雜糅”的歷法。楚簡歷法的月名除自然月序(八、九、十月)之外,寫作某(夕)或者某(夷)者全與祭祀有關,因此《顓頊歷》的《大正》歷法就是神歷,《小正》歷法就是民歷。
楚國神歷的祭祀順序,上半年基本遵循由親至疏、由近至遠的秩序[9](P145),主祭者是楚王,可能于每月朔日進行。例如冬(終)—夕祭終養(yǎng)的直系父祖,屈—夕祭屈支旁系的近親父祖,遠—夕祭遠親列祖,—立尸祭祀丹陽宗廟的荊王,夏—立尸祭祀中夏的“楚先”,亯(紡)月—祊祭諸遠人親族,等等。祭祀親近祖先都在郢都宗廟內(nèi)舉行夕祭;建都丹陽及其以前的遠祖不葬在郢都,均需立尸祭祀,這就是“荊夷(尸)”“夏夷(尸)”的來歷。由此判斷楚簡歷法的月名,可能是楚文王遷郢都以后建立起來的,時代約在春秋早期。
如果不因具體事件(疾病、災異、夢魘、見鬼神等)臨時進行占卜,古人經(jīng)常選取“四始”之日進行“候歲”之占?!妒酚洝ぬ旃贂分^:
凡候歲美惡,謹候歲始。歲始或冬至日,產(chǎn)氣始萌。臘明日,人眾卒歲,一會飲食,發(fā)陽氣,故曰初歲。正月旦,王者歲首;立春日,四時之卒始也。四始者,候之日。[10](P1340)
這里提到四種歲始,即冬至日、臘明日、正月旦、立春日。《說文》:“臘,冬至后三戌,臘祭百神也?!奔磁D祭日期由冬至日推定,臘明日視為“初歲”。在四個歲始之日占候一年內(nèi)的氣候、水旱、收成和吉兇美惡等,統(tǒng)稱為“候歲”或者曰“歲占”。
“四始”可能源自“五始”?!洞呵铩る[公元年》記載:“元年春王正月?!薄豆騻鳌吩唬骸霸暾吆??君之始年也。春者何?歲之始也。王者孰謂?謂文王也。曷為先言王而后言正月?王正月也。何言乎王正月?大一統(tǒng)也。公何以不言即位?成公意也。”唐徐彥疏:“元是天地之始,春是四時之始,‘王正月公即位’者人事之始。”《文選·王襃〈圣主得賢臣頌〉》云:“記曰恭惟《春秋》法五始之要,在乎審己正統(tǒng)而已?!崩钌谱⒁昂鷱V注云:五始一曰元,二曰春,三曰王,四曰正月,五曰公即位”[11](P2089)。漢何休《春秋文謚例》曰:“五始者,元年、春、王、正月、公即位是也?!盵12](P5)胡廣和何休的“五始”之說可能源于讖緯[13],緯書《春秋元命包》曰:“黃帝受圖,立五始。元者氣之始,春者四時之始,王者受命之始,正月者政教之始,公即位者一國之始?!盵14](P112)緯書《春秋佐助期》曰:“黃帝坐于扈閣,鳳凰銜書至帝前,其中得五始之文?!盵14](P240)《漢書·王褒傳》:“恭惟《春秋》法五始之要?!鳖亷煿抛ⅲ骸霸邭庵?,春者四時之始,王者受命之始,正月者正教之始,公即位者一國之始,是為五始?!盵15](P2824)
《春秋》五始強調(diào)“正統(tǒng)”觀念,候歲四始則把“正統(tǒng)”觀念應用到占候領域。唐代張守節(jié)不同意司馬遷將候歲“四始”解釋為四個時間點的說法,僅僅將“正月旦”作為候歲的唯一時節(jié)點,其《史記正義》曰:“謂正月旦,歲之始,時之始,日之始,月之始,故云‘四始’。言以四時之日,候歲吉兇也。”清初顧炎武《日知錄·史記注》指出:“‘四始者候之日’,謂歲始也,冬至日也,臘明日也,立春日也?!墩x》專指正月旦,非也?!盵16](P949)
對“正月旦”的重視,文獻始于《尚書·舜典》“正月上日,受終于文祖”??装矅鴤鳌吧先?,朔日也”??追f達疏:“月之始日謂之朔日,每月皆有朔日,此是正月之朔,故云‘上日’,言一歲日之上也。下云‘元日’亦然。”又《書》曰:“月正元日,舜格于文祖?!笨讉鳌霸抡?;元日,上日也。”《史記·五帝本紀》:“正月上日,舜受終于文祖。文祖者,堯大祖也?!笔墙灾^舜帝在正月元旦接受了堯帝的禪讓。
“正月旦”漢晉人又稱為“三朝”“三始”“三元”等?!段倪x·班固〈東京賦〉》:“春王三朝,會同漢京?!崩钌谱ⅲ骸叭瑲q首朔日也。”《漢書·孔光傳》:“歲之朝曰三朝。”顏師古注:“歲之朝,月之朝,日之朝,故曰三朝?!薄稘h書·鮑宣傳》:“今日蝕于三始,誠可畏懼。”顏注:“正月一日,為歲之朝,月之朝,日之朝;始猶朝也?!睍x宗懔《荊楚歲時記》:“正月一日是三元之日也,《春秋》謂之端月?!盵17](P1)唐徐堅《初學記》卷四“歲時部·元日”條引崔寔《四民月令》:“正月之朔,是謂正日。”又引隋杜臺卿《玉燭寶典》:“正月為端月,其一日為元旦,亦曰上日,亦云正朝,亦云三元(歲之元,時之元,月之元),亦云三朔?!庇忠芴帯讹L土記》:“月正元日,百禮兼崇?!庇忠啊稘h書》曰‘正月朔歲首立春,四時之始?!衷弧畾v者序四時之端,正分至之節(jié),故圣人考歷數(shù),以正三元。此圣人知命之術?!盵18](P63~64)南宋吳自牧《夢梁錄》卷一“正月”條:“正月朔日謂之元旦,俗呼為新年。一歲節(jié)序,此謂之首”。[19](P1)
《太平御覽》卷二十九“時序部·元日”條引《漢書》曰:“正月朔,歲首;立春,四時之首。”[20](P245)又引譙周《古史考》曰:“元日,太史乃占氣象,以知水旱吉兇,隨分野書之?!盵20](P254)戰(zhàn)國楚簡發(fā)現(xiàn)的“歲占”卜辭證明“候歲”在戰(zhàn)國時已經(jīng)很盛行了,但是占候的內(nèi)容并非都是“候歲美惡”,而是求貞者本人出入、事王、自身休咎等個人事項。
《春秋》記載魯國事跡用《魯歷》,采用周正建子的月序,即以斗柄昏時指北(子)為正月?!妒酚洝v書》曰:“昔自在古,歷建正作於孟春……夏正以正月,殷正以十二月,周正以十一月。蓋三王之正若循環(huán),窮則反本?!彼抉R貞《索隱》按:“古歷者,謂黃帝調(diào)歷以前有上元太初歷等,皆以建寅為正,謂之孟春也。及顓頊、夏禹亦以建寅為正。唯黃帝及殷、周、魯并建子為正。而秦正建亥,漢初因之。至武帝元封七年始改用太初歷,仍以周正建子為十一月朔旦冬至,改元太初焉。”
《論語·衛(wèi)靈公》:“子曰:行夏之時?!敝祆浼ⅲ骸啊臅r’,謂以斗柄初昏建寅之月為歲首也。天開于子,地辟于丑,人生于寅,故斗柄建此三辰之月,皆可以為歲首,而三代迭用之。夏以寅為人正,商以丑為地正,周以子為天正也。然時以作事,則歲月自當以人為紀?!盵21](P1082)關于斗柄建辰,睡虎地秦簡《日書·秦除》記載秦歷的十二月建為:“正月建寅,二月建卯,三月建辰,四月建巳,五月建午,六月建未,七月建申,八月建酉,九月建戌,十月建亥,十一月建子,十二月建丑?!盵3]這就是“正月建寅”的月序,《夏小正》和秦漢《顓頊歷》均采用這樣的月名月序。
所謂“王者歲首”就是“人正歲首”?!独献印吩唬骸疤齑螅卮?,人亦大?!币槐咀鳌巴跻啻蟆薄!缎⒔?jīng)·圣治》曰:“天地之性,人為貴?!惫省叭送酢笔窍鄬τ凇疤臁薄暗亍倍缘?。因此,“王者歲首”的含義是很明確的,就是寅正月序的正月朔日——元旦。
《左傳·文公元年》:“先王之正時也,履端于始,舉正于中,歸余于終?!倍蓬A注:“步歷之始,以為術之端首?!笨追f達疏:“履,步也,謂推步歷之初始,以為術歷之端首?!盵22](P484)所謂“術歷端首”,一般歷法指冬至(中氣),《顓頊歷》指立春(節(jié)氣);“王者歲首”特指正月朔日——原本是“歷之始”而非“術之端首”,當朔日與節(jié)氣合一(氣朔齊同)時就成為“術歷端首”。冬至、立春、元旦都是占候者重視的端始節(jié)日。
為了說明問題,筆者將周正建子、夏正建寅以及秦楚《顓頊歷》的斗建(斗柄昏時指向)與月名、月序列表說明,見表2。
表2 周夏秦楚建正與月名對照
依《楚語》“司天以屬神、司地以屬民”的分法,所謂“大正”就是神歷,故楚簡多記祭祀月名;“小正”就是民歷,故《夏小正》多載物候農(nóng)事?!吨軞v》《魯歷》的歲首在正月(子正),秦《顓頊歷》的歲首與正月分離,月名采用《小正》(寅正),歲首采用《大正》(亥正),可謂正月建寅、歲首建亥,是把神歷和民歷混合在一起的“雜糅”歷。楚《顓頊歷》將月名和歲首統(tǒng)一于《大正》(亥正)。按一般法則,楚國的荊尸之月,相當于《周歷》《魯歷》的春三月,然而《左傳·莊公四年》載“春王正月,楚武王荊尸,授師孑焉以伐隨”。此例說明“春王正月”是建寅之月而非建子之月,該作如何解釋?
原來《春秋》記周朝及魯國事跡用子正,記其他諸國則用夏正,唐劉知幾《史通·模擬》曰:“春秋諸國,皆用夏正。”《逸周書·周月解》:“夏數(shù)得天,百王所同……我周王致伐于商,改正異械,以垂三統(tǒng)。至于敬授民時,巡狩祭享,猶自夏焉。是謂周月,以紀于政?!边@說明“周月”僅用以“垂三統(tǒng)”“紀于政”,但是民間物候農(nóng)時、王者巡狩祭享等采用《夏歷》。這就是說周朝本身也同時采用大正(周正)和小正(夏正)。清初顧炎武《日知錄·正月之吉》:“(《詩·豳風·七月》)一篇之中,凡言月者皆夏正,凡言日者皆周正?!鼻搴煊沃洞呵锵恼范韀23],對《春秋》所用“夏正”詳加考證,可以參考。
“楚武王荊尸”是《左傳》記楚國事跡用《顓頊小正》的一個顯例。在荊尸之月進行的占卜和祭祀活動表明,“正月旦王者歲首”不僅是采用夏正的諸國流行的占候習俗,也是采用《顓頊歷》的楚國盛行的習俗。
歷法的氣朔干支具有周期性,如果不限定初始條件和邊界范圍,其斷代的結論必定是多解的。為了依據(jù)四分歷規(guī)律找到歲首年代的唯一解,需要對歷朔的年代范圍給出適當?shù)南拗?。包山楚簡可以限制年代的依?jù)有二。其一是簡文記載七個年名中有“大司馬昭陽敗晉師于襄陵之歲”,明確為公元前322年[24],是楚懷王七年。這批年名應集中在楚懷王之世,不會晚到頃襄王。邵滑任大司馬必定在昭陽之后,故以“昭陽之歲”為“邵滑之歲”的年代上限;其二是墓主死亡的邵滑之歲與“邵滑亡越”的年代必然接近。
關于“邵滑亡越”事件,文獻多有記載?!俄n非子·內(nèi)儲說下》中,干象對楚懷王曰:“前時王使邵(悼)滑之越,五年而能亡越,所以然者越亂而楚治也?!盵25](P257~258)《史記·甘茂列傳》載:“齊使甘茂於楚,楚懷王新與秦合婚而歡,而秦聞甘茂在楚,使人謂楚王曰:‘原送甘茂于秦?!鯁栍诜锻洝瓕υ唬骸彝跚皣L用召滑于越,而內(nèi)行章義之難;越國亂,故楚南塞厲門而郡江東?!薄稇?zhàn)國策·楚策一》中,范環(huán)對楚懷王曰:“且王嘗用召滑于越,而納句章;昧之難,越亂故楚南察瀨湖而野(郡)江東。計王之功所以能如此者,越亂而楚治也?!盵26](P738)鮑彪注云:“此言楚雖有唐昧之難而能得越地,以召滑亂之也?!盵26](P740)綜上所述,則邵滑五年亡越的計劃成于唐昧死難之年。據(jù)《六國年表》《楚世家》載,唐昧戰(zhàn)死于楚懷王28年(前301)的垂沙之戰(zhàn),則“昭滑亡越”應在公元前305~前301年這5年間。其中“用召滑于越而納句章”可能發(fā)生在前305年,即楚懷王24年。此事的具體細節(jié)已無從查考,推測可能是一次間諜顛覆行動,引發(fā)越國持久內(nèi)亂,至5年后亡國。
《戰(zhàn)國策·楚策四》載:“齊明說卓滑以伐秦,滑不聽也。齊明謂卓滑曰:‘明之來也,為樗里疾卜交也。明說楚大夫以伐秦,皆受明之說也,唯公弗受也,臣有辭以報樗里子矣?!炕蛑刂!饼R明游說卓(悼)滑時,卓(悼)滑應已為楚國大司馬,與秦國名將樗里疾齊名。樗里疾戰(zhàn)功赫赫,曾攻取魏國曲沃、趙國藺邑和楚國漢中等,因功封于蜀郡嚴道縣,號嚴君。前311年秦武王即位,任命樗里疾為右丞相、甘茂為左丞相,秦昭王元年(前306年)樗里子拜為丞相,七年(前300年)去世。楚懷王六年(前323年)楚國大司馬昭陽大敗魏軍于襄陵(今河南睢縣),占領八邑,此事被用以紀次年之歲(前322年)。邵(悼)滑任楚大司馬應在此后,大致與樗里疾執(zhí)政(前311年~前300年)同時,故東周齊明以“為樗里疾卜交”為名游說邵滑,借以抬高自己的身價。
滅亡越國是昭滑在大司馬任內(nèi)最大的業(yè)績,另一功績就是竹簡年名記載的“大司馬邵滑率楚邦之師徒以救郙”這件大事了。滅越之后的第二年,即公元前299年,秦昭王約楚懷王在武關會面,懷王不聽昭睢、屈原勸告,前往武關被秦國扣留,太子橫被令尹昭睢等立為楚王,是為楚頃襄王。此后秦楚連年征戰(zhàn),楚國疲于奔命,不大可能發(fā)生大司馬率楚師救郙的事情。筆者曾經(jīng)認為“邵(悼)滑救郙”可能是文獻記載的“淖齒救莒”事件(前285年)[27],后者距離“昭滑亡越”已過去20年,此時邵滑即使還活著也已近暮年,率師救莒似不合情理;且其時楚國軍力數(shù)次為秦所摧折,勢難有所作為,故放棄前說。綜上所述,則“邵滑之歲”的年代范圍大致可以限制在“昭陽之歲”(前322年)至楚頃襄王即位(前299年)之間。
古六歷推算出日、月、五星等共同起點(歷元)和回歸周期(最小公倍數(shù)),其中日月周期稱為“章蔀”,五星周期稱為“紀元”,章首、蔀首是干支日名,紀首、元首是干支年名?!逗鬂h書·歷律志》載曰:“至朔同日謂之章,同在日首謂之蔀,蔀終六旬謂之紀,歲朔又復謂之元?!碧栁恢玫竭_二十四節(jié)氣點的時間和日月合朔的時刻在同一日內(nèi)發(fā)生的周期是19年,但同日并不表示“同時”,歷法上把一日分為朝、晝、昏、夜“四時”;如果節(jié)氣、合朔同日并且同時發(fā)生,那么它們的共同周期是76年,故以19年為一章,四章為一蔀?!吧灐北硎練馑俘R同了,但第一蔀首與第二蔀首的日名干支并不相同,需要調(diào)和與六十甲子的周期,使蔀首日名恢復相同干支需要經(jīng)過二十蔀,稱為一紀(1520年)。以紀為單位進入紀年階段,“紀首”表示蔀首日名相同,但年名干支不同;經(jīng)過天、地、人三紀,恢復干支年名相同,是為一元(4560年)。這就是四分歷的章、蔀、紀、元結構,周而復始,編排無窮。推算得到理想的歷法起點——上元,理論上會發(fā)生氣朔齊同、五星會合的天象,即所謂“日月合璧、五星連珠”。一般歷元(蔀首)如文獻所稱的“甲寅元”“乙卯元”等,會發(fā)生“氣朔齊同”的天象。
推步歷法計算的節(jié)氣和朔日反映的是自然天象,不管采用哪種歷法,所得氣朔干支應該是相近或相同的,它們都必須非常接近同一自然天象。如果歷法與天象差距顯著增大易于察覺,該歷法將遭到改革或廢止?!洞笳放c《小正》的區(qū)別不在氣朔干支,而在于建正、月名與月序的差別。下面采用四分歷法術計算立春月的朔日干支,對于《顓頊歷》的大正和小正都是適用的。
首先,計算正月朔日的干支序數(shù)?!逗鬂h志》記載了四分歷推步氣朔的公式,以“天正術”為名,歲首朔日為“天正十一月朔日”,又稱“天正朔日”,簡稱“正朔”。實際上其算法對于“人正”照樣適用,只需將冬至改為立春、冬至月朔改為立春月朔即可?!逗鬂h志》載步朔公式曰:
推天正術,置入蔀年減一,以章月乘之,滿章法得一,名為積月,不滿為閏余,十二以上,其歲有閏。
推天正朔日,置入蔀積月,以蔀日乘之,滿蔀月得一,名為積日,不滿為小余,積日以六十除去之,其余為大余。以所入蔀名命之,算盡之外,則前年天正十一月朔日也?!?/p>
一術,以大周乘年,周天乘閏余減之,余滿蔀月,則天正朔日也。[28](P1517)
其中“入蔀年減一”就是積年(T),積月余數(shù)的分子稱為“閏余”。“以六十除去之”即減去60的整數(shù)倍60[r],使數(shù)值保持在甲子周之內(nèi),以便用干支紀日。以上術文可寫成算式:
積月=積年×章月÷章法
積日=積月×蔀日÷蔀月
朔日=積日-60[r]
有關入算的術數(shù)(常數(shù)),《后漢志》載明:“蔀月九百四十,章法十九,章月二百三十五,周天,千四百六十一,日法四,蔀日二萬七千七百五十九…大周三十四萬三千三百三十五。”
綜上,可寫為一簡明算式,即
朔日=(大周×積年-周天×閏余)÷蔀月-60[r]
由積月算式可得閏余,由閏余可推算朔日:
朔日=(343335×T-1461×閏余)÷940-60[r]
積月表達式中的分子就是閏余,閏余的周期是19年,下面按積月算式計算一章19年內(nèi)完整的閏余,列如下表。
表3 四分歷閏余
四分歷閏周為19年7閏,閏余大者設置閏月,上表中閏余大于和等于12的有7年,當設置閏月,故志文曰“十二以上其歲有閏”。由此可見四分歷的閏月分布規(guī)律。秦漢《顓頊歷》歲首建亥,以十月為年始,置閏月于年終稱“后九月”。
已知閏余,按步朔公式計算,列出《顓頊歷》第一蔀(B1)共計76年的正月朔日干支序數(shù),見表4。
以上所算的結果都是干支序數(shù),要轉(zhuǎn)換為干支日名,還需“以所入蔀名命之”,即以蔀首日名進行命算(設干支序號)?!逗鬂h志》載:“至朔同日謂之章,同在日首謂之蔀,蔀終六旬謂之紀,歲朔又復謂之元?!逼湫g數(shù)(常數(shù))載明19年為章,四章76年為蔀,二十蔀1520年為紀,三紀4560年為元。其中“章蔀”是氣朔齊同的周期,章首蔀首是干支日名;“紀元”是太歲紀年的周期,紀首元首是干支年名。一般歷譜主要編排氣朔干支,只需用到章蔀周期。具體做法是:在一蔀內(nèi)完成干支序數(shù)的計算,不同蔀內(nèi)的數(shù)值計算完全相同,只需以蔀首的日名干支作為起點命算,把全部氣朔干支的序數(shù),整體轉(zhuǎn)換為本蔀內(nèi)的干支日名。
表4 《顓頊歷》第1蔀(B1)正月朔干支序數(shù)
《后漢志》載:“甲寅之元,天正正月甲子朔旦冬至,七曜之起始于牛初;乙卯之元,人正己巳朔旦立春,三光聚天廟(營室)五度?!北疚挠懻摰摹巴跽邭q首”屬于“人正”系統(tǒng),因此第一蔀(己巳蔀)應以“己巳朔旦立春”為起算點,即設定干支序號(命算)為:己巳[0](算外),庚午[1](算盡),辛未[2]……丁卯[58],戊辰[59],己巳[60]。大于60的積日減去60的整數(shù)倍60[r],得到小于60的干支序號。其他蔀則“以所入蔀名命之”。
關于《顓頊歷》的蔀首,《新唐書·律歷志》載僧一行《日度議》曰:“魯宣公十五年(前594)丁卯歲《顓頊歷》第十三蔀首……至始皇三十三年(前214年)丁亥,凡三百八十歲,得《顓頊歷》壬申蔀首,是歲秦歷以壬申寅初立春?!盵5](P611)唐《開元占經(jīng)》載《顓頊歷》上元至開元二年(甲寅714年)的積年為2761019算外[29](P1089),算得其距今最近的歷元為:
2761019-605×4560-713=1506
即公元前1506年是《顓頊歷》的近距歷元(己巳蔀首)。據(jù)此可列出《顓頊歷》二十蔀及其蔀首對應的公元年代,見表5。(括號中是“命算己巳”的序數(shù))
不管如何起算和命算,四分歷二十蔀的順序和蔀首干支是相同的,如上表中的命算序數(shù)所示,前后蔀首之間增減39日。例如第二蔀首比第一蔀首的干支序數(shù)大,列式如下:
那么兩蔀的其他對應日期均相差39日。故可依據(jù)蔀首重新命算起點,將第一蔀的氣朔干支序數(shù),整體換算成其他蔀的氣朔干支日名。
實際上沒有必要將每蔀都重新命算,可在命算己巳[0]的統(tǒng)一規(guī)則下,采用如下方式計算干支序數(shù),與“以蔀名命算”的效果是一樣的:設第一蔀某年某月朔干支序數(shù)為B1,那么第n蔀該年該月朔干支序數(shù)為
Bn=B1+(n-1)×[39]-60[r]
按此式算得第16蔀的第45年~67年即公元前322年~前299年的正月朔干支序數(shù),見表6。
上表中符合簡文盛公之歲刑夷(正月)朔乙未[26]的,只有第16蔀第56年,即公元前311年可以當之;符合邵滑之歲刑夷(正月)朔己卯[10]的,只有第16蔀第64年,即公元前303年可以當之,后者與文獻記載“邵滑亡越”的時代符合。如圖1所示,兩個刑夷朔日的年代是唯一的,其他年份距離竹簡歷日最近者也在2日以上,故可排除。
上圖顯示公元前322~公元前299年所有立春月[刑夷]的朔干支中,朔乙未[26]、己卯[10]的年代是前311年、前303年。前303年是邵滑之歲,表明邵滑救郙發(fā)生在前304年,這是楚懷王24年(前305年)“用召滑于越”的第二年,楚國已納越之句章,繼而邵滑率師救郙,邵滑本人正處在人生的巔峰期。邵滑救郙的軍事行動發(fā)生在五年亡越的過程之中,有可能是其滅越計劃的一個組成部分。歷朔斷代得到的年代結論,與文獻提供的歷史背景正好符合。
表5 《顓頊歷》入蔀年
表6 《顓頊歷》第16蔀(B16)正朔干支序數(shù)
圖1 包山楚簡刑夷月“集歲”占的歷朔年代
這三個朔日已歸于同一年,為判斷其年代,特編算《顓頊歷》第16蔀(B16)部分年代的朔日干支,見表8。
表7 包簡楚歷七-九月干支日序
表8 《顓頊歷》第16蔀(B16)朔干支
由表8可知,與竹簡七、八、九月朔日符合的只有第16蔀的第50年,即公元前317年,楚懷王12年。特將此三朔日的余分算出,見表9。
表9 包簡歷朔
《顓頊歷》八月丁卯朔,與竹簡戊辰朔差1日,但丁卯朔的余分超過半日,依“借半日”法,應當進位1日,于是歷朔與竹簡朔日正好相符。
此年早于邵滑之歲(前303年)15年,則包山楚墓隨葬的法律文書主要是墓主昭佗壯年時期所從事工作的部分檔案材料。
楚簡的月名采用《顓頊歷》大正月序,歲首建亥,為后來秦漢《顓頊歷》所繼承。但《顓頊歷》小正也同時在楚國使用,楚帛書月名就是例證。[30]刑夷之月是《小正》的歲首,又稱“王者歲首”,“正月旦”是傳統(tǒng)的“候歲”之日。楚簡刑夷之月“集歲”占就是“正月旦”的歲首占,是傳統(tǒng)習俗“候歲”在楚國的表現(xiàn)。
依據(jù)兩個正月元旦的朔日干支,我們確定了盛公之歲、邵滑之歲的年代,另一未知年份的七至九月朔日也在比較靠近的時間范圍內(nèi)確定了具體年代,加上已知昭陽之歲的年代,可知包山楚簡的紀歲包括以下年代:
昭陽之歲 公元前322年
□□之歲 公元前317年
盛公之歲 公元前311年
邵滑之歲 公元前303年
《包山楚墓》發(fā)掘報告[31](P332)和整理者[32]認為邵滑之歲為公元前316年,簡文所載七個年份緊密相連,靠近墓主的死亡年代,最后一年是墓主的卒年?,F(xiàn)在看來這一結論難以成立。
包山楚簡的法律文書是墓主壯年時代所從事工作的檔案材料,官府隨葬這類陪葬品旨在選用極少量的檔案文書以表明墓主的身份地位,作為死者到地下丞報到時的憑證。這些檔案集中在某些年份,但并不靠近墓主的死亡年代。楚簡歲首占的發(fā)現(xiàn),給出土文獻的歷朔斷年提供了科學依據(jù),為確定這類卜辭以及墓葬的年代開辟了新的途徑。