Function CalculaDiasUteis(DtInicio, DtFim As NotesDateTime) As Integer
' ===> Objetivo:
' ===> Calcular os dias úteis entre as datas
' Parâmetros
' DtInicio = Data inicial
' DtIFim = Data termino
' Retorno => Total de dias úteis, excluindo os feriados entre as datas
'' Msgbox "Data Termino: " & dtFim.DateOnly
'' Msgbox "Data Inicio: " & DtInicio.DateOnly
Dim dc As NotesDocumentCollection
Dim strdt As String
Dim view As NotesView
Dim session As New NotesSession
Set db = session.CurrentDatabase
Set view = db.GetView("vwFeriados")
' Calcula a diferenca total entre as datas
dif = DtFim.TimeDifference( DtInicio )
difemdias = (dif / 86400) + 1
CalculaDiasUteis = 0
z=0
y=difemdias
diasUteis =0
dia = ""
Do Until (z = y)
If z = 0 Then
Call DtInicio.AdjustDay(0)
Else
Call DtInicio.AdjustDay(1)
End If
' Pegando o dia da semana
wd% = Weekday(DtInicio.dateonly)
' se data diferente de sábado e domingo
If (wd% <> 1 And wd% <> 7) Then
diasUteis = diasUteis + 1
End If
' string da data
strdt = Format(DtInicio.dateonly,"DD/MM/YYYY" )
' Procurando na visão de Feriados para ver se a data existe lá também
Set dc = view.GetAllDocumentsByKey(strdt, True)
' se achou algum feriado
If dc.count > 0 Then
' diminui o dia util
diasUteis = diasUteis - 1
' Msgbox "Dia Úteis sem o feriado: " & diasUteis
End If
z=z+1
Loop
CalculaDiasUteis = diasUteis
Exit Function
End Function
Nenhum comentário:
Postar um comentário