公元後日期的紀日干支計、星期和二十八宿演算法
公元後日期的紀日干支計、星期和二十八宿演算法
筆演算法則和公式
知陽曆則知日干支和星期數,此法雖然較麻煩,但掌握後也很容易。
一、日基數演算法
某年年數減一,乘以365,再加上從年首元月1日是起順數到所求的換算日期為止的日數之和,即為某年某月某日的日基數。
如求公元後319年4月3日的日基數
(319-1)*365+(31+
求公元後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:演算法 |