北宋司馬光編修的《資治通鑒》是第一部編年體通史,耗時達十九年,所記上起周威烈王二十三年(公元前403年),下迄后周世宗顯德六年(公元959年),涵蓋十六朝共計1362年歷史。
在這部有294卷的浩繁篇帙,300萬字龐大體量的官修史書里,歷數了各朝各代創業、守成、陵夷、中興與亂亡的治亂之由與興衰得失,天子可得治國之道,謀臣得見安邦之法,商賈之士也能從中收獲興業良言。
不過,如果你興沖沖地找出這部皇皇巨著想看看,那可以肯定,只要翻開第一頁,估計就有當頭棒喝之感,好比沖著大門飛奔,結果一頭撞在了澄澈無比的玻璃上。
可能有的字不認識,可能每個字你都認識,但是,結果是相同的,完全不知所云。
《資治通鑒·周紀一》:起著雍攝提格,盡玄黓困敦,凡三十五年。
不僅開篇如此,《資治通鑒》里的每一篇都是這樣開頭的。
《資治通鑒·秦紀一》:起柔兆敦牂,盡昭陽作噩,凡二十八年。
《資治通鑒·漢紀一》:起旃蒙協洽,盡柔兆涒灘,凡二年。
《資治通鑒·魏紀一》:起上章困敦,盡玄黓攝提格,凡三年。
《資治通鑒·晉紀一》:起旃蒙作噩,盡玄黓執徐,凡八年。
有點懵吧,這些起XX盡XX都什么意思呢?
一
和現在的公元紀年不同,古代多用年號紀年,這一傳統直到中華民國仍然還在使用,如民國元年是1912年,今年是民國105年。
當然,民國紀年還算好的,從民國成立那一年起算并累積就行,比較清晰。
而過去的年號紀年就很容易讓人發懵,改朝換代就不說了,一朝之中新皇登極也得改元換年號,紀年就得歸零重新起算,如康熙三年、雍正五年、乾隆十年之類。
甚至有時候皇上還是那個皇上,但因為某些原因要換年號,然后紀年也跟著強制歸零了。
如漢武帝開始的年號是建元,建元六年(前135年)發現了長尾巴的彗星過境,天示異象,于是改年號為元光,即前134年為元光元年。
元光六年(前129年),衛青北擊匈奴奇襲龍城,這是漢代對匈奴的首次主動出擊,但四路人馬只有衛青得勝班師,另外三路中兩個失敗,一個無功而返,飛將軍李廣就在這次的出征中被俘,于是衛青封關內侯,并改元為元朔以資紀念(北方又稱朔方),即前128年又成了元朔元年。
漢武帝在位五十多年,先后用了十一個年號(或稱十個,最后一個有爭議),每個年號長則六年,短則兩年。
更夸張的是武則天,在位僅十四年,前后改元居然有十二次,基本上年年都是元年。
PS:漢武帝之前多用帝號紀年。
此外,還有一種干支紀年,由十天干和十二地支組合而成,如甲子、乙丑、丙寅、丁卯之類,即俗稱的六十甲子,現在也仍然還在用,占卜打卦看八字風水一定離不開這個。
二
除了年號紀年和干支紀年以外,至少在先秦至漢代時期還使用過一種歲星紀年。
所謂歲星,即木星,是太陽系行星里面體積最大、自轉最快的。
歲星繞著太陽轉,在地球上觀測,這顆星在天空的位置會逐年變化,古人發現,歲星繞天一周回到起點需要12年。
如《史記·天官書》:十二歲而周天。
所以,將赤道周天十二等分,稱為十二次,就能用歲星每年所在某次的位置來紀年了,十二年一循環。
因為地球自轉的緣故,我們看到的星宿和太陽一樣,每天的運動軌跡都是東升西落。
但是,如果每年的同一天觀測歲星在天空的位置變化,其軌跡是自西向東。
上圖為2011-2016年每年的11月19日凌晨時木星的位置變化,白色圓圈中即是木星。
所以,十二次的劃分是自西向東,以冬至月太陽所在天區為起點,分別稱為星紀、玄枵[xiāo]、諏訾[zōu zī]、降婁、大梁、實沈、鶉首、鶉火、鶉尾、壽星、大火、析木。
根據歲星所在十二次的位置就可以用于紀年了,如歲在星紀,歲在析木等,就是指這一年的歲星運行到星紀或析木的星空區域,如《國語·晉語四》:“君之行也,歲在大火”。
十二次的排列是自西向東,與天文觀測所習慣的東升西落正好相反,也就與另一種用十二地支劃分天赤道的方法相反,其對應關系如下。
十二地支以子為起點,十二次以星紀為起點。
星空浩翰,如何標記和識別位置呢?
這就得靠二十八星宿了。
如《淮南子·天文訓》:十二歲而行二十八宿。
各星宿由數量不一的星體組成,其連線就形成了各不相同的各種形狀(類似北斗七星的勺子),所以,十二次的位置就可以通過相應的星宿來進行區分,其對應關系如下。
如上所述,歲星的位置變化是自西向東,與常用的由東至西排列的十二地支相反,使用起來自然就不那么方便了。
怎么辦呢?于是古人又創造一個太歲的概念。
太歲,其實是一個假想的歲星,它與真正的歲星運動方向相反,從而與東西向排列的十二地支就一致了。
如歲在星紀,太歲與其相反運動,則太歲就在析木,對應地支為寅,所以,歲在星紀也就等同于太歲在寅。
同理,下一年歲在玄枵,則太歲在卯,以此類推。
到這就成了太歲紀年。
所謂太歲,還有不同的稱呼,如《淮南子·天文訓》稱為太陰,《史記·天官書》稱為歲陰 。
有人說木星即歲星,又稱太歲。如上所述,歲星確實就是木星,但太歲是假想出來的,所以,歲星并不能稱為太歲。
太歲紀年即太歲在子、太歲在丑、太歲在寅、太歲在卯等等,古人又給這個太歲紀年起了十二個專用的名字,分別稱為攝提格、單閼[chán yān]、執徐、大荒落、敦牂[zāng]、協洽、涒[tūn]灘、作噩、閹茂、大淵獻、困敦、赤奮若。
太歲紀年專名與太歲所在位置、歲星所在位置對應關系如下。
太歲又稱歲陰,有歲陰自然還得有歲陽。
歲陽也就是給十天干各起一個專用名稱,分別稱為閼逢、旃蒙、柔兆、強圉、著雍 、屠維 、上章、重光、玄黓、昭陽(《爾雅·釋天》),或稱為焉逢、端蒙、游兆、強梧、徒維、祝犁、商橫、昭陽、橫艾、尚章(《史記·歷書》)。
天干地支兩兩相配可得六十甲子,與此相同,十個歲陽與十二個歲陰兩兩相配,也可得六十個用于紀年的專用名詞。
如閼逢為甲,攝提格為寅,閼逢攝提格則表示甲寅;昭陽為癸,大淵獻為亥,昭陽大淵獻則表示癸亥,以此類推。
到這里再來看開頭所說的《資治通鑒》就能看懂了。
如“起著雍攝提格,盡玄黓困敦,凡三十五年。”(《資治通鑒·周紀一》)查表可知,著雍是戊,攝提格是寅,即戊寅年;玄黓是壬,困敦是子,即壬子年。這句話的意思就是起于戊寅年,止于壬子年,共三十五年。
三
顯然,六十甲子用于紀年更簡潔明了,各種多音節的專稱既不好記也不好讀,那么,這不就成了畫蛇添足嗎?
事實也確實如此,到東漢時期歲星紀年法就被廢止,傳諸后世延用至今的正是六十甲子的干支紀年法,那些專稱只能在古籍里得見一二,并成為今人的閱讀障礙。
之所以被淘汰,可能有識記的原因,而歲星紀年或太歲紀年本身也有問題。
因為木星公轉周期并不是恰好的12年,而是11.8622年,也就是說,一年過后木星的位置已經越過了一年前的起點位置,所以,根據其運行位置來紀年將因為歲星跑得太快而發生偏差,一兩年還不明顯,累積多年后就會出現天象與紀年不符的情況。
如《左傳·襄公二十八年》載:“歲在星紀而淫于玄枵?!币馑季褪钦f,魯襄公二十八年按紀年推算本來應該是歲星位于十二次的“星紀”,但人們發現歲星的實際位置已經跑到“玄枵”了。
歲星紀年存在偏差,所以就產生了虛擬的太歲紀年,這個假想的歲星實際上與真實的歲星即木星已經沒有關系,也就是說,太歲紀年實質上與干支紀年并沒有區別,只是名稱不同,而且是多音節拗口的詞。
而干支紀年早在商代甲骨文中就已經存在。
何以已經有了干支紀年的若干年之后又使用這些難以識記的名稱呢?
何以司馬遷的《史記》乃至北宋司馬光的《資治通鑒》(宋代早已廢止歲星紀年)都固執地使用這些名稱呢?
一種說法是這些多音節的專有名詞來自異域音譯,是文明西來說的證據之一。
或者,也有可能歲星紀年來自更加古老的年代,而干支紀年反倒是后起之物,所以司馬遷和司馬光等人才會沿用以體現自己學理淵源的一脈相承。