![]() |
星期的公式
就是使用什麼原理或公式,可以算出某年某月某日是星期幾?
例如:1983年3月20號是星期幾 |
每一種語言都有自己的保留字函式可用
比如 VB 是 Weekday =================== Weekday 函數範例 本範例使用 Weekday 函數來傳回某一日期為星期幾。 Dim MyDate, MyWeekDay MyDate = #February 12, 1969# ' 指定一日期。 MyWeekDay = Weekday(MyDate) ' MyWeekDay 的值為 4,因為 MyDate 是星期四。 =================== 其實要自己設計也很簡單的 以公元0001年為起點 每四年有一個潤年 所以 (公元XXXX年 / 4) 看能否整除 能的話 當年的2月即為29天 否則 當年的2月即為28天 那其他月份是固定的 大月(31天) 1 3 5 7 8 10 12 小月(30天) 4 6 9 11 0001年 01月 01日 是 星期一 所以VB裡 MsgBox Weekday("0001 01 01") 會出現 "2" (代表星期一) 回過頭來 1983年3月20號是星期幾? 1983 mod 4 = 3 不是潤年(2月只有28天) 所以 1月+2月=31+28 再 +20 = 第79天 0001~1983 總共 365*(1983-1)= 723430天 再加每4年多一天= (1983-1)/4 捨棄小數點 = 495 1983年3月20號= 723430+495+79= 公元第724004天 724004 mod 7 = 1,所以是 星期日 (如果 mod 7 = 0,表示是星期六) 換算表 ########## 星期日 = 1 星期一 = 2 星期二 = 3 星期三 = 4 星期四 = 5 星期五 = 6 星期六 = 0 ########## 驗證 2000年 12月 12日 (星期2) 729635+ 499+ (186+120+29)=335+ 12=730481 2005年 12月 01日 (星期4) 731460+ 501+ (186+120+28)=334+ 1=732296 1995年 07月 12日 (星期3) 727810+ 498+ (93+60+28)=181+ 12=728501 |
我想把日期的規則都寫進程式就可以了
如果用Java的話 可以用Date類別處理 |
引用:
|
謝謝
我是使用perl寫的,他也有函數可以直接拿到系統的星期 但我要從檔案讀出資料再運算,所以需要公式 我已經想了兩天,我之後要mod 7,看餘數,就是是在潤年怎麼算就搞混了 我參考了下面的很多種方法,看起來可以,但那麼多種,看了便搞混了 http://www.geocities.com/calshing/dayofweek.htm 現在已經寫出來了,謝謝mini大 |
所有時間均為台北時間。現在的時間是 12:49 PM。 |
Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.
『服務條款』
* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *