kskfk
會員論壇回覆創建
-
公式很好用。但 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 … 地支是午 -
隨著一聲新年到,『富神爺爺』看顧您了,
你獲得了『富神爺爺』贈送現金427個美元。[font=Courier New]至於 annifer123 說:
求出給定年(I),月(J),日(K)的儒略日:
儒略日 = K – 32075 + 1461 * (I + 4800 + (J-14) / 12) / 4
+ 367 * (J – 2 – (J-14) / 12 * 12) / 12
- 3 * ((I + 4900 + (J-14) / 12) / 100) / 4請問:這些數字是代表什麼意思啊。謝謝
其中包括
32075
1461
4800
4900
367
================================================其實公式應為:
JD = K – 32075 + int (365.25 * (I + 4800 + int ((J-14) / 12)))
+ int (30.5833333 * (J – 2 – int ((J-14) / 12) * 12))
- int (0.75 * (int ((I + 4900 + int ((J-14) / 12)) / 100)))
- 0.5簡化後:
JD = K – (365.25 * 88 – 67) + int (365.25 * (I + (4712 + 88) + int ((J-14) / 12)))
+ int (30.5833333 * (J – 2 – int ((J-14) / 12) * 12))
- int (0.75 * (49 + int ((I + int ((J-14) / 12)) / 100)))
- 0.5可知:
32075 = 365.25 * 88 – 67;有關 67 一數的處理見下面討論
1461 = 365.25 * 4
4800 = 4712 + 88
4900 = 由很多數組成,見下面討論
367 = int (30.6 * 12);而 30.5833333 實約等於 30.6再簡化後:
JD = K + 67 + int (365.25 * (I + 4712 + int ((J-14) / 12)))
+ int (30.5833333 * (J – 2 – int ((J-14) / 12) * 12))
- int (36.75 + 0.75 * int ((I + int ((J-14) / 12)) / 100))
- 0.5可知:
+int ((J-14) / 12) 為年中月份數作年份位值調整,當 J < 3 時,調整值為 -1,否則為 0。 所以 I + int ((J-14) / 12) = Y -int (J-14) / 12) * 12 為年中月份數在年份位值調整後撥回月份位值調整, 當 J < 3 時,調整值為 +12,否則為 0。 所以 J - int (J-14) / 12) * 12 = M Y 與 M 的定義年上文。 再簡化後: JD = K + 67 + int (365.25 * (4712 + Y)) + int (30.5833333 * (M - 2)) - int (36.75 + 0.75 * int (Y / 100)) - 0.5 月 日數 總日數 月數-1 x30.583333333 取整數 以總日數減之 1 31 31 2 28 59 1 30.58333333 30 29 3 31 90 2 61.16666667 61 29 4 30 120 3 91.75 91 29 5 31 151 4 122.33333333 122 29 6 30 181 5 152.91666667 152 29 7 31 212 6 183.5 183 29 8 31 243 7 214.08333333 214 29 9 30 273 8 244.66666667 244 29 10 31 304 9 275.25 275 29 11 30 334 10 305.83333333 305 29 12 31 365 11 336.41666667 336 29 +1 31 396 12 367.0 367 29 即月數減 1 再乘 30.583333333,取整數後加 29,便得原月份完結時的總日數。 但計算 JD 時,月份 J 還沒有完結,例如計算 J = 7 時,只有 6 個月已經完結, 所以用 7-2 = 5 作調整後的月數 = 6-1。 故 1 月 1 日至 7 月 12 日的總日數 = int (30.583333333 * (7 - 2)) + 29 + 12 = 193 int (Y / 100) = 世紀數。 0.75 * int ((I + int ((J-14) / 12)) / 100) = 0.75 * 世紀數 = 每 4 世紀減 3 日。 截至 1582 年時,每 4 世紀減 3 日則共減 11.25 日,多減了 1.25 日。 JD 公式中: +67 - 36.75 = +29 + 1.25 即:-36.75 = +29 + 1.25 - 67 所以: 4900 = 100 * 36.75 / 0.75 [/font] -
[font=Courier New]小小兔說:
儒略日起始時間為4713 BC
儒略日從中午12時開始,對應民用計算日期由凌晨開始多了半日所以再減0.5小小兔在 https://forum.shusquare.com/forum.php?mod=viewthread&tid=36165&extra=page%3D1 說:
格勒哥里十三世接受建議。執行以下改革並稱為格勒哥里曆。
1.將1582年10月5日至1582年10月14日這10日取消。
2.每個可被 4 整除的年份是一個閏年。
3.但00結尾的年份一定要被 400 整除,才能算是閏年。否則不是閏年。
因此,1700,1800,1900,2100 和 2200 年都不是閏年。而1600,2000,和 2400年是閏年。
=========================================其實,1582 年 10 月 14 日或以後的儒略日可以以下公式計算:
給定年(I),月(J),日(D)
先作年月份調整(調整原因見下面):
若 J < 3 則 Y = I - 1 及 M = J + 12 否則 Y = I 及 M = J JD = int (365.25 * (Y + 4712)) + int (30.6 * (M + 1)) - 63 - int (Y / 100) + int (int (Y / 100) / 4) + 2 + D - 0.5 其中: 第一行(年份日數計算): 365.25 = 儒略曆一年平均日數,每 4 年潤 1 日,不足 4 年不潤。 +4712 = 4713 - 1 4713 = 包含公元前 4713 年起的年份。 計算 JD 時,年份 Y 還沒有完結,例如計算 Y = 2006 時,由公元 1 年起計,只有 2005 年已經完結,所以需要減 1。將 -1 與 4713 結合,得 +4712。 第二行(月份日數計算): 30.6 及 +1 及 -63 在後面談 第三行(格勒哥里改曆及置潤日數調整): - int (Y / 100) = 取世紀數 = 每世紀減 1 日 + int (int (Y / 100) / 4) = 取每四世紀數 = 每四世紀加 1 日 因 1582 年改曆,先減世紀數 15,再加回 int (15/4) = 3 日,等如減了 12 日,所以需再加 2 日,便減了 10 日,等於格勒哥里曆改革時取消的日數。 以後每世紀減 1 日,每四世紀加回 1 日,便合格勒哥里曆。 第四行(日數調整): -0.5 = 調整儒略日從中午12時開始的規定。 月份日數計算: 數學界發現下面事實: 月 日數 總日數 月數+2 x30.6 取整數 減總日數 1 31 31 2 28 59 3 31 90 5 153.0 153 63 4 30 120 6 183.6 183 63 5 31 151 7 214.2 214 63 6 30 181 8 244.8 224 63 7 31 212 9 275.4 275 63 8 31 243 10 306.0 306 63 9 30 273 11 336.6 336 63 10 31 304 12 367.2 367 63 11 30 334 13 397.8 397 63 12 31 365 14 428.4 428 63 +1 31 396 15 459.0 459 63 +2 28 424 16 489.6 489 63 即先把 1 及 2 月調到上一年 12 個月後面,作 13 及 14 月計算, 然後把月數加 2 再乘 30.6,取整數後減 63,便得原月份完結時的總日數。 但計算 JD 時,月份 J 還沒有完結,例如計算 J = 7 時,只有 6 個月已經完結, 所以用 7+1 = 8 作調整後的月數 = 6+2。 故 1 月 1 日至 7 月 12 日的總日數 = int (30.6 * (7 + 1)) - 63 + 12 = 193 2006 年 4 月 27 日儒略日為: JD = int (365.25 * (2006 + 4712)) + int (30.6 * (4 + 1)) - 63 - int (2006 / 100) + int (int (2006 / 100) / 4) + 2 + 27 - 0.5 = 2453852.5 [/font]