1. 求星期公式
星期=[5+A(實(shí)際天數(shù))] mod 7
2. 干支計(jì)算公式
六十甲子干支序號(hào),從1->59->0。
六十甲子干支序號(hào)=[23+A(實(shí)際天數(shù))] mod 60
3. 二十八宿計(jì)算公式
二十八宿序號(hào)=[23+A(實(shí)際天數(shù))] mod 28
4. 實(shí)際天數(shù)A的計(jì)算
A=B(基本天數(shù))+C(閏日天數(shù))
B=(計(jì)算年-1)*365+(要計(jì)算到年的月日天數(shù))
例:1984年2月1日的基本天數(shù)B=(1984-1)*365+(31+1)=723827(天),
其中,31是1月為31天,1為2月1日為1天。
公元308年8月28日的基本天數(shù)
B=(308-1)*365+(31+28+31+30+31+30+31+27)=112055+239=112294(天)
這里的(要計(jì)算到年的月日天數(shù)),用的是公歷,月日天數(shù)的規(guī)則我好
象小學(xué)就學(xué)過了。哈哈……
C=(計(jì)算年-1) div 4 -誤差修正值 + fixValue2
fixValue2為0或者1。常值為0,當(dāng)年數(shù)為閏年(公歷閏年法)之中的3月
1日之后的為1。
誤差修正值推算:
公元元年1月1日至1582年10月14日為0。
1582年10月15日至1699年12月31日為10。
從1701年1月1日起每增加一個(gè)世紀(jì)累加1,但能被400除盡的世紀(jì)不累
加1。此方法推算即可。
--有一個(gè)問題,1700年這一年的修正值應(yīng)為多少呢?算法中正好沒有
講到,但看來應(yīng)該是10。
例1701年1月1日起誤差值為11,而1801年1月1日起誤差修正值為12,
而1901年1月1日起誤差修正值為13,
但2001年誤差修正值仍為13,因?yàn)?000年能被400整除,故不累加。而
2101年1月1日起誤差修正值為14。
5. 實(shí)例:1998.3.15的星期、干支與二十八宿
B=(1998-1)*365+(31+28+15)=728979
C=(1998-1) div 4 - 13 + 0 = 486
A=B+C=728979+486=729465
星期序號(hào)=(5+729465) mod 7=0,即為星期日
干支序號(hào)=(13+729465) mod 60=58,即為辛酉
二十八宿序號(hào)=(23+729465) mod 28=4,即為房
1. 干支記年
1 2 3 4 5 6 7 8 9 10
甲子 乙丑 丙寅 丁卯 戊辰 己巳 庚午 辛未 壬申 癸酉
11 12 13 14 15 16 17 18 19 20
甲戌 乙亥 丙子 丁丑 戊寅 己卯 庚辰 辛己 壬午 癸未
21 22 23 24 25 26 27 28 29 30
甲申 乙酉 丙戌 丁亥 戊子 己丑 庚寅 辛卯 壬辰 癸巳
31 32 33 34 35 36 37 38 39 40
甲午 乙未 丙申 丁酉 戊戌 己亥 庚子 辛丑 壬寅 癸卯
41 42 43 44 45 46 47 48 49 50
甲辰 乙巳 丙午 丁未 戊申 己酉 庚戌 辛亥 壬子 癸丑
51 52 53 54 55 56 57 58 59 60
甲寅 乙卯 丙辰 丁巳 戊午 己未 庚申 辛酉 壬戌 癸亥
公元后:年份(y)計(jì)算方式 :((y%60)-4+60)%60
公元前: 年份(y)計(jì)算方式: (57-y%60+60)%60
2.干支記月
年 份 | 一月 | 二月 | 三月 | 四月 | 五月 | 六月 | 七月 | 八月 | 九月 | 十月 | 十一月 | 十二月 |
甲、巳 | 丙寅 | 丁卯 | 戊辰 | 己巳 | 庚午 | 辛未 | 壬申 | 癸酉 | 甲戌 | 乙亥 | 丙子 | 丁丑 |
乙、庚 | 戊寅 | 己卯 | 庚辰 | 辛巳 | 壬午 | 癸未 | 甲申 | 乙酉 | 丙戌 | 丁亥 | 戊子 | 己丑 |
丙、辛 | 庚寅 | 辛卯 | 壬辰 | 癸巳 | 甲午 | 乙未 | 丙申 | 丁酉 | 戊戌 | 己亥 | 庚子 | 辛丑 |
丁、壬 | 壬寅 | 癸卯 | 甲辰 | 乙巳 | 丙午 | 丁未 | 戊申 | 己酉 | 庚戌 | 辛亥 | 壬子 | 癸丑 |
戊、癸 | 甲寅 | 乙卯 | 丙辰 | 丁巳 | 戊午 | 己未 | 庚申 | 辛酉 | 壬戌 | 癸亥 | 甲子 | 乙丑 |
注:干支與陽歷一樣都是以地球公轉(zhuǎn)周期計(jì)算的,陰歷最好轉(zhuǎn)為陽歷再計(jì)算,干支的月份是以二十四節(jié)氣為起始,和陰歷陽歷的月份都沒有直接關(guān)系
3.干支記日
G = 4C + [C / 4] + 5y + [y / 4] + [3 * (M + 1) / 5] + d - 3
Z = 8C + [C / 4] + 5y + [y / 4] + [3 * (M + 1) / 5] + d + 7 + i
其中 C 是世紀(jì)數(shù)減一,y 是年份后兩位,M 是月份,d 是日數(shù)。1月和2月按上一年的13月和14月來算。奇數(shù)月i=0,偶數(shù)月i=6。G 除以10的余數(shù)是天干,Z 除以12的余數(shù)是地支。
計(jì)算時(shí)帶[ ]的數(shù)表示取整。
聯(lián)系客服