-
求日柱的公式
Posted by 求易者 on 4 5 月, 2006 在 11:25 上午公式:(年-1924)*5+(年-1924+3.99)/4+15+日数
举例:求1982年10月3日的干支,
(1982-1924)*5+(1982-1924+3.99)/4+15+31+28+31+30+31+30+31+31+30+3=596.499
———————————————-1982年1月2月3月4月5月6月7月8月9月10月
596.499只取到个位数,即取596除以60余56,甲子为1,数到56是已未,所以1982年10月3日的干支为已未。
1。结果没有四舍五入,只取到个位数。比如得549.99,也只取549。而不取约等550。
2。用阳历摧算。
好用的就支持一下。dxy_c1 replied 16 年, 11 月 前 17 Members · 16 Replies -
16 Replies
-
公式很好用。但 3.99 可直接改為 3。
另外,第一項中的 1924 可簡化成 1900 使減數更容易些。公式變成:(年-1900) * 5 + (年-1900+3) / 4 + 9 + 當年年初起累積日數
答案取整數,再除 60 取餘數。
例如:2006年5月5日
(2006-1900)*5 + (2006-1900+3)/4 + 9 + (31+28+31+30+5)
= 106*5 + 109/4 + 9 + 125
= 530 + 27.25 + 9 + 125
= 691.25
整數 = 691
除 60 取餘數 = 31
31 除 10 取餘數 = 1 … 天干是甲
31 除 12 取餘數 = 7 … 地支是午 -
-
-
[font=新細明體]公式都有其適用範圍[/font][font=新細明體]。[/font][font=新細明體]這個公式在[/font]1900[font=新細明體]年以前[/font]([font=新細明體]含[/font])[font=新細明體],[/font][font=新細明體]及[/font]2101[font=新細明體]年以後[/font]([font=新細明體]含[/font])[font=新細明體],必須經過修正才會正確。比如1900年的元旦,查萬年曆是甲戌日,干支序數11。代入公式得 [/font][font=Tahoma][size=10pt](1900-1900) * 5 + (1900-1900+3)/ 4 + 9 +1 =0+0+9+1=10[/size][/font][font=Tahoma] ([/font][font=新細明體]取高斯整數[/font][font=Tahoma]) [/font][font=新細明體]為癸酉日[/font][font=新細明體],少了一天。2101年後的問題則是因為沒有考慮到閏年的微調。陽曆4年一閏,但逢百年不閏,400的倍數又閏。2100年不是閏年,所以2101年以後原公式至少多算一天,理由後述。[/font]
[font=新細明體]曆法首重曆元。1900年元旦就是這個公式的「曆元」(起點),假設西元年為Y、年初累積日數為D、閏年修正量為C,則干支序數可表為 F(Y,D,C) = (Y-1900)*5 + [(Y-1900-1)/4] + (D-1) + 11 + C [/font]
[font=新細明體]第一項為平年成份造成的元旦干支序數推移[/font][font=新細明體]。平年有365天,365/60甲子餘5,所以每過一年,元旦的干支序數都會加5。(Y-1900)代表年距,年距乘以5就是干支序數的總增量。[/font]
[font=新細明體]第二項為閏年成份造成的額外增量。每四年一閏,1900年逢百不閏,離1900年最近的閏年是1904,可我們考慮的是元旦,1904年的元旦還未過閏月,因此不會造成干支序數的增加。 [年距/4]= [(1904-1900)/4]=[4/4]=1不對。綜此必須改採 [(年距-1)/4] 才能解決 (用窮舉法可歸納此趨勢),也就是[(Y-1900-1)/4],這代表從1900年元旦到Y年元旦的閏年或閏月總數(未修正)。[/font]
[font=新細明體]第三項 (D-1) 為求算日到當年元旦的日距,代表干支序數的日增量。算D時須注意該年是否為閏年,閏年的二月有29天。[/font]
[font=新細明體]第四項 11 為曆元的干支序數初始值,當其他各項皆為零時的函數值,也就是1900年1月1日的干支序數。[/font]
[font=新細明體]最後一項閏年修正量C,可以推算: 從1900年到 Y年,每過一個百年就減一,經過一個400的倍數年就再加一回來。[/font]
[font=新細明體]整理一下 :[/font]
[font=新細明體]F(Y,D,C) =(Y-1900)*5 + [(Y-1900-1)/4] + (D -1) + 11 + C[/font]
[font=新細明體] = (Y-1900)*5 + [(Y-1900-1)/4] + 10 + D+ C[/font]
[font=新細明體] = (Y-1900)*5 +[(Y-1900+3)/4] + 9 + D + C[/font]
[font=新細明體]最後一個式子就是2F樓主的公式。[/font]
[font=新細明體]知道這個原理,任何年都可以當曆元,任何人都可以有自己的公式。[/font]
[font=新細明體] [/font]
[font=新細明體]曆史年代學及天文學上是以儒略週日(Julian Day簡寫JD)來計算干支和星期。曆元是西元前4713年1月1日儒略曆法的正午時。從那時刻開始JD恆不為負值,可用公式為:[/font]
[font=新細明體]干支序數 = (JD-10)/60 或(JD+50)/60之餘數 ; 星期數= (JD+1)/7之餘數。 [/font]
[font=新細明體]至於從現代陽曆換算JD,有些演算法可用,例如WiKi 百科; 本版其它貼文亦有述及。Jean Meeus’s Astronomical Algorithms chpater 7 專論 JD. Linux based 的計算器亦有現成公用程式可求JD.(換言之, 將來如果人手一隻google phone, 不用再記公式了)
[/font]
[font=新細明體][/font]
順便一提, JD 只是個”流日”編號, 與儒略曆或現代陽曆無直接關係.
[font=新細明體][/font]
[font=新細明體]江曉原教授的Blog有專文說此 (儒略曆還是格里曆? –再談關於歷史事件日期的推算與表達)
http://blog.sina.com.cn/s/blog_485f2bc8010009wm.html
[/font][font=新細明體][/font]
-
:emm01: :emm01: :emm01:[table][tr][td][/td][/tr][tr][td]
[/td][/tr][/table]
Log in to reply.