- 22 Out 2019 às 14:06
#49482
Boa tarde,
O Jimmy fez esse código para mim separar a quantidade de horas por turno levando com base a hora inicio e fim, é uma function funciona muito bem, porem quando eu tenho a situação de que a a hora inicio e a hora fim são coisas que nao existem ele me trazer a informação errada por exemplo..
uma parada que começa as 00:00:00 do dia 20/10/2019 e termina na hora 23:59:59 do dia 20/10/2019 ele me trazer muitas horas.. sendo que era pra nao trazer nada... nesses casos..
Preciso de ajuda para ajustar esse problema alguem pode me auxliar?
O Jimmy fez esse código para mim separar a quantidade de horas por turno levando com base a hora inicio e fim, é uma function funciona muito bem, porem quando eu tenho a situação de que a a hora inicio e a hora fim são coisas que nao existem ele me trazer a informação errada por exemplo..
uma parada que começa as 00:00:00 do dia 20/10/2019 e termina na hora 23:59:59 do dia 20/10/2019 ele me trazer muitas horas.. sendo que era pra nao trazer nada... nesses casos..
Preciso de ajuda para ajustar esse problema alguem pode me auxliar?
Código: Selecionar todos
Function Turnos(Ini As Double, Fim As Double, Tur)
Dim TI(1 To 3), TF(1 To 3)
TI(1) = TimeValue("05:00:00"): TF(3) = TI(1)
TI(2) = TimeValue("13:30:00"): TF(1) = TI(2)
TI(3) = TimeValue("22:00:00"): TF(2) = TI(3)
Hora = Ini - Int(Ini)
TI(Tur) = Int(Ini) + TI(Tur) - (Hora > TI(Tur))
TF(Tur) = Int(Ini) + TF(Tur) - (Hora > TF(Tur))
If TF(Tur) < TI(Tur) Then Soma = 1 Else Soma = 0
Turnos = 0
Do While Soma < 2
If Soma = 1 Then
Soma = 0
If Fim < TF(Tur) Then TF(Tur) = Fim: Soma = 9
If TF(Tur) < Ini Then Exit Do
Turnos = Turnos + (TF(Tur) - Ini)
Ini = TF(Tur): TF(Tur) = TF(Tur) + 1
Else
Soma = 1
Ini = TI(Tur): TI(Tur) = TI(Tur) + 1
End If
Loop
End Function