|
|
|
|
|
Dicas
|
|
Visual Basic (Datas/Números/Strings)
|
|
|
Título da Dica: Calcular a diferença entre duas horas e verificar se o período é Diurno ou Noturno
|
|
|
|
Postada em 20/1/2004 por BILLYY
Public Function DifHoras(Entrada As Date, Saida As Date) As String '____CALCULA A DIFERENÇA ENTRE DUAS HORAS______ Dim H1 As Integer Dim M1 As Integer Dim H2 As Integer Dim M2 As Integer Dim Rh As Integer Dim Rm As Integer H1 = Mid(Entrada, 1, 2) M1 = Mid(Entrada, 4, 2) H2 = Mid(Saida, 1, 2) M2 = Mid(Saida, 4, 2) If H1 < H2 And M1 > M2 Then Rh = H2 - H1 - 1
If H2 > H1 Then If M2 < M1 Then Rm = 60 - M1 Rm = Rm + M2 End If If M2 > M1 Then Rh = H2 - H1 Rm = M2 + M1 End If If Rm > 60 Then Rm = 60 - M1 Rm = Rm + M2 Rm = Rm - 60 End If If Rm = 60 Then Rm = 0 End If If Rm = 0 Then If H2 > H1 Then Rh = H2 - H1 Rm = 0 End If End If End If
If H2 < H1 Then If M2 < M1 Then Rm = 60 - M1 Rm = Rm + M2 Rh = H2 + 24 Rh = Rh - H1 - 1 End If If M2 > M1 Then Rh = H2 + 24 Rh = Rh - H1 Rm = M2 - M1 End If If Rm > 60 Then Rm = 60 - M1 Rm = Rm + M2 Rm = Rm - 60 End If If Rm = 60 Then Rm = 0 End If If Rm = 0 Then If H2 < H1 Then Rh = H2 + 24 Rh = Rh - H1 Rm = 0 End If End If End If If H2 = H1 Then If M2 < M1 Then Rh = H2 + 24 Rh = Rh - H1 - 1 Rm = 60 - M1 Rm = Rm + M2 End If If M2 > M1 Then Rh = H2 - H1 Rm = M2 - M1 End If End If If H1 = H2 And M1 = M2 Then Rh = 24 Rm = 0 End If If Rh = 0 Then Rh = Rh * -1 If Rm = 0 Then Rm = Rm * -1 If Rh > 24 Or Rm > 60 Then MsgBox "Informe um horário válido!", vbExclamation, "Atenção!" If M1 >= 60 Or M2 >= 60 Or H1 > 24 Or H2 > 24 Then MsgBox "Informe um horário válido!", vbExclamation, "Atenção!"
DifHoras = Format(Rh, "00") & ":" & Format(Rm, "00") '____________________________________________________________ If H1 >= "8" And M1 >= "00" And H2 <= "20" And M2 >= "00" Then '_____VERIFICA SE O PERÍODO É DIURNO OU NOTURNO_____ frmfichatecnica.lblperiodo.Caption = "Diurno" Else frmfichatecnica.lblperiodo.Caption = "Noturno" End If
End Function
|
|
|
|
|