網路上有一隻程式
http://sean.wox.org/ap/calendar/
看的懂得也許可以解出他計算的方法
※ 引述《Traveler@somewhere.universe (我只是一個業餘的愛好者)》之銘言:
> 首先
> 我們現在的曆法並沒有使用很久
> 印象沒錯的話
> 不超過一千年
> 所以往回推的意義不大
> (應該也沒有公式解,因為不規則)
> 但是如果執意要用現在的曆法往回推
> 計算方法則完全相同
> 首先
> 西元元年 的日曆會和 西元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...
> 銘言:
> > 先謝謝你花時間解釋...
> > 你的理論想法跟我一樣..
> > 不過這大概適用於最近幾年的吧..
> > 例如..如果我問西元600年的6月6日星期幾呢?
> > 可不可以用很快時間計算就可以算出了嗎??
> > 會不會有一種簡單的公式呢?
> > 謝謝你的回答!
--
60ff6e79f78ef54cc4b7e836ef7fe050
--
┌─────◆KKCITY◆─────┐ ╱ ╱  ̄ ▌ ̄  ̄ ╲╱ BBS 城邦
│ bbs.kkcity.com.tw │ ╲ ╲ ╴ ▌ ▌ ▏ KK免費撥接
└──《From:210.63.146.2 》──┘ http://www.kkcity.com.tw/freeisp/