一个日期计算的问题,大家帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/04 10:32:01
公司采用的是按周次计算工作量。
我想知道第几周是几号。
应该怎么把周次和日期建立起来连接。
比如:第一周是2007-1-1
第二周是2007-1-8
求: 第40周是?-?-?
大家别和我开玩笑啊。我有用的。程序里需要。

如果你说的周是自然周也就是实际的星期一至星期天,那么就比较复杂需要得出2007-01-01那天所在的星期几,然后依次累加,算法如下:
s=weekday("2007-1-1") 获得2007-01-01的星期数,得到的是一个整形值,星期天为地一天,以此推算
dateadd("D",(n-1)*7+(7-s),"2007-1-1") 因为第一周实际会不足7天,因此实际天数间隔为除去第一周外,其他周的天数再加第一周剩余的天数:(N-1)*7+(7-S)
题中求40周的第N天的日期则可以用
dateadd("D",(40-2)*7+(7-weekday("2007-1-1") )+n,"2007-1-1")

如果是逻辑周,也就是把2007-01-01当作第一周的第一天,然后7天一循环,那么就比较简单了,在此基础上加(N*7-1),因为2007-01-01算第一天,那么实际日期应该包含2007-01-01,调用dateadd函数dateadd("d",n*7-1,"2007-1-1")
例如求40周的第N天是什么时候则:
dateadd("d",(40-1)*7-1+N,"2007-1-1")因为要计算第40周的第N天的日期,实际间隔40-1个整星期,所以要减去1周

#2007-01-01# + 280

这样就行了啊

日期可以直接运算的啊

40周是280天

现在时间=dateadd("D",280,"开始时间")

不是一星期就是一周么?每个月又不是都是开头就是星期一,所以不好算..怎么了啊

呵呵!打开日历看日期!

mark