这一直对我有用,让我得到本周的周四日期。
本周它给了我一些问题,并在上周四的周四展示。
有人能帮我理解为什么会这样吗?
Format$(Date - Weekday(Date, vbWednesday) + 2, "m.d.yy")
提前致谢!
一周的第一天与世界各地不同 - 周六,周日或周一:
因此,每当我们编写这样的代码时,我们都应该尝试指定一周的第一天或者处理它。在下面的代码中,我指定本周的第一个是vbMonday
(不同于vbSunday
默认值):
Public Sub TestMe()
'Sunday of the current week:
Debug.Print Date - Weekday(Date, vbMonday) + 0
'Monday:
Debug.Print Date - Weekday(Date, vbMonday) + 1
'Tuesday:
Debug.Print Date - Weekday(Date, vbMonday) + 2
'Wednesday:
Debug.Print Date - Weekday(Date, vbMonday) + 3
'Thursday:
Debug.Print Date - Weekday(Date, vbMonday) + 4
'Friday:
Debug.Print Date - Weekday(Date, vbMonday) + 5
'Saturday:
Debug.Print Date - Weekday(Date, vbMonday) + 6
End Sub
在1月1日之后的前366天检查此模拟。对于每一天,它打印当周的星期四,假设星期一开始。
Public Sub TestMe()
Dim currentDate As Date
Dim myDay As Long
For myDay = 1 To 366
currentDate = DateAdd("d", myDay, DateSerial(Year(Date), 1, 1))
Debug.Print "Today is " & currentDate & " " & _
WeekdayName(Weekday(currentDate, vbMonday), 1, vbMonday)
Debug.Print "Thursday is on " & _
currentDate - Weekday(currentDate, vbMonday) + 4
Next myDay
End Sub
这是它打印的内容:
Today is 29.12.2018 Sa
Thursday is on 27.12.2018
Today is 30.12.2018 Su
Thursday is on 27.12.2018
Today is 31.12.2018 Mo
Thursday is on 03.01.2019
Today is 01.01.2019 Tu
Thursday is on 03.01.2019
MSDN How to Find the First and Last Day in a Given Week, Month