作者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
1F:→ KC73:既然是连续的,就想像把日期填到日历上,把第一周和最後一周 12/17 20:37
2F:→ KC73:拿掉後,那些日子 /7*2 就是六、日的天数,再把第一周跟最後 12/17 20:38
3F:→ KC73:一周加上去就好了。 12/17 20:38
4F:→ KC73:第一行推文更正,填到月历上。 12/17 20:39