論壇回覆創建

Page 2 of 2
  • kskfk

    會員
    5 5 月, 2006 在 5:35 上午 in reply to: 求日柱的公式

    公式很好用。但 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 … 地支是午

  • kskfk

    會員
    27 4 月, 2006 在 9:39 上午 in reply to: 儒略日數的計算

    隨著一聲新年到,『富神爺爺』看顧您了,
    你獲得了『富神爺爺』贈送現金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]

  • kskfk

    會員
    27 4 月, 2006 在 9:28 上午 in reply to: 儒略日數的計算

    [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]

  • kskfk

    會員
    26 4 月, 2006 在 2:06 下午 in reply to: 方紀然大師歲出道時發表的鐵版演算秘訣(補充 )

    Thanks in advance.

  • kskfk

    會員
    26 4 月, 2006 在 2:03 下午 in reply to: [轉貼]取數歌訣

    我可以看嗎?

Page 2 of 2