Office中国论坛/Access中国论坛

标题: 如何判断第几周从几号~几号 [打印本页]

作者: zxp    时间: 2009-3-10 10:29
标题: 如何判断第几周从几号~几号
用datapart函数可以获知一个日期属于第几周,如果还想获得这一周的起始日和结束日,比如:第十一周(3/8~3/14),请问各位高手有什么思路指一下啊.
作者: wu8313    时间: 2009-3-10 12:34
使用weekday看看。
Weekday 函数   

返回一个 Variant (Integer),包含一个整数,代表某个日期是星期几。
---------------------------------------------------------
如果得知某一天是周三,扣去3天(根据你的业务逻辑,也许是4天),就是起始日了。
好像不同国家对周末的定义不同,就看你的业务上面把哪一天作为周末(也许是周六,也许是周日)
作者: 轻风    时间: 2009-3-10 14:09
我想这样可以实现,但不一定是最好的方法,因为我不知道有没有其他什么函数能更简单计算出来。如第11周:

起始日 = DateAdd("ww", 11 - 1, #1/1/2009#) - (Weekday(#1/1/2009#) - 1)
结束日 = DateAdd("ww", 11 - 1, #1/1/2009#) + (7 - Weekday(#1/1/2009#))
作者: todaynew    时间: 2009-3-10 14:53
本帖最后由 todaynew 于 2009-3-10 15:46 编辑

周一:DateAdd("d", 1 - Format(Me.日期.Value, "w", vbMonday), Me.日期.Value)
周日:DateAdd("d", 7 - Format(Me.日期.Value, "w", vbMonday), Me.日期.Value)

[attach]36500[/attach]

[attach]36498[/attach]

Private Sub 日期_AfterUpdate()
Me.周.Value = Format(Me.日期.Value, "ww")
Me.星期几.Value = Format(Me.日期.Value, "w", vbMonday)
Me.周一.Value = DateAdd("d", 1 - Format(Me.日期.Value, "w", vbMonday), Me.日期.Value)
Me.周日.Value = DateAdd("d", 7 - Format(Me.日期.Value, "w", vbMonday), Me.日期.Value)
End Sub
作者: 轻风    时间: 2009-3-10 16:43
哦,看来我理解错了,楼主是要指定日期,还是要指定第几周来算?
作者: zxp    时间: 2009-3-10 16:48
根据指定日期来计算
作者: mcheng0612    时间: 2009-3-10 17:57
高手真多啊
作者: ACMAIN_CHM    时间: 2009-3-10 20:27
指定日期周一: date-weekday(date,vbMonday)+1
指定日期周日:这个有些需要猜!因为没人知道周日是属于哪个周!
date-weekday(date,vbMonday)+7



******************
*  一切皆有可能  *
******************

.
ACMAIN - Access论坛回贴准则(个人).
.

.
QQ群 48866293 / 12035577 / 7440532 / 13666209
http://forum.csdn.net/BList/OtherDatabase .
http://www.accessbbs.cn/bbs/index.php .
http://www.accessoft.com/bbs/index.asp .
http://www.access-programmers.co.uk/forums .
http://www.office-cn.net .
.
http://www.office-cn.net/home/space.php?uid=141646 .
作者: 蓝天8390    时间: 2009-3-10 21:07
又收藏了一个好东东




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3