Вы правы, DateDiff()
не покрывает это, но его можно использовать вместе с WeekDay()
для определения, если Day
выпадает на выходные.
При использовании DateDiff()
чтобы получить количество дней, мы можем затем использовать цикл For
для перехода по дням, используя DateAdd()
, чтобы увеличить день по мере того, как мы идем, и проверить, является ли увеличенное значение даты конкретным WeekDay()
.Затем мы можем на основании этого результата решить, следует ли увеличить счетчик, в котором хранится полученное нами число дней недели.
Ниже приведен пример того, как вы это сделаете, основная логика была заключена в функцию, которую выможет быть включен в файл сценария #include
для использования на нескольких страницах.
<%
Function DateDiffWeekDays(d1, d2)
Dim dy: dy = 0
Dim dys: dys = DateDiff("d", d1, d2)
Dim isWeekDay: isWeekDay = False
Dim wkd
Dim wd: wd = 0
For dy = 0 To dys
wkd = Weekday(DateAdd("d", dy, d1))
isWeekDay = Not (wkd = vbSunday Or wkd = vbSaturday)
If isWeekDay Then wd = wd + 1
Next
DateDiffWeekDays = wd
End Function
'Example of how to call the function and output to the page
Call Response.Write(DateDiffWeekDays(Date(), CDate("12 Nov 2018")))
%>
Вывод:
16
Это только краткий пример и не охватывает все возможные варианты использованияИдея в том, что это дает вам отправную точку, с которой вы можете работать и совершенствоваться.