我创建了一个代码来获取上一个星期五,但它只有在今天已经是下周时才有效。获取上周五并获取下一个星期四
iWeekday = Weekday(Now(), vbFriday)
LastFridayDate = Now - (iWeekday - 1)
我需要一个代码来获取基于今天日期的最后一个星期五,并获得下一个星期四。
在此先感谢。
我创建了一个代码来获取上一个星期五,但它只有在今天已经是下周时才有效。获取上周五并获取下一个星期四
iWeekday = Weekday(Now(), vbFriday)
LastFridayDate = Now - (iWeekday - 1)
我需要一个代码来获取基于今天日期的最后一个星期五,并获得下一个星期四。
在此先感谢。
你的意思是在星期五你想要上周的星期五?为此,您只需在周六基于iWeekday
。
LastFridayDate = Date - Weekday(Date, vbSaturday)
为了计算下周四就需要8减去基于周四平日数量,并添加到当前日期:
NextThursdayDate = Date + 8 - Weekday(Date, vbThursday)
示范:
>>>For i = 0 to 8 : _ d1 = Date + i : _ d2 = d1 - Weekday(d1, vbSaturday) : _ WScript.Echo WeekdayName(Weekday(d1), True) & ", " & d1 & " -> " _ & Weekdayname(Weekday(d2), True) & ", " & d2 : _ Next
Do, 27.02.2014 -> Fr, 21.02.2014
Fr, 28.02.2014 -> Fr, 21.02.2014
Sa, 01.03.2014 -> Fr, 28.02.2014
So, 02.03.2014 -> Fr, 28.02.2014
Mo, 03.03.2014 -> Fr, 28.02.2014
Di, 04.03.2014 -> Fr, 28.02.2014
Mi, 05.03.2014 -> Fr, 28.02.2014
Do, 06.03.2014 -> Fr, 28.02.2014
Fr, 07.03.2014 -> Fr, 28.02.2014
>>>For i = 0 to 8 : _ d1 = Date + i : _ d2 = d1 + 8 - Weekday(d1, vbThursday) : _ WScript.Echo WeekdayName(Weekday(d1), True) & ", " & d1 & " -> " _ & Weekdayname(Weekday(d2), True) & ", " & d2 : _ Next
Do, 27.02.2014 -> Do, 06.03.2014
Fr, 28.02.2014 -> Do, 06.03.2014
Sa, 01.03.2014 -> Do, 06.03.2014
So, 02.03.2014 -> Do, 06.03.2014
Mo, 03.03.2014 -> Do, 06.03.2014
Di, 04.03.2014 -> Do, 06.03.2014
Mi, 05.03.2014 -> Do, 06.03.2014
Do, 06.03.2014 -> Do, 13.03.2014
Fr, 07.03.2014 -> Do, 13.03.2014
在这里呀去。
Dim x1, lFriday, lFri : x1 = 1
Dim x2, nThursday, nThur : x2 = 1
Dim c
Do While lFriday <> 6
c = DateAdd("d", -x1, Now()):lFriday = Weekday(c): lFri = c : x1 = x1 + 1
Loop
Do While nThursday <> 5
c = DateAdd("d", x2, Now()):nThursday = Weekday(c): nThur = c : x2 = x2 + 1
Loop
response.write("Last Friday = " & lFri)
response.write("Next Thursday = " & nThur)
'Last Friday = lFri
'Next Thursday = nThur
感谢#TechnologRich,但#Ansgar Wiechers代码更简单。 – MarceloMadnezz
很高兴你的答案! – Rich
+1有关彻底的解决方案和解释。 – Lankymart