史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2005-12-12, 01:31 PM   #1
netbird
長老會員
 
netbird 的頭像
榮譽勳章
UID - 152953
在線等級: 級別:37 | 在線時長:1580小時 | 升級還需:16小時級別:37 | 在線時長:1580小時 | 升級還需:16小時
註冊日期: 2004-09-13
文章: 271
精華: 0
現金: 243 金幣
資產: 79059 金幣
預設 星期的公式

就是使用什麼原理或公式,可以算出某年某月某日是星期幾?

例如:1983年3月20號是星期幾
__________________
你的回應是我發貼的最大原動力,給個花也可以
http://www.twbbs.net.tw/upload/forum_logo/257.gif-=-=->海賊王-動畫1~350下載<-=-=-
如有解壓縮密碼為:史萊姆第一個家-NETBIRD私人分享於VIP區

http://forum.slime.com.tw/
netbird 目前離線  
送花文章: 129, 收花文章: 149 篇, 收花: 1102 次
回覆時引用此帖
舊 2005-12-12, 02:22 PM   #2 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:96 | 在線時長:9661小時 | 升級還需:136小時級別:96 | 在線時長:9661小時 | 升級還需:136小時級別:96 | 在線時長:9661小時 | 升級還需:136小時級別:96 | 在線時長:9661小時 | 升級還需:136小時級別:96 | 在線時長:9661小時 | 升級還需:136小時級別:96 | 在線時長:9661小時 | 升級還需:136小時
註冊日期: 2002-12-07
文章: 13247
精華: 0
現金: 26237 金幣
資產: 3024047 金幣
預設

每一種語言都有自己的保留字函式可用
比如 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
mini 目前線上  
送花文章: 1999, 收花文章: 7956 篇, 收花: 26748 次
回覆時引用此帖
舊 2005-12-12, 03:28 PM   #3 (permalink)
註冊會員
 
snoopy 的頭像
榮譽勳章
UID - 33737
在線等級: 級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時
註冊日期: 2003-02-02
VIP期限: 2011-06
住址: 台南共和國
文章: 1831
精華: 0
現金: 12744 金幣
資產: 12834 金幣
預設

我想把日期的規則都寫進程式就可以了
如果用Java的話 可以用Date類別處理
snoopy 目前離線  
送花文章: 623, 收花文章: 392 篇, 收花: 1288 次
回覆時引用此帖
舊 2005-12-12, 04:57 PM   #4 (permalink)
管理員
 
getter 的頭像
榮譽勳章
UID - 6433
在線等級: 級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時
註冊日期: 2002-12-08
住址: 天線星球
文章: 8157
精華: 0
現金: 19955 金幣
資產: 765391 金幣
預設

引用:
作者: mini
每一種語言都有自己的保留字函式可用
比如 VB 是 Weekday
===================
Weekday 函數範例
本範例使用 Weekday 函數來傳回某一日期為星期幾。

Dim MyDate, MyWeekDay
MyDate = #February 12, 1969# ' 指定一日期。
MyWeekDay = Weekday(MyDate) ' MyWeekDay 的值為 4,因為 MyDate 是星期四。
========...
好利害阿 . . .
__________________
在「專業主討論區」中的問題解決後,要記得按一下 http://forum.slime.com.tw/images/stamps/is_solved.gif 按鈕喔,
這是一種禮貌動作。

一樣是在「專業主討論區」中發問,不管問題解決與否,都要回應別人的回答文喔。
不然搞 [斷頭文],只看不回應,下次被別人列入黑名單就不要怪人喔。

天線寶寶說再見啦~ ... 天線寶寶說再見啦~

迪西:「再見~ 再見~」

Otaku Culture Party 關心您 ...
getter 目前離線  
送花文章: 37855, 收花文章: 6441 篇, 收花: 26052 次
回覆時引用此帖
舊 2005-12-13, 12:27 AM   #5 (permalink)
長老會員
 
netbird 的頭像
榮譽勳章
UID - 152953
在線等級: 級別:37 | 在線時長:1580小時 | 升級還需:16小時級別:37 | 在線時長:1580小時 | 升級還需:16小時
註冊日期: 2004-09-13
文章: 271
精華: 0
現金: 243 金幣
資產: 79059 金幣
預設

謝謝

我是使用perl寫的,他也有函數可以直接拿到系統的星期

但我要從檔案讀出資料再運算,所以需要公式

我已經想了兩天,我之後要mod 7,看餘數,就是是在潤年怎麼算就搞混了

我參考了下面的很多種方法,看起來可以,但那麼多種,看了便搞混了
http://www.geocities.com/calshing/dayofweek.htm

現在已經寫出來了,謝謝mini大
netbird 目前離線  
送花文章: 129, 收花文章: 149 篇, 收花: 1102 次
回覆時引用此帖
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 09:16 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1