標籤:

回曆、公曆、農曆的換算

回曆、公曆、農曆的換算

來源:奮鬥網  作者:馬肇曾

  研究世界伊斯蘭教歷史,免不了要對以回曆所記載的歷史事實換算為公曆,或將所載的公曆換算為回曆。《回曆綱要》、《曆法叢談》、《萬年曆譜》以及《回回天文學史研究》[1--4]等專著都載有自回曆換算為公曆的算式,並稱兩歷因閏年的時間不同,故換算結果常有一日之差,惟均未討論一日之差的簡易訂正方法。1998年《北京大學學報》(自然科學版)載文討論了中國農曆與公曆、回曆的換算問題[5]。惟筆者依上列著作中所列算式推算結果;發現與實際所載日期誤差常大於一日,最高可達十日之多。因此有必要對計算中誤差的來源及計算公式的改進進行探討,特撰此文。

 

一、國曆換算為公曆

 

  1.換算公式的導出

  公曆每年365.242 199074075 日 (簡化為365.2422日),而回曆每年為354.367074375日(簡化為354.36707日),所以回曆一年只相當354.36707/365.2422=0.970223或0.970224個公曆年。又回曆元年元旦定在公元622年7月16日,由於當時曆法在推算上的誤差,致當時的7月16日,按現代的公曆應改為7月19日,自公元某年元旦至該年7月19日已達200日.相200/365.2422=0.5476公曆年;又因到回曆二年元旦才達到0.970224個公曆年,故自回曆紀年元旦換算為公曆的算式即為:

  (回曆紀年一1)× 0.970224+622.5476年

=所求公曆年月日……………………………………………………………………………(1)

  或 回曆紀年 × 0.970224+621.5774年

=所求公曆年月日……………………………………………………………………………(2)

  式中621.5774來自622.5476-0.970224。

  如所求某一歷史事實不在回曆元旦時,可將事實經過本年的總日數化為回曆年,加人回曆紀年總數中即可。

  然而上列公曆一年的總日數,實際上是一回歸年的實測數,因現用公曆每年的日數實為365.2425日,它與一回歸年的日數只能是基本相符,到公元四千多年後會再出現一日之差。

  實際上在明萬曆十年九月十八日,回曆990年9月16日,公元1582年10月4日前(包括4日)的公曆稱儒略曆,儒略曆每年365.25日,它每年與一回歸年的差值遠大于格列高利歷即現代的公曆,大約歷128年就需多閏去一日,至萬曆十年已經多閏出十日了。因此,對於儒略曆時期的回、公兩歷換算,不能仍採用(l)、(2)兩式,而需依儒略曆的年實際日數將上列二式略加修正即可,結果如下:

  (回曆紀年一l)× 0.9702+622.5393

= 所求公曆年月日……………………………………………………………………………(3)

  回曆紀年 × 0.9702+621.5691

= 所求公曆年月日…………………………………………………………………………(4)

  式中0.9702為354.36707/365.25所得結果,而0.5393則系公曆某年元旦至其7月16日的總日數197被365.25日除之所得,622.5393-0.9702= 621.5691。

  現將兩種算式自回曆第52年起,每隔百年所算得的公曆年月日列人下表:

  

  國曆換算為公曆

  自表列計算結果得知,曆法不同不能用同一算式,否則誤差大大。萬曆十年前即已發現儒略曆的春分所在日期與實測結果相差較大,至萬曆十年已差十日,因此格列高利第十三就決心修改儒略曆,改革內容有兩點,其一,將公曆1582年10月4日之後一日原應為10月5日而改為10月15日,而星期序數不變,即該年10月4日為星期四,10月15日理應為星期一,實為星期五;其二,儒略曆每四年有一個閏年,四百年有百閏,格列高利歷仍保持儒歷四年一閏的傳統,但每四百年僅安排九十七個閏年,四百年中逢百年不閏,到第四百年加一個閏年[6]。儒歷與格歷的歲實分別為:

  儒歷(365 ×300+366 ×00)÷ 400年=365.25日/年

  格歷(365 × 303+366×97)÷ 400年=365.2425日/年而《明史·歷志》所載的回回宮分歷(太陽曆),一百二十八年閏三十一日,其歲實:

(128 × 365+31)日÷ 128年= 365.2421875日/年

  可見共置閏精度遠高於現代的公曆。

  2.換算中一日誤差之訂正

  《曆法叢談》以回曆1387年為例,求算合公曆之年月日。

  解1:1387 × 0.970224+621.5774=1967.278088年

0.278088年 × 365.2422日=101.569日公曆累計日數為101.57日可視為4月11日或4月12日。究竟是哪一日,當依兩歷在公曆4月11日或12日間所具有同一的星期序數以訂正。

  依回曆歲首星期序數計算公式:

  [(138-1)×131+164] ÷30=6057,餘20

  6057÷7=865,余 2

  故回曆1387年元旦為星期2。(表)

  按公曆自1583年元旦(星期六)至1967年4月11日,共歷:

1967-1583=384年,在這384年中依格列高利歷四年一閏,百年不閏,四百年加一閏日的規則共歷93個閏日,又1967年元旦後一日起至4月11日又需加 100日,則

  (384 × 365+93+100+6)÷ 7=140359+7=2001,余 2餘2即星期2,故回曆1387年元旦在公曆1967年4月11日。

  因公曆計算星期日數採用數據較多,計算時難免有所遺漏,現引人公曆日期與星期推算表阿),供參考。

  應用此表查找公元1967年4月11日星期序數步驟如下:

  先在本表年份表前二位數字欄目中,查到19二字所在的位置;

  再在年份表後二位數字欄目中查到67二字所在位置,自19二字處平行右移,67二字處垂直下移,二者在英文大寫字母欄目中相交於字母G處;

  再自月份表欄目中查到4月,自4月所在位置平行左移,查到G在4月欄目所在位置;

  自日期欄目查到11日所在位置,自此位置平行右移,使與4月份欄目G在星期表相交處知為星期        

  

  結果與回曆計算所得相同。故知回曆 1387年元旦確為公曆1967年4月11日,而不是12日。

  在換算中所得公曆日數常多於31日,甚至常在200—300日或更多,需要將此數化為該年的月日時,可用下列兩表。

  表3 公曆月份及其累計日數

二 公曆換算為回曆

 

  將回曆換算為公曆的算式移項,整理,即可得到公曆換算為國曆的算式

  (公曆紀年一621.5691)÷0.9702=回曆年月日(儒略曆)……………………………………………(5)

  (公曆紀年一621.5774)÷0.970224=回曆年月日(格氏歷)…………………………………………(6)

  無論回曆換算為公曆或相反,大體都有一日之差,以星期序數訂正時,回曆換算為公曆,以回曆的星期序數為準;相反,以公曆的星期序數為準。

 

  三 國曆或公曆換算為中國農曆

 

  1.回曆換算為農曆

  僅管中國農曆各年在年內月數日數都不是一個相對的穩定值,給回曆與公曆換算為農曆上帶來較多的困難,但仍然可以換算。中國農曆為陰陽合曆,在月份上與回曆同屬太陰曆,惟回曆每月以見新月為一月之始,其日約遲於農歷合朔(初一日)1—2日乃至3日,因此只要查清二者在月份上關係,便可將回曆換算為中國農曆。馬以愚先生稱:「回教紀年及齋戒之月,均依太陰曆。中國昔用夏正(即農曆),有閏之年,年為十三月。故齋戒之月,遇閏則連退。如今歲齋戒值夏正之九月,歲逢閏,改歲當以八月為齋。」[8]故若求得積年及所歷大陰曆的月數,即可依農曆十九年而有七個閏月的規律,將農曆換算為回曆,其日當有l——2日之差。

  計算舉例:已知西域魯穆馬依澤公於宋太祖建隆二年(961)應召人華編修《應天曆》,並將伊斯蘭天文傳人中國,他的事迹已收人《中國伊斯蘭百科全書》[9]與《中國回族大詞典》[10]等,被列為伊斯蘭與中國回族之大事。據《懷寧馬氏宗譜》記載,依澤公應召人華時年已四十,生於回曆勒比阿立勿里月(拉比爾·奧沃勒月,即回曆三月)第二十日,故於宋真宗景德二年(1005)五月初十日。宋太祖乾德四年(966)八月十三日奉旨授世襲候爵兼司天監。求依澤公生於公曆與農曆的年月日。

  解:馬依澤於宋建隆二年五月後來到中國時年已四句,已知建隆二年二月初三日為回曆310年元旦。由此可知馬依澤公生於回曆310年3月20日,合公曆

  310×0.9702+621.5691=922.3311年

  0.3311 ×365.25=120.934275日回曆 310年元月1日合公曆922年5月1日,再加 78日為回曆3月20日,公曆7月18日。

  又據農曆19年而有7個閏月,並依齋戒之月遇閏則遞退一月的規則,求算出回曆310年元旦約合農曆之月份為:

  (922-622)=300年

  300 ÷19 ×7=15.7895 ×7=110.53個月又每閏12個月為一年除去不算

  110.53÷12=9餘2.53,即後退2月自武德五年六月初三日退後 2月為四月,即依澤公生於梁龍德二年四月二日再加 78日合六月二十一日或二十日。

  2.公曆換算為農曆

  張家驥稱:「《瀧岡阡表》中最末一段:『(宋)熙寧三年,歲次庚戌四月辛酉朔,十有五日乙亥,男修表』。試算為陽曆日期」。

  他又說:「已知二十四節氣在黃道上的位置是固定的,但各年有平年和閏年之分,就使得回歸年天數與實際天數不等,每年在日曆上可差一天。這樣可以將陰曆經過任意整回歸年在現在的日曆上查到陽曆(陽曆一年相當陰曆的月數為 365.2422/29.530588=12.36827個月)。例如,可先在1995年的日曆上查得與(該年)陰曆對應的陽曆日期,這樣就找到了臨時落腳點,也就是找到了陰陽互換的關鍵。例如,可先以陰曆四月初一(日)為引數,在1995年日曆上查到對應的陽曆為4月30日。由於已經計算出經過的月數,將經過的月數的尾數(小數)化為日,加在4月30日上,就得到經過(1995-1070)整年數的陽曆日期,也就是起始陰曆日期對應的陽曆日期,即得到了待查的日期為4月30日加上0.64957×29.530588得到(1070年)5月19.1821840日。這樣就得到了所給例子的陰陽曆日期換算結果……」。

  0.64957月的由來,

  (1995-1070)×12.36827=11440.64957月

  已知依澤公生於梁龍德二年(922)六月二十一日,依下表提供的2099年各月初一日的公曆月日數,可以算出龍德二年六月二十一日的公曆月日數

  表5 公元2099年農曆各月初一日的公曆月日

  (2099-922)× 12.36827=1455.45379月

  餘數為 0.45379月 × 29.530588日=13.4O日

  因2099年五月初一日(包括該年闖二月)在公曆6月19日,加上計算所得的13日為龍德二年六月初一日的公曆月日,即該年7月2日,則該年農曆六月二十一日為該年7月22日。

  公元1995年六月初一日合公曆該年6月28日,代人以上計算程序亦得到上列相同或相近的結果。計算中發現農曆因閏月關係,其正月(如 1996年)常在該年公曆2月,此時可換用下表的公曆月日

  表6 公元2100年農曆各月初一日與公曆的月日

  3.計算結果的訂正

  實際上上列公曆換算為農曆時常有較大的誤差,如熙寧三年四月初一日為公曆1070年5月13日,而不是5月19日。通過中國曆法所用的於支記日法求算所用兩歷的干支,對所求結果加以訂正。

  如,馬依澤公生於回曆310年3月20日,自回曆曆元起算共曆日數為:

  自回曆元旦至其3月20日,共歷79日。

  自回曆元年元旦至309年元旦,共歷113個閏年196個平年。又回曆曆元在公曆622年7月16日,已知該日的干支序數為50,癸丑日,減1(因自甲子起算),餘49應加入下列算式中,

(309 × 354+113+79+49)÷60=1827.116667

0.116667 ×60=7

  干支序數為7,即庚午日。

  求公曆922年7月18日的干支,儒略曆900年的干支序數為:

  900 ×365.25÷60=5478.75

  餘數為,0.75 ×60=45;

  22年的於支序數為,

  (22 × 365.25+7)÷ 60=134,餘2.5按3計,式中的7,為儒略曆元年元旦的干支序數;

又7月 1日自該年元旦起算共歷182日,干支序數為2,再加17日為7月18日

  (45+3+2+17)÷60=1,餘7,

  結果與回曆計算所得相符,即依澤公生於回曆310年3月20日,中歷庚戌日。

  4 求首朔干支[11]

  以上計算所得的中歷干支應為所求月內的幾日,如對所求月首(即月初一日)的干支尚不清楚,則求得的干支不能算出它在月內的日數。

  首朔是指農曆每年冬至(平冬至)後第一個朔日,冬至都在農曆年前的十一月,故首朔就是所求該年前的十二月初一日的干支。(曆象考成後編》以雍正元年(172)冬至起算,其干支係數為32.12253,干支為丙申,而冬至後的 15.12633日為首朔,干支為壬子(33+15.12633)。自此可求算出 922年 7月即農曆六月初一日的干支,以確定本文四·3節中所求的干支為該年六月第幾日。求算過程如下:

  先以1722減921所得之數稱積年,積年乘歲實之積為經此積年所曆日數,所曆日數減32.12254之差被o後的餘數再為o所減,所得之差就是922年冬至的干支(計算中向上推算或上考往古要用60減)。所歷總日數減0.12254,再加上922年冬至之餘數將所歷總日數化為整數後,加上15.12633日所得之和用29.530588除之,除之所得餘數,再加上龍德二年冬至干支,得首朔干支,首朔干支再加上 6 × 29.530588後,累減60而得的餘數,為龍德二年六月初一日的干支,六月一日與月內干支差即為六月內的日數。計算過程如下:[(1722-921)× 365.2423442-32.12254]÷60=4875.449784

  0.44784 ×60=33.01269,干支序數已過33。當為34,丁西日,經與《中西回史日曆》對照無誤。再求922年首朔干支,

  292 59.1O99一0.12254十0.01269=292559

  (292559+15.12633)÷ 29.530588=990.4948

0.49498 ×29.530588=14.1510,再加34,合49,干支為壬子,所得與史書所載相同。[12]因首朔再過六個月方是龍德二年六月初一日,故

  (49+6 ×29.530588)÷60=3,餘46月83528,干支序數41為庚戌日,為六月初一日干支,再過二十日為六月二十一日,即馬依澤公出生之日,

  (47+20)÷60=1,餘7,庚午日結果與回曆、公曆推算所得相同,即馬依澤公出生於回曆 310年 3月20日,農曆梁龍德二年六月二十一日,公曆922年7月18日。

計算中沒有採用定朔與定氣,可能有數時之差。

  因將回曆,公曆換算成農曆時需用干支以訂正,特將於支次序列表如下:

  表7 干支次序表

  參考文獻

  [1] 馬堅:《回曆綱要》,中華書局,1955年版。

  [2] 鄭天傑:《曆法叢談》,台灣華同出版社,1977年版。

  [3] 鞠德源:《萬年曆譜》,山西人民出版社,1989年版。

  [4] 陳久金:《回回天文學史研究》,廣西科技出版社,1996年版。

  [5] 張家驥:「陰陽曆日期互換的計算」,《北京大學學報》(自然科學版),1998年第 4期。

  [6] 馬以愚:《回回曆》,商務印書館,1947年版;《曆法考證》手稿,1956年。

  [7] 唐漢良:《曆法問答》,陝西科技出版社,1980年版。

  [8] 馬以愚:《中國回教史鑒》,商務印書館,1947年版。

  [9] 宛耀賓、楊克禮等:《中國伊斯蘭百科全書》,四川辭書出版社,1994年版。

  [10]邱樹森:《中國回族大詞典》,江蘇古籍出版社,1992年版。

  [11]樂吾氏:《歷算須知》,1935年編印,馬以愚先生抄錄;欽定《曆象考成後編》,文淵閣《四庫全書》, 台灣商務印書館重印。

  [12]陳 垣:《二十史朔問表》,中華書局,1926年版。

  「收稿日期」1999-10-13

  「作者簡介」馬肇曾 北京科技大學化學系。北京100083

推薦閱讀:

農曆五月,這幾個屬相要破財
十二生肖氣運14年9月8日—10月8日止﹝為農曆八月﹞
9月21日農曆是幾月幾?什麼星座?星座運勢如何?
農曆和陰曆竟然不是一回事兒?

TAG:農曆 |