电竞比分网-中国电竞赛事及体育赛事平台

分享

關(guān)于公歷年月日與干支的轉(zhuǎn)化問題(

 小茹的幸福書房 2016-01-03
三、 公元日序數(shù)的算法: 

1、公元1582年10月4日前日子的公元日序數(shù)求法: 
不難按歷法知道: 
公元日(P)=365*(年號(Y) -1)+閏年數(shù)+ 本年的日數(shù) 
根據(jù)儒略歷四年一閏的法則(逢被4整除的均置閏)得: 

P = 365*(Y-1)+ [ Y/4] + Q 

式中“[ ]”是取整符號;Q是從要算的日子到1月1日的天數(shù)加1,由于公歷的月份有固定的天數(shù),1、3、5、7、8、10、12是大月31天,4、6、9、11日小月30天,2月份置閏月嚴(yán)格按28天算,(為了直觀些,稍后我會用坐標(biāo)來移及一些數(shù)學(xué)方法,表述成一條用月、日表示的代數(shù)式)。 
值得注意的是:閏年時,未到3月1日要減1。 

例1、 公元227年5月4日的公元日序數(shù)是:365*226+[227/ 4]+31+28+31+30+4=82670 
例2、 公元1582年10月4日的公元日序數(shù)是:365*1581+[1582/4] + 31*5+30*3+28+4 =577737 

2、公元1582年10月15日后的日子的公元日序數(shù)求法: 
公元1582年10月15日是公元1582年10月4日的后一天,故其公元日577738(見例2),格列哥里歷按四年一閏,被4整除的均置閏,但逢百年時需被400整除的方置閏,其它百年不置,故四百年有97閏。公式為: 

P=365*(Y-1)+ [Y/4] - [Y/100] +[ Y/400] +Q+15-3-10 
=365*(Y-1)+ [Y/4] - [Y/100] +[ Y/400] +Q +2 

式中第2、3、4項是格列哥里歷的置閏方法。我們可以對照比1582年以前的置閏方法,多了- [Y/100] +[ Y/400]一項,故需減去 - [1582/100]+[1582/400]以校正之;同時從1582年10月4日到1582年10月15日之間跳過了10日,所以同時減去10,使公元日連續(xù)。大家可以代入驗算一下,它與此1582年10月4日的序數(shù)是連續(xù)的。 

例3、 公元1582年10月15日的公元日序數(shù): 
365*1581+[1582/4] - [1582/100] + [1582/400] + 31*5+30*3+28+15+2 =577738 
例4、 公元2003年4月2日的公元日序數(shù): 
365*2002+[2003/4] - [2003/100] + [2003/400] + 31+28+31+2+2 =731309 

3、公元前日子的公元日序數(shù)求法: 
盡管儒略歷在公元前46年完成,但以前的日期一般的歷史書均按儒略歷上推,所以也從約定俗成。儒略歷按四年一閏,其公式是: 

公元日序數(shù)=365*年號(負(fù)號)+閏年數(shù)(負(fù)號)+本年的日數(shù)(正號) 
P= -365*Y - [(Y+3)/4]+Q 

公元前的求法與公元后的有所不同:后者的計算方向從年、從月、從日是一路遠(yuǎn)離原點的;前者則是“年”遠(yuǎn)離了原點,月、日反過來接近原點,這點大家要記住。 
(如果選取一個很前的原點,則可以使序數(shù)的方向永遠(yuǎn)為正,但為了便于一般人理解及習(xí)慣,我還是放棄了這樣敘述------事實上太初歷等古代歷法一般選取一個很遠(yuǎn)的天文日作原點的) 

例5、 公元前1年1月1日的公元日序數(shù)是:-365*1- [(3+1)/4 ]+1= -365 
例6、 公元前202年2月28日的公元日序數(shù):-365*202 – [(202+3)/4] + 31+28= -73722 

我們把三個公式并列如下: 
(公式1) 
P= -365*Y - [(Y+3)/4]+Q (公元前) 
P = 365*(Y-1)+ [ Y/4] + Q (公元后至1582年10月4日) 
P=365*(Y-1)+ [Y/4] - [Y/100] +[ Y/400] +Q +2 (1582年10月15日后)
 

(以下一段選讀) 
事實上我們可將坐標(biāo)“平移”,將原點移到公元1年2月28日。將3月1日“作為”一年的開端,平移的目的是為了使置閏放在一年的最后一天,減小置閏對各月份的影響。(事實上我開始推導(dǎo)時是用這方法的,求得結(jié)果后才平移成現(xiàn)在的方式)如此,作月份相應(yīng)減小2,(3=1,4=2,…………1月等于上年的11月,2月是12月),公元日序數(shù)則相應(yīng)增加59。如此則Q的值也可用相關(guān)的月(M)、日(D)代數(shù)式表示: 
Q=30(M-1)+[0.6(M-1)+0.5] +D 
(這純是個數(shù)學(xué)問題,我不想在這里證明。反正是十二個月,大家直接代入看看) 
如此變換后的公式變?yōu)椋篩年M月D日 (M為正常月減2,1月時為11月) 
(公式二) 
P= -365*Y - [(Y+3)/4]+30M+[0.6M-0.1]+D+29 (公元前) 
P = 365*(Y-1)+ [ Y/4] + 30M+[0.6M-0.1]+D+29 (公元后至1582年10月4日) 
P=365*(Y-1)+ [Y/4] - [Y/100] +[ Y/400] + 30M+[0.6M-0.1]+D+31 (1582年10月15日后) 

四、干支的求法 
知道了一個日子的公元日序數(shù)是,要求該日子的干支序數(shù)是一個很容易容易的事了,思路是: 
一已知干支的日子———推出原點的干支序數(shù)———推出任一歷史日子序數(shù) 
(讀者諸公一定想到用類似的方法求有固定周期的朔望了) 
不難知: 
歷史日子的干支序數(shù)= (原點的干支序數(shù)+ 公元日序數(shù))除以60取余數(shù) 
K=(‘K + P)mod 60 

利用例4,公元2003年4月2日的公元日序數(shù)是731309,干支乙巳(序數(shù)42)則 
42=(‘K+731309)mod 60 ‘K=42-731309= -731267= -47 =13 mod 60 
即原點(公元前1年12月31日)的干支序數(shù)為13(丙子),我們將結(jié)果代入公式一,則 
(公式三) 
K=(13+P)mod 60
 

例7、 求公元1582年10月15日的干支。利用例3的結(jié)果有 
K=(577738 + 13)mod 60=11,即該日甲戌。 

我們將公式三代入公式一,則 

K= (-365*Y - [(Y+3)/4]+Q+13 )mod 60 (公元前) 
K= (365*(Y-1)+ [ Y/4] +Q+13 )mod 60 (公元后至1582年10月4日) 
K=(365*(Y-1)+ [Y/4] - [Y/100] +[ Y/400] +Q +15)mod 60 (1582年10月15日后) 


我們當(dāng)然可以使用數(shù)學(xué)方法將公式化簡,以下是我使用的化簡式: 
(公式四) Y年M月D日(M從三月開始,M相應(yīng)減2) 

K= (-5Y-[(Y+3)/4]+30M+ [0.6M-0.1]+ D+42 ) mod 60 (公元前) 
K=(5Y+ [ Y/4] + 30M+ [0.6M-0.1] + D+37)mod 60 (1~1582:10:4) 
K=(5Y+ [Y/4] - [Y/100] +[ Y/400]+ 30M+ [0.6M-0.1]+ D+ 39)mod 60 (1582:10:4以后) 

我用手上天文臺編的三千年公歷干支朔望對照表抽樣校對了幾個日子,準(zhǔn)確無誤??梢娝彩遣捎猛瑯釉砭幱喌摹?nbsp;
反過來,知道干支及大約的月份,求公元日序數(shù)(公元歷)只是解方程的問題而已。 

五、舉例及應(yīng)用 

例8、 漢書所說高祖五年(己亥)二月甲午即皇帝位的,該日的公歷是多少? 
高祖五年己亥是前202年,二月大約在公歷3月附近,干支甲午序數(shù)31,代入公式四得 
-202*5 – [(202+3)/4]+30*1+[0.6M-0. 1]+D+42 =31 mod 60 
整理得 -989+D=31 mod 60 D=(31+989 ) mod 60 D=0 mod 60 
解出D=0,或60,即該日是3月0日(2月28日),或過60天以后的4月29日。 

驗算:嚴(yán)格按儒略歷四年一閏的算法,公元前202年2月28日的公元日序數(shù)為 –73722, 
-73722+13= -73709 = - 29 =31 mod 60 該日甲午。演算沒錯??! 

六、結(jié)語:方法是類似解釋幾何的的方法: 
首先建立一個連續(xù)時間坐標(biāo), 
第二是根據(jù)公歷的規(guī)律建立任意日子到原點間的距離公式(公元日序數(shù)) 
第三是對于有固定周期的屬性(干支、月相等),可從任一已知屬性的日子利用與原點的距離推出原點的屬性。
第四是根據(jù)原點的屬性利用某點與原的距離推知該點的屬性。 
第五公式的化簡與選擇只是一些技術(shù)問題。 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多