Access没有内置函数来确定两个日期之间的工作天数。以下用自定义的函数说明如何计算两个日期之间的工作日数。
备 注:
此函数不考虑假日。
演示图:
源 码:
Function Work_Days(BegDate As Variant, EndDate As Variant) As Integer
Dim WholeWeeks As Variant
Dim DateCnt As Variant
Dim EndDays As Integer
On Error GoTo Err_Work_Days
BegDate = DateValue(BegDate)
EndDate = DateValue(EndDate)
WholeWeeks = DateDiff("w", BegDate, EndDate)
DateCnt = DateAdd("ww", WholeWeeks, BegDate)
EndDays = 0
Do While DateCnt <= EndDate
If Format(DateCnt, "ddd") <> "Sun" And _
Format(DateCnt, "ddd") <> "Sat" Then
EndDays = EndDays + 1
End If
DateCnt = DateAdd("d", 1, DateCnt)
Loop
Work_Days = WholeWeeks * 5 + EndDays
Exit Function
Err_Work_Days:
’如果BegDate或EndDate为Null,返回零
,表示这两个日期之间没有工作日。
If Err.Number = 94 Then
Work_Days = 0
Exit Function
Else
’如果发生其他错误,则提供一条消息。
MsgBox "Error " & Err.Number & ": " & Err.Description
End If
End Function