作者adrianshum (Alien)
看板Programming
標題Re: [問題] 如何算出week of month?
時間Thu Feb 25 12:33:15 2010
※ 引述《xanlich (...)》之銘言:
: 標題: [問題] 如何算出week of month?
: 時間: Thu Feb 25 10:28:40 2010
:
:
: 請問一下, 大部份時間元件沒有week of month(現在是該月的第幾週)
:
: 如果要使用, 怎麼樣才算的出來? 假設知道今天是幾號和星期幾
:
: 號為1~31 星期一~星期日為1~7, 謝謝
:
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 122.116.45.34
: → adrianshum:你每週是以星期一還是星期日當開始? 61.238.156.189 02/25 12:07
: → adrianshum:直覺去想, 靠日期幾和幾號, 就能推出當 61.238.156.189 02/25 12:13
: → adrianshum:月一號是星期幾. 然後當月每天是第幾個 61.238.156.189 02/25 12:13
: → adrianshum:星期不就是 日期+1號星期幾 / 7 嗎? 61.238.156.189 02/25 12:14
我想了一想, 可以再簡化一點, 其實可以這樣算
(假設一星期是 日至六, 以 0-6 代表)
某日(d) 是星期幾 (w), 它是在第幾個星期就是
( (d + 7 - w) / 7 ) + 1
要是 w > d 就是 第 0 個星期
比如 2010-1-3 是星期日
(3 + 7 - 0) / 7 + 1 = 10/7 + 1 = 1 + 1 = 第 2 個星期
2010-1-1 是星期 5,
(1 + 7 -5) /7 + 1 = 3/7 + 1 = 0 + 1 = 第 1 個星期
2010-1-25 是星期 1,
(25 + 7 - 1) /7 + 1 = 31/7 + 1 = 4 + 1 = 第 5 個星期
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.238.156.189
※ 編輯: adrianshum 來自: 61.238.156.189 (02/25 12:49)
推 xanlich:感謝,不過你式子好像錯了,2010-2-27帶進去 123.192.92.200 02/27 15:08
→ xanlich:結果不對,我後來自己有推導出一個式子,但 123.192.92.200 02/27 15:09
→ xanlich:程式現在沒有,我先推出該月1日是星期幾,再 123.192.92.200 02/27 15:10
→ xanlich:推導目前是第幾週,一星期是一至日,出來結 123.192.92.200 02/27 15:11
→ xanlich:果是1-5, 所以你0-6也不對 @@ 123.192.92.200 02/27 15:11
→ xanlich:啊, 我最後一句會錯意 123.192.92.200 02/27 15:13
→ adrianshum:XD 好像真的有點錯了,不過應該差不多 218.250.0.44 03/01 00:39
→ adrianshum:才對... :P 應該可以歸納到類似的簡單 218.250.0.44 03/01 00:40
→ adrianshum:算式才是 :P 218.250.0.44 03/01 00:40