Tema: sumar horas
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/04/2007, 14:55
jetzona
 
Fecha de Ingreso: marzo-2006
Mensajes: 202
Antigüedad: 18 años, 1 mes
Puntos: 2
sumar horas

mister programadorvip posteo una funcion buenesima para sumar horas funciona perfectamente pero tiene un problemillas que es cuando sumamos algo como 23:45 + 03:30 deberia devolvernos 03:15 pero nos devuelve 27:15 eso no existe oviamente.... como se podrai solucionar este problema ????
la funcion es la siguiente:


Private Function sumaHoras(H1 As String, H2 As String) As String
Dim vh1 As Variant
Dim vh2 As Variant
Dim intContador As Integer
Dim vh3(2) As Long
Dim H3 As String

'Convertir a arrays
vh1 = Split(H1, ":")
vh2 = Split(H2, ":")

'Contemplar tambien los segundos
For intContador = 0 To 2

'Sumar las horas, minutos, segundos
If intContador <= UBound(vh1) Then vh3(intContador) = Val(vh1(intContador))
If intContador <= UBound(vh2) Then vh3(intContador) = vh3(intContador) + Val(vh2(intContador))
Next intContador

'Descontar las cantidades mayores de 60 en 1 y 2
vh3(1) = vh3(1) + vh3(2) \ 60
vh3(2) = vh3(2) Mod 60
vh3(0) = vh3(0) + vh3(1) \ 60
vh3(1) = vh3(1) Mod 60

'Constuir la cadena a devolver
sumaHoras = Format(vh3(0), "00") & ":" & Format(vh3(1), "00") & ":" & Format(vh3(2), "00")

End Function