幹支紀年與公曆換算
一、由公元推幹支
為了便於運算和使檢索更加直觀,用六十幹支表並按順序加以編號成表一如下:
表一:六十幹支表
該表於公元前後的推算均適用,具體的方法如下:
1,求公元後某年(設為Y)的幹支。方法是:先以Y除以60得出餘數,然後再減去4,最後根據所得結果查表一中相應序數所對應的幹支即為該年的幹支。
例如求公元1911年的幹支:1911÷60餘數為51,減4後得47,查表一47對應的幹支是辛亥,即1911年為辛亥年。由於幹支紀年60年一循環,當Y÷60的餘數小於4時,需借幹支紀年的一個周期60之數,例如1981年除以60餘數為1,直接減4不夠減,加上60之後再減4等於57,查表一便知1981年為辛酉年。餘可類推。
2,求公元前某年(設為X)的幹支。方法是:先以X除以60求其餘數,再用57減去所得餘數,根據所得結果再查表一中對應的幹支,即為該年的幹支。
例如求公元前221年的幹支:221÷60,餘數是41,以57-41=16,查表一16對應的是庚辰,即公元前221年對應的幹支應為庚辰。同樣由於幹支紀年的循環周期為60年,當餘數大於57時,也需再借60。例如求公元前479年(孔子卒年)的幹支:479除以60餘59,用57減59不夠減,加上60之後再減59等於58,查表一知該年對應的幹支為壬戌。其餘可以類推。
上述方法簡便易行,只要記住表一,就完全可以不用紙筆,直接由心算推出結果。
此外,由於六十甲子是由十天幹和十二地支依次搭配而成,十天幹按順序循環使用。也就是說,在幹支紀年中,同一天幹每十年出現一次,而公元紀年年數採用十進位制。由此推知,某天幹必然和公元年份某一固定的尾數(個位數)相對應,於是得出十天幹與公元紀年的個位數對照表如下(表二):
表二:十天幹與公元紀年個位數對照表
根據表二,凡公元某年個位數為7,其對應的天幹必為丁,若個位數是3,則對應天幹是癸,餘類推;凡公元前某年個位數為7,其對應的天幹必為甲,若個位數是3,則對應天幹是戊,餘類推。換句話說,凡幹支紀年稱甲某年(如甲子、甲寅)的,其對應的公元紀年的個位數必為4,若是公元前則應為7,其餘參照表二類推。
該表二的優點是可以直接用來檢查前述由公元推算幹支的結果中尾數是否正確,當然也可以與地支配合直接用於換算。其依據是,由於地支數目為十二,在六十幹支紀年中地支的循環周期就是十二年。我國古代還有把每個地支分別與某個動物聯繫在一起的習慣,這就是通常所說的十二屬相。既然在幹支紀年中十二地支是循環使用,那麼,在將公元紀年與幹支紀年相對應時,十二進位的地支與十進位的公元之間仍可以找到一種餘數的對應關係。這種餘數對應關係可以表述為:無論是公元前還是公元後的任意年份,如果在除以12後所得餘數相同,其分別對應的地支也就應該相同。具體的對應如下表:
表三 :十二地支與餘數對應表
也就是說,公元後任意一年,如果除以12後餘數為3,則該年地支必是亥;若是公元前某年除以12的餘數為3,其對應的地支則是午。若某年能被12整除,則對應的公元前、公元後的地支分別是酉、申。其餘均可參照表三類推。
這樣一來,如果覺得表一難以記憶的話,也可通過表二和表三分別推出公元前後任意一年的天幹和地支。只要記住表二和表三,由公元推幹支的問題也同樣可以解決。
值得注意的有兩點:第一,眾所周知,完整的六十幹支表早在殷商甲骨文中就已出現,通常認為六十幹支在當時已用於紀日,但這並不等於那時已用於紀年。文獻所見我國古代曾採用多種紀年方法,如歲星紀年、以王公在位的年次紀年等。著名的《春秋》一書就是以魯國國君在位的時間紀年。真正以政府詔令的形式規定採用幹支紀年已是東漢時候的事情了,距今還不足二千年。現在我們看到的各種歷譜中在實行幹支紀年以前的某年幹支均為後人推算所加。第二,由於我國古代的曆法屬於陰陽合曆,按照傳統曆法制定的年曆長度和現行公曆(即格里高利曆Gregorian calendar)及其前身羅馬的儒略曆(Julian calendar)之年曆長度並不相同,因此,有關公元與幹支兩種紀年的換算,說公元某年相當於某幹支年,都只是一種大致的對應而已,正如現在每年公曆的元旦與農曆的大年初一總是難以重合一樣,這一點也是應該說明的。
二、由幹支推公元
如前所述,由公元推幹支往往只有一個結果,即公元前後某年相當於某幹支年。然而由幹支推公元情況就不同了。以前湯有恩編的《公元幹支推算表》(文物出版社1961年)中由幹支推算公元部分實際上是逐年排列,談不上是「推算」。到目前為止,筆者也未看到真正採用數學公式進行推算的方法。
根據自己的研究,筆者發現儘管幹支紀年60年一循環,但只要有一定的時間範圍作為參照,由幹支推公元的問題也是可以解決的。現假設這一參照係為C,代表公元任意一個世紀。如果是求公元二十世紀的某幹支年,則C=20,餘類推。
設100(C-1)÷60的餘數為N,則N=mod[100(C-1),60]
若所求幹支在表一中對應的序數為P
則求公元某世紀C的某幹支年(對應於表一中的序數為P)的公式可表述為:
100(C-1)+{P-[N-4]}+30{1-sgn[P-(N-4)]}
試舉例說明:
例1,若求公元二十世紀的己亥年,則C=20,P=35(查表一知己亥對應序數為35)。首先由C=20算出N=mod[100(C-1),60]的值為40,即100(20-1)÷60的餘數N為40;然後將C、P、N的值代入上述公式,即
100(C-1)+{P-[N-4]}+30{1-sgn[P-(N-4)]}
=1900+{35-[40-4]}+30{1-sgn[35-(40-4)]}
=1900-1+60
=1959
也就是說,二十世紀的己亥年為1959年。
例2,求公元十九世紀(C=19)的甲午年(查表一知P為30)。首先由C=19算出N=mod[100(C-1),60]的值為0,即100(C-1)÷60的餘數N為0;然後將C、P、N的值代入上述公式,即
100(C-1)+{P-[N-4]}+30{1-sgn[P-(N-4)]}
=100(19-1)+{30-[0-4]}+30{1-sgn[30-(0-4)]}
=1800+34+0
=1834
也就是說,十九世紀的甲午年為1834年。
在此需特別提醒的是:由於一個世紀等於100年,大於幹支紀年的周期60,因此,同一世紀內有2/3的幹支將出現兩次,而另外1/3的幹支(即位於每世紀的第40和50年代)只出現一次。當{P-[N-4]}+30{1-sgn[P-(N-4)]}的值小於或等於40時,表明所求幹支年在同一世紀內還將重現一次,這時需再加上60便可得出該世紀內另一個幹支相同的年份。上述舉例2推算十九世紀的甲午年時,{P-[N-4]}+30{1-sgn[P-(N-4)]}的值等於34,小於40,故十九世紀的甲午年必然有兩個:除了1834年外,還有1834+60,即1894年(甲午戰爭)。而例1中推算二十世紀的己亥年時,{P-[N-4]}+30{1-sgn[P-(N-4)]}的值等於59,大於40,故該世紀只有一個己亥年,即1959年。
上述公式對借一甲60之數的彌補採用的是符號函數,因此,只適用於當{P-[N-4]}的值大於或小於0時。如果{P-[N-4]}正好等於0,則情況比較特殊。好在其出現頻率很低,每300年中只有2次,即當C=3K(K為正整數)時的庚辰年,或當C=3K+2(K為正整數或0)時的庚子年,且必為該世紀的第60年(本文以「世紀年」作為一個世紀的結尾)。當然,也可以採用自定義的辦法,將上述公式改寫成:
100(C-1)+[P-(N-4)]+60f{[P-(N-4)}
如果不用上述公式進行運算,也可採用較為簡易的心算。如上述例1求公元二十世紀(C=20)的己亥年(P=35)的推算可表述為以下步驟:
第一步,由C=20算出100(C-1)÷60的餘數N為40;
第二步,算出N-4的結果等於36(注意:若不夠減時需借60);
第三步,用幹支己亥對應於表一中的序數(P=35)減去第二步所得的值36,求出其結果等於59(同樣,不夠減時需借60);
最後,用59加上100(C-1),得出二十世紀的己亥年為1959年。
上述由幹支推算公元的方法,可運用於歷史時期的考古學研究。尤其是在野外考察時,對於有幹支紀年的文物,在根據文物本身的特徵推斷出大致時代的情況下,可運用上述方法得出較為確切的年份,而無須藉助任何歷史紀年表。在對於兩個以上不同幹支紀年的歷史文物進行比較時,上述方法更有幫助。
至於公元前某世紀的某幹支年,也可以用類似方法推導出來,只是具體推算略有不同。由於我國幹支紀年主要是公元後的事情,對公元前幹支的推算本文暫從略。
猜你還想看:
傷官坐地支十神之說法
貴人有陽貴陰貴之分,了解下天乙貴人是怎麼來的
從年、月、日、時柱分析七殺基礎知識(附喜忌)
八字中的爭合、妒合、鴛鴦合、閘合