作者JYHuang (夏天到了,冷不起來了說)
看板PHP
標題Re: [請益] 計算扣掉六日的日期區間
時間Fri Dec 17 18:10:12 2010
※ 引述《roga (任性)》之銘言:
: ※ 引述《JYHuang (夏天到了,冷不起來了說)》之銘言:
: : 因為資料是從陣列來的
: : 如果要去計算期間有幾個週未日,似乎會滿秏時間的。
: 因為耗時間才要交給機器做,
: 不過好的作法可以讓機器少耗一些時間就是了...
: : 想推一下公式,卻又想不出關聯 @.@
: : 請問有沒有人寫過類似的函式?
: 看你的資料的複雜度吧,
: 1. 只有日期,而且連續,那每七天扣掉兩天就是你的答案。
是連續的
要從撈出來的資料比對欄位B的日期
是否在欄位A日期+n天的區間內(排除六日)
一開始打算直接在SQL Server做判斷的..
不過這樣SQL會落落長的落落長,而且加重SQL Server的Loading
接著打算想試試能不能用數學式來推(用+-%..之類的)
推不出來最後目前換成用data函數
1.先比對是否為同一週 (直接B-A)
2.計算日期A距週六幾天
3.計算日期B距週日幾天
再做(相隔週數-1)*5 + (週六-A天數) + B距週日天數
: 至於效能方面不用太擔心,這種計算不會很花時間
: 以我的筆電,比對 10,000 次花 0.3 秒而已。
如果是數百筆,然後每一筆都逐日筆對的話
時間好像就不小了..
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.39.167.80
→ KC73:既然是連續的,就想像把日期填到日曆上,把第一週和最後一週 12/17 20:37
→ KC73:拿掉後,那些日子 /7*2 就是六、日的天數,再把第一週跟最後 12/17 20:38
→ KC73:一週加上去就好了。 12/17 20:38
→ KC73:第一行推文更正,填到月曆上。 12/17 20:39