查找本周一

时间:2012-01-16 17:46:51

标签: asp-classic vbscript

如何获取当前星期一的当天的日期。星期一是一周的第一天。因此,如果我本周查阅它将返回日期为1/16/2012

我正在使用VBScript和ASP

非常感谢...

4 个答案:

答案 0 :(得分:11)

实际上,工作日函数返回星期日= 1,星期一= 2等。要获得同一周的星期一,您要减去:

Sunday (1): 6 days
Monday (2): 0 days
Tuesday(3): 1 day
...
Saturday(7): 5 days.

或者      减去天数=(工作日 - 2 + 7)Mod 7

因此,如果d是日期,则同一周的星期一可写为:

mondayofsameweek = DateAdd("d", -((Weekday(d) + 7 - 2) Mod 7), d)

答案 1 :(得分:1)

在VBScript中,WeekDay返回星期几,从星期日= 1开始(VBScript可能像那样古怪)。因此,只需从该值中减去两个(星期一= 2)并调用DateAdd。

monday = DateAdd("d",(WeekDay(Date())-2),Date())

答案 2 :(得分:0)

VBScript有一个名为WeekDay的函数,它返回1 - 7,不确定1是否是星期一,通常你可以用它旋转。

无论哪种方式星期四= 4? ,那么你只需要用你的DateAdd函数

将你的约会时间缩短三天

答案 3 :(得分:0)

我知道这个话题有点陈旧,但我想我会分享我认为更简洁的工作解决方案。 dDate是您当前的日期:

dDate = DateAdd("d", -(WeekDay(dDate, vbMonday) - 1), dDate)

WeekDay的第二个参数是您希望本周开始的日期'。对我而言,在美国,WeekDay将默认的第二个参数对应vbSunday。指定vbMonday,我们只得到当前工作日和星期一之间的差异(基数1)。 减去1并添加与当前日期相反的结果,以获得结果。

示例:

WeekDay(2018-03-20, vbMonday) = -((2) - 1) = DateAdd("d", -1, 2018-03-20)