'функция расчета числа рабочих дней (праздники не определяются) 'между DateFrom и DateTo включая границы 'Прим. перебор дней осуществляется только для первой и последней недели периода
Public Function CountWorkDays(DateFrom As Date, DateTo As Date) As Long Dim i As Integer, k As Long Dim dateNext As Date dateNext = DateFrom - 1 CountWorkDays = 0 i = 1 If DateTo - DateFrom < 0 Then Exit Function
Do dateNext = dateNext + 1 k = Weekday(dateNext) If k = vbSaturday Or k = vbSunday Then If i = 1 Then k=(((DateTo - dateNext))\ 7) CountWorkDays = CountWorkDays + 5 * k dateNext = dateNext + 7 * k i = 0 End If Else CountWorkDays = CountWorkDays + 1 End If Loop While Not dateNext >= DateTo