曾鵬
摘要:
公元紀年和干支紀年是我國現(xiàn)行并用的紀年法。公元紀年,原稱基督紀年,亦稱西歷或西元,是歷史年輪演進的順序代碼,是一個無限延伸的數(shù)字序號,有“公元前”和“公元后”之分。與公元紀年相關(guān)的有“世紀”和“年代”兩個概念。干支紀年是以十天干和十二地支順次對應而組合成的甲歷紀年法則,每六十年為一個循環(huán)周期,古人用來表示年、月、日和時辰的次序,周而復始,循環(huán)不已。
關(guān)鍵詞:
公元紀年;干支紀年;推算技巧
中圖分類號:K04
文獻標識碼:A
文章編號:1000-5099(2017)03-0103-05
國際DOI編碼:10.15958/j.cnki.gdxbshb.2017.03.17
公元紀年,原稱基督紀年,又稱西歷,即格里歷,又譯為國瑞歷、額我略歷、格列高利歷、格里高利歷,亦稱西元,是意大利醫(yī)生兼哲學家里利烏斯(Aloysius Lilius)對《儒略歷》加以改革而編制成的一種歷法。公元1582年,教皇格列高利十三世予以批準頒行?!肮笔枪珰v的紀元,產(chǎn)生于公元6世紀,當時,基督徒們極力擴大教會的統(tǒng)治勢力,幾乎把任何事情都附會于基督教會。公元525年,教徒狄奧尼西為了預先推算7年后(公元532年)“復活節(jié)”的日期,提出耶穌出生于古羅馬狄奧克列顛紀年之前的248年,主張以耶穌出生之年作為公元紀年的起算點,并把耶穌誕生前、后的日期分別稱為“主前”和“主的年份”。這個主張得到了教會的大力支持,公元532年(亞歷山大復活節(jié)日期每532年為一個循環(huán)),教會把狄奧克列顛紀年之前的248年定為“主的年份元年”,率先在教會中推行。近代學者為了淡化其宗教色彩,同時避免非基督徒的反感,而改用“公元”和“公元前”的稱謂。18世紀隨著西方國家對外擴張,實行殖民統(tǒng)治,西方文化、歷法等廣泛傳播,公元紀年便逐步成為世界多數(shù)國家通行的紀年法則。但也有部分國家、地區(qū)或民族仍然使用其傳統(tǒng)歷法,而不采用西元紀年法,世界上幾乎所有華人,以及朝鮮、韓國、越南、馬來西亞等國家,至今仍然使用中國夏歷(又稱農(nóng)歷、陰歷、殷歷、古歷、舊歷等)來推算傳統(tǒng)節(jié)日,如春節(jié)、端午節(jié)、中秋節(jié)等;還有一些國家使用伊斯蘭紀元、佛教紀元(如泰國使用佛教紀元,公元2016年相當于佛歷2559年)、日本紀元、希伯來紀元、波斯紀元、衣索匹亞紀元、印度紀元、伊朗紀元、猶太紀元,還有天文紀年、帝王年號紀元等等紀年法則。
一、公元紀年和干支紀年概說
公元紀年是歷史年輪演進的順序代碼,是一個無限延伸的數(shù)字序號。公元前的紀年,通常以B.C.(英文Before Christ的縮寫)表示,前、后分界不設〇年,從公元前1年起記,逆向推進,如公元前1年庚申,公元前1400年辛丑,公元前2605年丙申等;公元后的紀年定為公元某年,通常以A.D.(拉丁文Anno Domini的縮寫)或者C.E.(英文Common Era的縮寫)表示。從公元1年起記,順行記年,如公元1年辛酉,公元2年壬戌,公元3年癸亥,公元1840年庚子,公元1911年辛亥等,公元1年,相當于中國西漢平帝(劉衎)元年。與公元紀年相關(guān)的有“世紀”和“年代”兩個概念,“世紀”一詞來源于拉丁文,意思是100年,即一個世紀為100年。按照常規(guī),公元1年至公元100年為一世紀,公元101年至公元200年為第二世紀……由于沒有公元〇年,公元一世紀是公元1年至公元99年共計99年,從二世紀起每個世紀才是100年。這是因為歷法業(yè)界已經(jīng)形成的習慣,就是把每個00年作為下一個世紀的第一年,所以,公元二世紀是從公元100年至公元199年,三世紀是公元200年至公元299年,……公元2000年至公元2099年為21世紀,以此類推。
公元前、后世紀的推算原理是一樣的,唯一不同的是從絕對值大的向絕對值小的年份順序排列,如公元前一世紀為公元前99年至公元前1年的99年;公元前二世紀是公元前199至公元前100年,……公元前2299年至公元前2200年為公元前23世紀,以此類推。如何準確判定某一年在哪個世紀呢?這里介紹一個簡單的方法(公元前、后相同):(1)公元年份是兩位自然數(shù)的,即在1—99年間,則肯定是在公元一世紀里;(2)公元年份是三位自然數(shù)的,即在100—999年之間,就在每個世紀第一年的百位數(shù)上加上1即可,如公元389年,3+1=4,即為公元4世紀,以此類推。(3)公元年份是四位自然數(shù)的,即在1000-9999年之間,就以年份自然數(shù)的前兩位數(shù)(千位和百位)加上1定其世紀數(shù),如公元前1735年,前兩位數(shù)是17,17+1=18,即為公元前18世紀;又如公元2016年,20+1=21,即為公元21世紀,簡稱21世紀,以此類推。
在公元紀年的世紀中,又分為早期或稱初期、中期、晚期或稱未期,或者分為前半期、后半期等。早期,即一個世紀的前30年;中期,則指一個世紀中間的50年;晚期,是一個世紀的后20年;前半期和后半期就是指一個世紀的前、后各50年?!澳甏笔侵敢粋€世紀中的某一個10年,但是,歷法業(yè)界已經(jīng)習慣把每個世紀的前20年(公元前、后一個世紀均為前19年)稱為某世紀初年;把20—29年稱為20年代,30—39年稱為30年代,…… 90—99年稱為90年代,由此可知,每個世紀實際上又可分為1個初年,8個年代。在世界上,對相隔久遠的年代還有千年代的說法,即1000年為一個千年代。上述這些概念已經(jīng)被人們廣泛接受,而且早已運用于實際生活和工作之中。
計算跨公元前、后連續(xù)紀年總數(shù)的方法。因為公元前、后的分界點不設〇年,故公元前的紀年數(shù)是按絕對值由大到小的順序排列,絕對值最小的是公元前1年。從公元前2000年(含)到公元前1年(含),總年數(shù)是2000年,同理,公元紀年按絕對值由小到大依次排列,從公元1年(含)到公元2000年(含),也是整2000年。最簡單的方法就是將公元前、后兩個積年總數(shù)直接相加即得。如果在數(shù)軸上計算跨公元前、后的連續(xù)紀年總數(shù),則不同于數(shù)學中正負數(shù)絕對值相加的計算方法,正確的計算方法是:“自公元前某年起至公元某年之總數(shù)-1”。因為在數(shù)軸上是貫通公元前、后連續(xù)計數(shù)的,包含了數(shù)軸原點“〇”,所以要減去1年。如公元前1525年至公元2015年的總年數(shù)為3541年,減去1后實際為3540年。
公元紀年是從西方傳入中國的,我國從公元1912年起采用西元的月、日,同時實行中華民國紀年法(公元1912年為民國1年)。1949年9月27日,中國人民政治協(xié)商會議第一屆全會通過《公元紀年法》,我國從此正式與國際上通用的公元紀年法接軌。
公元紀年和干支紀年是我國現(xiàn)行并用的紀年法。干支紀年是以十天干和十二地支順次對應而組合成的甲歷紀年法則,每六十年為一個循環(huán)周期,一般稱為“六十甲子”,又稱“一花甲子”或“一甲子”,古人用來表示年、月、日和時辰的次序,周而復始,循環(huán)不已。我國使用干支紀年歷史悠久,黃帝歷、顓頊歷、夏歷、殷歷、周歷、魯歷合稱為古六歷,均屬于以干支紀年和農(nóng)歷并行的歷法。據(jù)史載,太昊伏羲氏作甲歷,定四時,黃帝命大橈作甲子,至夏商周日臻完善,后來的歷代皇帝都很重視修訂歷法,并廣泛運用歷法指導農(nóng)牧畜業(yè)生產(chǎn),研究天象物候。特別值得一提的是,商朝30位帝王全部以天干字樣命名,如太甲、祖乙、外丙、武丁、太戊、雍己、盤庚、小辛、外壬等,這種命名用字的方式,很可能與其出生的年份或月、或日、或時辰有關(guān)。從中華民族的史書來看,公元1912年以前都是以干支紀年法記載部族、國家史實的,如“辛酉政變”“甲午中日戰(zhàn)爭”“戊戌變法”“辛丑條約”“辛亥革命”等。由此可見,干支紀年法已經(jīng)千古流傳、根深蒂固,是中華傳統(tǒng)文化中的重要組成部分,是中華民族傳統(tǒng)文化中的瑰寶。
公元紀年與干支紀年各成體系,又能相互對應換算。由于“六十甲子”的特定循環(huán)規(guī)律(每六十年循環(huán)一次),缺乏明確的線性計數(shù)概念,因而造成它很難單獨標示某一事物在整體歷史發(fā)展長河中的準確時段。如大禹元年為丙子年,到底是公元前2205年,還是公元前1605年?還是……的丙子年呢?因為“六十甲子”的每一個循環(huán)期內(nèi)都有一個丙子年,不熟悉古代歷史年代的人是根本無法確定的。為了準確掌握干支紀年在歷史時空坐標上的確切時點,就必須把公元紀年與干支紀年相對應,同步推移,方可獲得準確答案。下面介紹幾種對應的方法和技巧只要掌握其中一種方法就能迎刃而解。
二、列表推算法
列表推算公元紀年的干支非常直觀,基本不會出錯,不過所做基礎工作量較大。將十天干:甲、乙、丙、丁、戊、己、庚、辛、壬、癸與十二地支:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥,從頭到尾依次一一匹配,反復組合六次,就列出了如表1所示的“六十甲子表”。
在數(shù)軸上,公元前紀年(簡稱“公元前”,或“前”) 以其絕對值由小到大排列,向原點的負方向或說逆向推進,絕對值越大的年份,距離現(xiàn)今的年代越久遠。公元前紀年的干支則是由其對應的絕對值大的年份向數(shù)軸原點方向依次排列的。公元后紀年(簡稱公元)與其相對應的干支則是同向并肩向原點的正方向推進,公元紀年年份數(shù)的絕對值越大,該年份就越接近現(xiàn)今。
(一)查詢公元紀年的干支
現(xiàn)以公元1年與辛酉年為首個平行基準點。從表一可知,公元一世紀,干支在“六十甲子”的第一個循環(huán)周期內(nèi)公元1年辛酉,其編碼為57,到公元4年甲子(為計算方便,特向前推1年)共計為4年,因此“4”就成為一個常數(shù)。設公元年份數(shù)為x,在推查“六十甲子”第一個循環(huán)周期內(nèi)的干支時,設定公式“X-4”,以所得的差數(shù)作編碼,對應表一中的干支,即為所要查詢的公元紀年的干支。例如:查公元50年的干支,需要將年份數(shù)50代入公式:50-4=46,查表一,編碼46對應庚戌,即公元50年的干支是庚戌。同理可得,公元27年的干支是丁亥(27-4=23,對應干支是丁亥)。“六十甲子”從第二個循環(huán)周期起就是60年了,為了運算方便,設“六十甲子”的循環(huán)周期次數(shù)為“n”(可按查詢時段之需,n=1、2……33……等若干次數(shù))?,F(xiàn)定基準點為公元4年(甲子年),以“4+60n”所得之和,如公元64、184、484……1204……1804……2164……2404……3004年等均為甲子年,換言之,凡是與60成倍數(shù)關(guān)系的總數(shù)加上4的和數(shù)所對應的年份,均為甲子年,這樣,就可在表一中快捷地查找到相應年份的干支了。例如查公元1267年的干支。第一步,求查詢年甲子循環(huán)次數(shù)n=1267÷60=21……7(即循環(huán)21次,余數(shù)不用);第二步,按照計算公式:4+(60×21)=1264 (可知公元1264年是甲子年);第三步,已知在表一中甲子年對應編碼是0,從公元1264年(含當年)到公元1267年(含當年)順次移動4年,即從編碼0到編碼3,對應丁卯,即公元1267年為丁卯年。
(二)查詢公元前紀年干支
公元前1年的干支為庚申,在表一中的編碼是56,即從干支甲子順數(shù)直到庚申,共計57年(公元前紀年在《六十甲子》第一個循環(huán)周期內(nèi)只有57年,另3年為公元紀年),或從編碼56(庚申)起,倒數(shù)至編碼“0”(甲子),甲子年即為公元前57年,從第二個甲子周期起每60年循環(huán)一次。現(xiàn)以“57”為常數(shù),設定的公式“57+60n”,據(jù)此計算出的年份數(shù)所對應的干支必定是甲子年。以這個甲子年的年分數(shù)減去查詢年的年分數(shù),以所得的差為查詢編碼數(shù),即為公元前某年份所對應的干支。例如求公元前2205年的干支。第一步,求查詢年甲子循環(huán)次數(shù)n=2205÷60=36……45(循環(huán)36次,余數(shù)不用);第二步,求查詢年的編碼:57+(60×36)-2205=12(12即為查詢年的編碼);第三步,在表一中找到編碼12,對應丙子,即公元前2205年的干支為丙子。再比如求公元前725年的干支,第一步,求查詢年甲子循環(huán)次數(shù)n=725÷60=12……5 (循環(huán)12次,余數(shù)不用);第二步,求查詢年的編碼:57+(60×12)-725=52(52即為查詢年的編碼);第三步,在表一中找到編碼52,對應丙辰,即公元前725年的干支是丙辰。
三、技巧查對法
所謂技巧查對干支,就是用一些簡單的算術(shù)方法來查對公元前、后紀年所對應的干支,關(guān)鍵問題就是記住天干、地支的編碼和對應方法。我們將十天干和十二地支分別列表、編號(表2、表3),作為公元紀年與干支紀年對應求解的工具。
(一)求公元紀年的干支
推算公元某年干支的基本方法:(1)查詢公元1—10年的干支,以年分數(shù)本身作編碼,分別直接在表2、表3中定查詢年的干支,如公元8年的干支為戊辰。查詢公元11、12年的干支,以查詢年之年分數(shù)末位數(shù)作編碼,在表2中定天干,以查詢年之年分數(shù)以本身作編碼,在表3中定查詢年的地支,如公元12年的干支為壬申。(2)確定>12的年分的天干,以查詢年之年分數(shù)的末位自然數(shù)作編碼,該編碼所對應的天干即為查詢年的天干。(3)確定>12的年分的地支。設年份數(shù)為x,以x÷12,所得的商不用,取余數(shù)作為編碼,表三中相同編碼所對應的地支即為該年的地支。例如,求公元5年的干支,公元5年,以5作編碼,查表二,編碼5對應天干乙,即定天干為乙;查表三,編碼5對應地支丑,所以公元5年的干支是乙丑。同樣的,求公元1934年的干支,公元1934年的末位數(shù)是4,即編碼為4,查表二,編碼4對應天干甲,甲即為該年的天干;1934÷12=161……2 余數(shù)2,即編碼為2,查表三,編碼2對應地支戌,所以公元1934年的干支是甲戌。
(二)求公元前紀年的干支
推算公元前某年干支的基本方法:(1)因為天干共十個,故以10+1=11作為常數(shù),用公式11-前紀年末位自然數(shù),以所得的差為編碼數(shù),對應表二中的天干,即為所要查詢的天干;(2)第一步,設公元前紀年的年份數(shù)為,用y÷12,所得的商不用,取其余數(shù)備用;第二步,因為地支一共有十二個,故以12+1=13作為常數(shù);第三步,用13-余數(shù),以所得的差為編碼,對應表三中的地支,即為要查詢的地支。(3)公元前紀年僅一位數(shù)的年份,直接以11-前紀年數(shù)、13-前紀年數(shù),分別以其差值作為編碼,在表二、三中對應查取即可?,F(xiàn)舉例加以說明,例如求公元前2314年的干支,求天干,根據(jù)公式11-4=7,即編碼為7,查表二,編碼7對應天干?。磺蟮刂В?314÷12=192……10,13-10=3,即編碼為3;查表三,編碼3對應地支亥,故公元前2314年的干支為丁亥。再比如,求公元前45年的干支,查天干:11-5=6 ,即編碼為6;查表二,編碼6對應的天干是丙;查地支:45÷12=3……9,13-9=4,即編碼為4;查表三,編碼4對應地支子,故公元前45年的干支為丙子。
公元前紀年對應的干支,還可用以下方法進行推算。首先按照天干、地支的順序分別列表、編碼,作為本方法使用的工具(表4、表5):
求天干。我們設定一個常數(shù)8,設公元前某年的末位數(shù)為m,設其差值為k。用公式:
8-m=k,分下面幾種情況:(1)k>〇,就以k作為編碼,按順序直接對應表四中的天干即得解。(2)k≤〇,就用k-1,以所得的差值作編碼,在表四中從編碼10起倒數(shù)定天干。(3)k≤〇,也可用k+10所得的和作編碼,在表四中順向?qū)閷μ旄伞?/p>
求地支。以y÷12,所得的商數(shù)不用,取其余數(shù)備用。分以下幾種情況:(1)所得余數(shù)<10,第一步,以10-余數(shù);第二步,以所得的差數(shù)作編碼,按順序在表五中查對地支。(2)所得余數(shù)≥10,就以10-余數(shù),以其差值在表五中從12(亦作“0”)起倒查所對應的地支。(3)所得余數(shù)≥10,再引入一個常數(shù)22,用22-余數(shù),用所得的差作編碼,按順序在表五中查定地支?,F(xiàn)求解舉例如下:
例1.周康王元年是公元前1067年,查該年的干支。求天干:8-7=1(1>〇),即編碼為1,查表4,可知1對應天干甲;求地支,1067÷12=88……11,11>〇),以“方法二”之2“求地支”中的方法⑵:10-11=-1,即編碼為-1,在表5中倒查地支為戌。以“方法二”之2“求地支”中的方法⑶:22-11=11,11即為編碼。在表五中順查地支為戌。故確定周康王元年,公元前1067年的干支為甲戌。
例2.查齊靈公20年,即公元前562年的干支求天干:8-2=6 (6>〇),即編碼為6,查表四,編碼6對應天干己;求地支:562÷12=46……10 (10>〇),以“方法二”之2“求地支”中的方法⑵:10-10=0,即編碼為0(亦即12),在表五中對應地支為亥。以“方法二”之2“求地支”中的方法⑶:22-10=12 12即為編碼,在表五中對應地支為亥,故確定齊靈公20年,公元前562年的干支為己亥。
參考文獻:
[1]胡志明,張笑恒.不可不知的2008個中華文化常識[M].北京:中國電影出版社,2007.
[2]劉元.趣說萬事由來[M].哈爾濱:哈爾濱出版社,2008.
(責任編輯:王勤美)