|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2005-12-12, 01:31 PM | #1 |
長老會員
|
星期的公式
就是使用什麼原理或公式,可以算出某年某月某日是星期幾?
例如:1983年3月20號是星期幾 |
__________________ 你的回應是我發貼的最大原動力,給個花也可以 -=-=->海賊王-動畫1~350下載<-=-=- 如有解壓縮密碼為:史萊姆第一個家-NETBIRD私人分享於VIP區 http://forum.slime.com.tw/ |
|
送花文章: 129,
|
2005-12-12, 02:22 PM | #2 (permalink) |
管理版主
|
每一種語言都有自己的保留字函式可用
比如 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 |
送花文章: 2027,
|
2005-12-12, 04:57 PM | #4 (permalink) | |
管理員
|
引用:
|
|
__________________ 在「專業主討論區」中的問題解決後,要記得按一下 按鈕喔, 這是一種禮貌動作。 一樣是在「專業主討論區」中發問,不管問題解決與否,都要回應別人的回答文喔。 不然搞 [斷頭文],只看不回應,下次被別人列入黑名單就不要怪人喔。 天線寶寶說再見啦~ ... 天線寶寶說再見啦~ 迪西:「再見~ 再見~」 『 Otaku Culture Party 』 關心您 ... |
||
送花文章: 37855,
|
2005-12-13, 12:27 AM | #5 (permalink) |
長老會員
|
謝謝
我是使用perl寫的,他也有函數可以直接拿到系統的星期 但我要從檔案讀出資料再運算,所以需要公式 我已經想了兩天,我之後要mod 7,看餘數,就是是在潤年怎麼算就搞混了 我參考了下面的很多種方法,看起來可以,但那麼多種,看了便搞混了 http://www.geocities.com/calshing/dayofweek.htm 現在已經寫出來了,謝謝mini大 |
送花文章: 129,
|