Postada em 13/06/2011 17:04 hs
olha achei em um forum: não fiz teste mais se interessar ai esta:
' FUNÇÃO PARA RETORNAR O TEMPO DECORRIDO ENTRE DOIS HORARIOS ' EXEMPLO: ' DIFFHORAS("12:15:45","14:17:50") RESULTADO "02:02:05" ' ' DATA: 17/04/1998 ' ' Function DIFFHORAS(X_HORA_I As Date, X_HORA_F As Date) As Date Dim X_HORAS, X_VAR1, X_VAR2 As String If X_HORA_I >= X_HORA_F Then DIFFHORAS = "00:00:00" Exit Function End If X_VAR1 = Mid(X_HORA_I, 1, 2) + ":00:00" X_VAR2 = Mid(X_HORA_F, 1, 2) + ":00:00" X_HORAS = Format(DateDiff("h", X_VAR1, X_VAR2), "00") + ":" X_VAR1 = "00:" + Mid(X_HORA_I, 4, 2) + ":00" X_VAR2 = "00:" + Mid(X_HORA_F, 4, 2) + ":00" If X_VAR1 > X_VAR2 Then X_VAR1 = "00:" + Mid(X_HORA_I, 4, 2) + ":00" X_VAR2 = "01:" + Mid(X_HORA_F, 4, 2) + ":00" X_HORAS = Format(Val(Mid(X_HORAS, 1, 2)) - 1, "00") + ":" End If X_HORAS = X_HORAS + Format(DateDiff("n", X_VAR1, X_VAR2), "00") + ":" X_VAR1 = "00:00:" + Mid(X_HORA_I, 7, 2) X_VAR2 = "00:00:" + Mid(X_HORA_F, 7, 2) If X_VAR1 > X_VAR2 Then X_VAR1 = "00:00:" + Mid(X_HORA_I, 7, 2) X_VAR2 = "00:01:" + Mid(X_HORA_F, 7, 2) X_HORAS = Mid(X_HORAS, 1, 3) + Format(Val(Mid(X_HORAS, 4, 2)) - 1, "00") + ":" End If DIFFHORAS = X_HORAS + Format(DateDiff("s", X_VAR1, X_VAR2), "00") End Function
|