參數(shù) : 您相信嗎?這個模組的寫法比用任何其他的方法快幾十倍!參數(shù)如下:
1:以那一天為基準(zhǔn)日?
2:(Optional) 要找的是星期幾?若不指定,預(yù)設(shè)值為星期六
3:(Optional) 要往前 (過去) 找或往后 (未來) 找?
若不指定,預(yù)設(shè)值為往后 (未來) 找
程序碼
Public Function SpecificWeekday(ByVal D As Date, Optional ByVal WhatDay As VbDayOfWeek = vbSaturday, Optional GetNext As Boolean = True) As Date
SpecificWeekday = (((D - WhatDay + GetNext) \ 7) - GetNext) * 7 + WhatDay
End Function
或許您想知道程序為什么這樣寫?
您知道嗎?在 VB 中,其所有日期函數(shù)的基準(zhǔn)日 (第0天) 是 1899年12月30日 (星期六),第一天就是 1899年12月31日 (星期日),所以 VB 的 WeekDay 函數(shù)算法其實就是 (Date - 1) Mod 7 + 1。
返回值
日期
實例 :
我想知道以下日子各是那一天?
上個星期一:SpecificWeekday(Now, vbMonday, False)
下個星期六:SpecificWeekday(Now)
2000年9月9日的下一個星期五:SpecificWeekday("09/09/2000", vbFriday)
1:以那一天為基準(zhǔn)日?
2:(Optional) 要找的是星期幾?若不指定,預(yù)設(shè)值為星期六
3:(Optional) 要往前 (過去) 找或往后 (未來) 找?
若不指定,預(yù)設(shè)值為往后 (未來) 找
程序碼
Public Function SpecificWeekday(ByVal D As Date, Optional ByVal WhatDay As VbDayOfWeek = vbSaturday, Optional GetNext As Boolean = True) As Date
SpecificWeekday = (((D - WhatDay + GetNext) \ 7) - GetNext) * 7 + WhatDay
End Function
或許您想知道程序為什么這樣寫?
您知道嗎?在 VB 中,其所有日期函數(shù)的基準(zhǔn)日 (第0天) 是 1899年12月30日 (星期六),第一天就是 1899年12月31日 (星期日),所以 VB 的 WeekDay 函數(shù)算法其實就是 (Date - 1) Mod 7 + 1。
返回值
日期
實例 :
我想知道以下日子各是那一天?
上個星期一:SpecificWeekday(Now, vbMonday, False)
下個星期六:SpecificWeekday(Now)
2000年9月9日的下一個星期五:SpecificWeekday("09/09/2000", vbFriday)