CALCULO DE HORA

USUARIO.EXCLUIDOS 26/12/2003 12:35:34
#2455
[S24] COMO SERIA A FORMULA PARA ACHAR UM TOTAL DE HORAS ENTRE HORA INICIAL E HORA FINAL?
USUARIO.EXCLUIDOS 26/12/2003 14:46:34
#2468
Resposta escolhida
tenta isso:

faça uma função o meu está no módulo mas vc pode colocar como private é melhor, a função é essa logo abaixo:

Public Function DifHoras(Entrada As Date, Saida As Date) As String '____CALCULA A DIFERENÇA ENTER 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 H1menor H2 And M1maior M2 Then Rh = H2 - H1 - 1

If H2 maior H1 Then
If M2menor M1 Then
Rm = 60 - M1
Rm = Rm + M2
End If
If M2 mair M1 Then
Rh = H2 - H1
Rm = M2 - M1
End If
If Rm maior 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 menor H1 Then
Rh = H2 - H1
Rm = 0
End If
End If

End If

If H2 menor H1 Then
If M2 menor M1 Then
Rm = 60 - M1
Rm = Rm + M2
Rh = H2 + 24
Rh = Rh - H1 - 1
End If
If M2 maior M1 Then
Rh = H2 + 24
Rh = Rh - H1
Rm = M2 - M1
End If
If Rm maior 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 menor H1 Then
Rh = H2 + 24
Rh = Rh - H1
Rm = 0
End If
End If


End If
If H2 = H1 Then
If M2 menor M1 Then
Rh = H2 + 24
Rh = Rh - H1 - 1
Rm = 60 - M1
Rm = Rm + M2
End If
If M2 maior M1 Then
Rh = H2 - H1
Rm = M2 - M1
End If
End If
If H1 = H2 And M1 = M2 Then
Rh = 24
Rm = 0
MsgBox "Esse horário é muito longo !!!", vbExclamation, "Atenção!"
Exit Function
End If
If Rh = 0 Then Rh = Rh * -1
If Rm = 0 Then Rm = Rm * -1
If Rh maior 24 Or Rmmaior 60 Then MsgBox "Informe um horário válido!", vbExclamation, "Atenção!"
If M1maior= 60 Or M2maior= 60 Or H1 maior 24 Or H2maior 24 Then MsgBox "Informe um horário válido!", vbExclamation, "Atenção!"

DifHoras = Format(Rh, "00") & ":" & Format(Rm, "00")




e depois chame assim:

DifHoras(Text1.textText2.text)



[S25]
USUARIO.EXCLUIDOS 26/12/2003 15:54:14
#2477
eu digitei maior e menor e vc deve trocar para o sinal de maior e menor, porque aqui no site não sai esses sinais.
USUARIO.EXCLUIDOS 26/12/2003 16:34:53
#2483
DifHoras(Text1.textText2.text)

[S25]
USUARIO.EXCLUIDOS 29/12/2003 11:38:03
#2736
testei usando hora redonda e não deu nenhum tipo de erro.

diga a hora inicial e inal que esta dando erro.
Tópico encerrado , respostas não são mais permitidas