公元紀年、黃帝紀年與干支紀年的換算
最近,筆者閑著沒事兒,又苦於公元紀年與干支紀年的對應關係過於複雜而繁瑣,於是乎琢磨起它們之間的數學換算關係,以期有所收穫,聊解心中不快。經過文獻考證,並比較時下眾多專家學者運算模式之優劣後,自感收穫與眾不同,倒也樂在其中,故而弄斧至班門,以與大家共勉。
歷史上幾個主要紀年法簡介
客觀而言,世界歷史上較有影響之紀年法,主要有公元紀年法、干支紀年法、王朝帝號紀年法、伊期蘭歷(又稱「回曆」)和佛歷等等。據文字記載,我國距今約五千年前之黃帝大一統時期,就創立並開始使用了「黃帝紀年法」和「干支紀年法」。只是由於多方面原因,我國大約自二十世紀初葉開始,就不再使用黃帝紀年法了。這裡只是簡要地介紹一下公元紀年法、黃帝紀年法和干支紀年法。
一、公元紀年法
大凡了解歷史的人們都知道,公元紀年乃是歐洲中世紀時期羅馬教皇格列高利假借基督耶穌生日的名義而於1582年創立的一種紀年方法,又稱「基督歷」、「格列高利歷」、「公曆」、「陽曆」。在此之前,歐洲許多國家適用的,是古羅馬帝國皇帝儒略·愷撒於公元前46年頒布施行的「儒略曆」。公元紀年採用數字累積紀年法,自公元元年始,與地球的自轉、公轉周期更為接近,因而作為比較科學的紀年方法而為國際上所通用。
在我國,最早採用公元紀年法的是1912年中華民國成立的時候。這要感謝我們偉大的民族革命先驅者孫中山先生。此前,我國歷代王朝採用的則是王朝帝號紀年法和干支紀年法。從1912年起,中華民國時期(包括現今台灣地區)一直採用的是民國紀年法和公元紀年法。而從中華人民共和國成立即1949年起,大陸地區則採用的是公元紀年法和干支紀年法。從1912年起,尤其是從1949年起,中華民族的歷史紀年體系開始了浩翰而複雜的編纂整理工程,郭沫若等老一輩史學家和大量的文獻、曆法專家學者為此付出了前無古人的心血與汗水。
二、黃帝紀年法和干支紀年法
我國在傳統意義上,一直沿襲著自己獨創的紀年法——「夏曆」(亦稱「黃曆」、「農曆」、「古歷」、「陰曆」)和干支紀年法。關於黃帝紀年法,現行通說是,以中華人文始祖黃帝軒轅氏統一中原地區(即「華夏」)後當政即位年(有的稱為「黃帝誕生年」)作為元年起始的。關於黃帝紀年法最早的提法始於晚清經學大師劉師培之手,1903年他發表《黃帝紀年論》一文,曰「黃帝者,漢族之黃帝也,以之紀年,可以發漢族民族之感覺」,因此,「國人苟欲紹繼黃帝志業,自應擇善而從,師法日本以神武天皇紀年之意,以黃帝降生之年為國史紀年之肇端。」[1]1905年,宋教仁鑒於當時各家說法之不一,乃參酌《皇極經世》、《通鑒輯覽》諸書,考定黃帝即位元年為癸亥年,距1905乙巳年4603年。[2] 1912年初,孫中山就任臨時大總統,改用陽曆,「以黃帝紀元四千六百九年十一月十三日為中華民國元旦。」[3]隨後不久,黃帝紀年法在中國歷史上銷聲匿跡。
而干支紀年法則是由「甲、乙、丙、丁」等十天乾和「子、丑、寅、卯」等十二地支輪換組合而成,並以此劃分和確立黃帝紀年之年、月、日所對應的天干地支碼號和一年四季共二十四節氣。其中,天干十年一輪迴,地支十二年一輪迴,干支紀年法從甲子年開始,終於癸亥年,前後六十年一輪迴。據現行通說,黃帝元年或為甲子年[4],或為癸亥年,較公元元年早2698年。筆者贊同黃帝元年為第一個甲子年之說,它更能與我國傳統的干支紀年法相對應。由此推算,公元元年為黃帝紀年2698年,對應的干支紀年為辛酉年,公元2008年為黃帝紀年4705年,對應的干支紀年正是戊子年。
有趣的是,傳說自中國遠古之殷商王朝末期周文王創立「陰陽八卦」以及後來「五行說」(金、木、水、火、土)開始,中國歷代先賢如姜子牙、鬼谷子、張良、諸葛亮、魏徵、劉伯溫等等,都先後將黃帝紀年、干支紀年與「陰陽八卦」、「五行說」溶合在一起進行研究推算,形成了許多預知世間萬物運行規律和人生命運吉凶禍福的理論體系與學說流派。更有趣的是,干支紀年法中的十二地支還分別對應著我們更為熟知的「鼠、牛、虎、兔」等十二生肖。
只是不無遺憾的是:中世紀時期「聰明」的歐洲人能假借基督耶穌生日的名義而創立公元紀年法,並推廣至全世界而通用之,而堂堂五千年文明古國的中國卻不能假借黃帝元年的名義將黃帝紀年法進行到底。
公元紀年、黃帝紀年與干支紀年的換算規律
一、公元紀年推算其對應的干支紀年之規律
誠然,作為炎黃子孫,我們尚無法對60年一輪迴的干支紀年法自「甲子年」至「癸亥年」的年號編排了熟於心。但是,實際生活中,我們卻早已習慣於在使用公元紀年的同時,更熱衷於琢磨和推算其對應的干支紀年碼號和生肖碼號,並將其內化為一種精神的和文化的自覺而溶入我們日常的生活習慣與社會交往中。這當然與植根於我們內心的民族文化傳統修養有很大關係。問題是:誰也無法用最便捷的速度與方式推算出公元紀年所對應的干支紀年。這個問題即使擺在街頭巷尾那些嫻熟老練的「算命先生」那裡,也並不是輕而易舉的事兒,甚至其「掐指一算」,也總會有推算錯誤的時候。
幸運的是,目前已有多位專家學者例如北京大學的張家驥、楊哲鋒先生以及北京科技大學的馬肇曾先生等等,都在針對這一問題進行數學上的具體解析,並爭相推出自己的數學運算模式[5]。但是,單論公元紀年推算其對應的干支紀年碼號而言,筆者認為,上述數學運算模式依然過於繁瑣而不利於我們簡便易行。因此,找尋更為簡便易學的推算模式,已是我們許多好事者的共同心愿。
(一)公元年號換算其對應的干支紀年之方法
大家知道,歷史上的公元紀年是從「公元元年」而不是「公元0年」算起的,每百年為一個世紀,而干支紀年是從甲子年算起的,每六十年一輪迴。根據郭老等專家考證、編纂和推算的結果以及《萬年曆譜》[6]、《辭海》附錄的「中國歷史紀年表」[7]的記載,西漢晚期的漢平帝劉王干亍(kan)元始元年,即公元4年,在干支紀年上就是甲子年。而傳說中的基督耶穌誕辰年即公元元年,依干支紀年法推算則為辛酉年。換言之,從公元元年始,干支紀年中的第一個甲子年要比公元元年晚3年。再結合干支紀年中天干每十年一輪迴、地支每十二年一輪迴的規律,我們就可以順利地推導出公元紀年換算干支紀年的計算公式了。
具體說來,為了運算方便,我們首先需要對干支紀年法中的十天干、十二地支依其紀年順序分別進行對應編號。如下表:
天干:
天干 |
甲 |
乙 |
丙 |
丁 |
戊 |
己 |
庚 |
辛 |
壬 |
癸 |
編號 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
0 |
地支:
地支 |
子 |
丑 |
寅 |
卯 |
辰 |
巳 |
午 |
未 |
申 |
酉 |
戍 |
亥 |
生肖 |
鼠 |
牛 |
虎 |
兔 |
龍 |
蛇 |
馬 |
羊 |
猴 |
雞 |
狗 |
豬 |
編號 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
0 |
然後,我們只要在運算中保證公元紀年(包括公元元年——公元59年在內)的年號在被天干輪迴年10和地支輪迴年12所除的餘數結果均為自然數,即可滿足運算要求。為此,我們需要在公元紀年基礎上再加上干、支輪迴年數的最小公倍數即甲子輪迴年數60之後進行運算,則可得出公元紀年換算干支紀年的具體算式如下:
1、算式一:(公元紀年+60-3)÷10
該算式運算出的餘數結果,即為公元紀年所對應的天干碼。
2、算式二:(公元紀年+60-3)÷12
該算式運算出的餘數結果,即為公元紀年所對應的地支碼和生肖碼。
例如:推算公元1966年對應的干支碼和生肖碼,通過算式一的計算可得餘數為「3」,對應該年的天干為「丙」;通過算式二的計算可得餘數為「7」, 對應該年的地支為「午」,干支紀年為「丙午年」,生肖屬「馬」。再如:推算公元2000年對應的干支碼和生肖碼,通過算式一的計算可得餘數為「7」, 對應該年的天干為「庚」;通過算式二的計算可得餘數為「5」, 對應該年的地支為「辰」,干支紀年為「庚辰年」,生肖屬「龍」。又如:推算公元2008年對應的干支碼和生肖碼,通過算式一的計算可得餘數為「5」, 對應該年的天干為「戊」;通過算式二的計算可得餘數為「1」, 對應該年的地支為「子」,干支紀年為「戊子年」,生肖屬「鼠」。
(二)公元前年號換算其對應的干支紀年之方法
公元前年號換算其對應的干支紀年,與公元年號的換算方法有很大的不同。這是因為,公元前年號與公元年號在數軸上的整數排列正好相反:即從數的絕對值上看來,公元年號是從小到大的順序排列,而公元前年號則是由大到小的倒序排列。不僅如此,由於公元紀年中缺少一個「0年」,故從數軸意義上看來,公元前年號中最後一個甲子年「公元前57年」與公元年號中第一個甲子年「公元4年」之間,理論值應為61年輪迴,而並非60年一輪迴。因此,我們如果簡單地對公元前年號進行數學運算,是不可能推導出其對應的干支紀年碼號的。
經過運算後得知,公元前年號換算其對應的干支紀年之關鍵就在於:如何將公元前年號換算成與其干支對應的公元年號。只要解決了這一問題,那麼有關公元前年號換算其對應的干支紀年的問題,也就迎刃而解了。換言之,公元前年號換算其對應的干支紀年碼號,應當分步進行。
第一步:用公元前年號所在的甲子輪迴年的整數倍(不足「1」的計為「1」)與公元前後交替時的「輪迴年理論值61年」之和,減去公元前年號,即得出公元前年號干支所對應的公元年號。計算公式為:
(60X+61)-公元前年號=干支對應的公元年號
註:算式中的「X」系「公元前年號÷60」的整數「商」,當X<1時,計為「X=1」。即:我們假定X為大於或者等於「1」的整數。
第二步:我們再將換算過來的公元年號通過「(公元紀年+60-3)÷10」和(公元紀年+60-3)÷12的運算,即可分別找出該公元年號所對應的天干、地支碼號和生肖碼號,亦即公元前年號所對應的干支紀年碼號和生肖碼號。
例如:計算西周共和元年即公元前841年對應的天干地支碼號,通過「841÷60」可得其整數商為「14」,則依第一步「(60×14+61)-841」可知公元前841年干支對應的公元年號為「公元60年」,再依第二步(60+60-3)÷10」和(60+60-3)÷12的計算可知其餘數分別為「7」與「9」,可見,公元前841年對應的天干碼為「庚」,地支碼為「申」,該年為「庚申年」,生肖屬「猴」。
再如:計算公元前57年對應的天干、地支碼和生肖碼。通過「57÷60」可得其整數商為「1」,則依第一步「(60×1+61)-57」可知公元前57年干支對應的公元年號為「公元64年」,再依第二步(64+60-3)÷10」和(64+60-3)÷12的計算可知其餘數分別為「1」與「1」,可見,公元前57年對應的天干碼為「甲」,地支碼為「子」,該年為「甲子年」,生肖屬「鼠」。
二、黃帝紀年推算其對應的干支紀年之規律
依現行通說,黃帝紀年(從黃帝元年始)與我國傳統的干支紀年(從甲子年始)一一對應,即黃帝元年為甲子年,黃帝二年為乙丑年,……黃帝60年為癸亥年。因此,我們仍以上表所列的干支碼號對應各自的阿拉伯數字為準,只要遵循干支紀年60年一輪迴的規律和確保算術運算的餘數結果與所在年份的干支碼號相對應,並保證黃帝紀年60年前(黃帝元年——黃帝59年)的年號在被天干輪迴年10和地支輪迴年12所除的餘數結果均為自然數,即可滿足運算要求。由此得出黃帝紀年與干支紀年之間的換算公式如下:
1、算式一:(黃帝紀年+60)÷10
該算式運算的餘數結果,即是所在黃帝紀年對應的天干碼。
2、算式二:(黃帝紀年+60)÷12
該算式運算的餘數結果,即是所在黃帝紀年對應的地支碼和生肖碼。
例如:黃帝紀年2698年(公元元年),通過算式一可得餘數結果為「8」,其對應的天干為「辛」;通過算式二可得餘數結果為「10」,其對應的地支為「酉」,由此可知黃帝紀年2698年(公元元年)為「辛酉年」,生肖屬「雞」。又如:黃帝紀年4704年(公元2007年),通過算式一可得餘數結果為「4」,其對應的天干為「丁」;通過算式二可得餘數結果為「0」,其對應的地支為「亥」,由此可知黃帝紀年4704年(公元2007年)為「丁亥年」,生肖屬「豬」。如此類推。
三、公元紀年與黃帝紀年之間的互算規律
由於公元紀年與黃帝紀年都是採用的數字累積紀年方法,而且依現行通說,公元元年比黃帝元年要晚2697年,即公元元年對應的黃帝紀年為2698年,因此我們可以直接導出這兩種紀年之間的互算公式。
換算公式為:黃帝紀年=公元紀年+2697年。
四、干支紀年能否換算出公元紀年或者黃帝紀年
關於這個問題,由於公元紀年和黃帝紀年採用的都是數字累積紀年法,而干支紀年採用的則是60年輪迴紀年法,故此,雖然已有部分專家通過設定一些繁瑣的條件進行數學運算,但是,這些運算模式依然很繁瑣而不易為公眾所掌握,有的甚至還存有誤差。事實上,鑒於前述的原因,如果不事先設定這些繁瑣的限制條件,我們是無法通過數學的簡便運算或者其他方法,直接準確地推算出干支紀年所對應的公元紀年與黃帝紀年來的。不僅如此,我們在實際生活中,尤其是在社會交往的公開場合,更直觀的是知悉公元紀年(如果我國同時適用黃帝紀年也是如此),並習慣於通過公元紀年推算干支紀年和十二生肖,而不是相反。因此,通過干支紀年反向推算公元紀年或者黃帝紀年,也沒有太大的實際意義。
注 釋:
[1] 無畏(劉師培),黃帝紀年論,《國民日報彙編》,第1集,第275-276頁。
[2] 公明(宋教仁),漢族侵略史敘例,《宋教仁集》(上冊),第6頁。
[3] 孫中山,臨時大總統改歷改元通電,《孫中山集》,第2卷,中華書局,1982版,第5頁。
[4] 張勁東(新加坡),中華紀年應恢復「黃帝紀年」,原道網,2007-04-04,http://www.yuandao.com/dispbbs.asp?boardID=9&ID=23744&page=4;佚名,今年是黃帝紀元的4703年,指揮官基地網,http://zhihuiguan.com/bbs/read.php?tid=444,2006年3月4日。
[5] 張家驥:「陰陽曆日期互換的計算」,《北京大學學報》(自然科學版),1998年第 4期;馬肇曾,回曆、公曆、農曆的換算,開遠阿專網, 2002年2月10日,http://www.kyaz.com/huis/ReadNews.asp?NewsID=196&BigClassName=%E5%9B%9E%E6%97%8F%E5%AD%A6%E7%A0%94%E7%A9%B6&BigClassID=25&SmallClassID=23&SpecialID=0;楊哲峰,公元與干支紀年相互換算的新方法, MYDISS網,http://www.mydiss.net/CS/ForumCS/viewtopic.php?p=1089&sid=4f8bd263b43505d047cd2879c727f543,2007年7月6日。
[6] 鞠德源:《萬年曆譜》,山西人民出版社,1989年版。
[7] 夏征農主編,《辭海》,上海辭書出版社1999年9版。
推薦閱讀:
※四墓庫與干支生殺之性
※干支交叉作用妙 取象斷事錯綜來
※四柱八字論物像,干支相剋來取相
※四柱干支字碰字秘斷(一)
※干支動靜論 喜忌論 行運論