標籤:

公元後日期的紀日干支計、星期和二十八宿演算法

公元後日期的紀日干支計、星期和二十八宿演算法

筆演算法則和公式

知陽曆則知日干支和星期數,此法雖然較麻煩,但掌握後也很容易。

一、日基數演算法

某年年數減一,乘以365,再加上從年首元月1日是起順數到所求的換算日期為止的日數之和,即為某年某月某日的日基數。

如求公元後319年4月3日的日基數

                元月  2月  3月 4月

                日數 日數 日數 日數

(319-1)*365+(31+  28+  31+   3)=318*365+93=116163

求公元後1984年2月1日的日基數

(1984-1)*365+31+1=723827

公元後1984年3月5日的日基數為

(1984-1)*365+31+28+5=723859

二、總閏日數演算法

19世紀後閏日修正值:10(在改歷時銷去的日數)+1(17世紀停閏日數)+1(18世紀停閏日數)+1(9世紀閏日數)=13

法則1:換算日期在公元後1582年10月4日起以前的日期,一律按儒略曆的閏法規定,某年數通被4除盡的年份,為閏年;不能被4除盡的年份為平年。某年年數減1除4得的商,即為某年某月某日的總閏日數。

法則2:換算日期在公元後1482年10月4日以後的日期,一律按格勒哥里歷的閏法規定:不是世紀整百數的年份能被4整除的為閏年,不能被4除盡的為平年。是世紀整百數的年份能被400除盡的才為閏年,不能被400除盡的仍為平年。

但不論法則1與法則2,凡求總閏日數遇閏年年份,換算日期在3月1日起以後的日子,總閏日數應加1日。

算命法只關心現代社會,公元1582年10月4日之前的就不做計算了,只看以後的。如求公元後1984年2月1日的總閏日數為:

1984除以4,能被4整除,所以認定該年為閏年。因為換算日期在3月1日以前,所以總閏日數不加1.

(1984-1)/4-13=495-13=482(總閏日數)

若是求1984年3月5日的總閏日數,則需加1,總閏日數為483天.因為2月份有29天。

三、真正日演算法

如求公元後1984年2月1日的真正日數為:

日基數+總閏日數=723827+482=724309日

如果是求公元後1984年3月5日的真正日數,則為:

日基數+總閏日數=723859+482+1=724342

四、紀日干支演算法

如公元1984年2月1日的紀日干支序數為:

(法則定數+真正日數)/60=(13+724309)/60=2(干支序數)

甲子為1,乙丑為2,則此日為乙丑日。

公元1984年3月5日的紀日過干支序數為

(13+724342)/60=724355/60=35,該日為戊戌日。

五、星期演算法

法則:法則定數5加上真正日數的和(若和數大於7或7以上的倍數時,要先除去7的倍數取其餘數代之,如能除盡,即以日作為星期序數),即為某年某月某日蝗星期序數。

如公元1984年2月1日的星期序數為:

(法則定數+真正日數)/7=(5+724309)/7=3,則此日為星期三。

如公元1984年3月5日的星期序數為:

(5+724355)/7=0,此日為星期日

六、二十八星宿演算法

法則:法則定數23加上真正日數得的和,除去28,取其餘數。

如1984年2月1日的星宿數:

(23+724309)/28=28.

 以後有時間再補心演算法和簡易演算法

推薦閱讀:

簡諧振子受迫運動的簡單數值計算
從零開始手敲次世代遊戲引擎(四十五)
基於文本特徵的價格模型
DL應用:query生成和query推薦
鄰接矩陣的應用

TAG:演算法 |