参数:您相信吗?这个模组的写法比用任何其他的方法快几十倍!参数如下:
1:以那一天为基准日?
2:(Optional)要找的是星期几?若不指定,预设值为星期六
3:(Optional)要往前(过去)找或往后(未来)找?
若不指定,预设值为往后(未来)找
程序码
PublicFunctionSpecificWeekday(ByValDAsDate,OptionalByValWhatDayAsVbDayOfWeek=vbSaturday,OptionalGetNextAsBoolean=True)AsDate
SpecificWeekday=(((D-WhatDay GetNext)\7)-GetNext)*7 WhatDay
EndFunction
或许您想知道程序为什么这样写?
您知道吗?在VB中,其所有日期函数的基准日(第0天)是1899年12月30日(星期六),第一天就是1899年12月31日(星期日),所以VB的WeekDay函数算法其实就是(Date-1)Mod7 1。
返回值
日期
实例:
我想知道以下日子各是那一天?
上个星期一:SpecificWeekday(Now,vbMonday,False)
下个星期六:SpecificWeekday(Now)
2000年9月9日的下一个星期五:SpecificWeekday(“09/09/2000”,vbFriday)->