參數:您相信嗎?這個模組的寫法比用任何其他的方法快幾十倍!參數如下:
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)->