精華區beta sky 關於我們 聯絡資訊
首先 我們現在的曆法並沒有使用很久 印象沒錯的話 不超過一千年 所以往回推的意義不大 (應該也沒有公式解,因為不規則) 但是如果執意要用現在的曆法往回推 計算方法則完全相同 首先 西元元年 的日曆會和 西元2001年 相同 因為 2001 mod 400 = 1 因此 西元600年 的日曆會和 西元200年 相同,也會和 西元2200年 相同 因為 200 mod 400 = 600 mod 400 = 2200 mod 400 = 200 (1 + (2200 - 2001) + int((2200 - 2001)/4) - int((2200 - 2001)/100)) mod 7 = 3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 期間有多少個潤年 因此,西元600年的1月1日是星期三 剩下的就都一樣了 這個 form 已經跟公式非常地像了 如果您想寫程式 下面的式子可以給您當參考 Let Y = (Year - 1) mod 400 W = (1 + Y + int(Y/4) - int(Y/100)) mod 7 我比較有興趣的是 存不存在國曆和農曆的轉換的公式解 (可以是任何形式的計算步驟,但是不包括查表法) "誰知道萬年曆公式??" <nj.bbs@bbs.ndhu.edu.tw> 撰寫於郵件新聞 :44HPci$5Xe@bbs.ndhu.edu.tw... > ※ 引述《"我只是一個業餘的愛好者" <Traveler@somewhere.universe>, 看板: Sky》之 銘言: > : 詳細的“公式”,我沒有記 > : 但是不難推算 > : 365 mod 7 = 1 > : 所以沒有潤年的話,同一日期,每年會差一天 > : 例如:今年(2003)的 1/1 是星期三,明年(2004)的 1/1 就是星期四 > : 有潤年當然就是差兩天囉 > : 因為明年(2004)是潤年 > : 所以,後年(2005)的 1/1 就是星期六了 > : 如此這般 > : 找一天當基準 > : 就可以算出其他任何一天是星期幾了 > : 通常是用 1/1 作基準(而且通常是用 2001/1/1) > : 然後去算 ?/? 是一年當中的第幾天 > : 例如: > : 已知 2001/1/1 是星期一 ──┐ ┌─ 沒有潤年 > : │ │ > : 則今年的 1/1 是星期三 1 + (2003-2001) + 0 = 3 > : └───────────────┘ > : 則今年的 4/5 是星期幾? > : (3 + (31+28+31+5) - 1) mod 7 = 6 > : 另外 > : 2001年的 1/1 會和 2401 年的 1/1 同一天 > : 因為 400 年就差了 400 天 > : 又潤了 97 次,差了 97 天 > : (400 + 97) mod 7 = 0 > : 有錯請指教 > > 先謝謝你花時間解釋... > 你的理論想法跟我一樣.. > 不過這大概適用於最近幾年的吧.. > 例如..如果我問西元600年的6月6日星期幾呢? > 可不可以用很快時間計算就可以算出了嗎?? > 會不會有一種簡單的公式呢? > 謝謝你的回答!