• Viernes 8 de Noviembre de 2024, 16:44

Autor Tema:  Problema Con Suma De Tiempos.  (Leído 3115 veces)

Angel38

  • Miembro MUY activo
  • ***
  • Mensajes: 370
    • Ver Perfil
Problema Con Suma De Tiempos.
« en: Sábado 22 de Julio de 2006, 16:58 »
0
Hola amigos.


Se me presentó un problema el cual nunca lo tuve como opción. :P


Pasa que sumaba las horas, pero como siempre sumaba por minutos, nunca tuve problemas, ahora bien, llegó a 23:59:59 y cuando quize sumar cinco horas más, me aparecieron exactamente, es decir que las 24 horas se perdieron.

Lo que pienso es que cuando llega a 24:00:00 horas, se convierte en 00:00:00 y empieza a sumar de nuevo.

Alguno sabe como darle solucion a ese problema y que me llegue a mostrar 25:00:00 u horas mayores que 24.
[size=109]Se me olvidó instalar los Drivers de Cordura en mi Cerebro.

ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Problema Con Suma De Tiempos.
« Respuesta #1 en: Sábado 22 de Julio de 2006, 18:36 »
0
Dim x1 As String, x2 As String, cadena As String, s As Byte, m As Byte, h As Byte
Private Sub Command1_Click()
s = 0: m = 0: h = 0
x1 = "05:10:53"
x2 = "23:22:09"
s = Val(Right(x1, 2)) + Val(Right(x2, 2))
If s >= 60 Then s = s - 60: m = m + 1
m = m + Val(Mid(x1, 4, 2)) + Val(Mid(x2, 4, 2))
If m >= 60 Then m = m - 60: h = h + 1
h = h + Val(Left(x1, 2)) + Val(Left(x2, 2))
cadena = h & ":" & m & ":" & s
MsgBox cadena
End Sub

Espero sea lo q necesites :)  :kicking:

Angel38

  • Miembro MUY activo
  • ***
  • Mensajes: 370
    • Ver Perfil
Re: Problema Con Suma De Tiempos.
« Respuesta #2 en: Lunes 24 de Julio de 2006, 15:06 »
0
Gracias Arkantos.  :hola:
[size=109]Se me olvidó instalar los Drivers de Cordura en mi Cerebro.

Angel38

  • Miembro MUY activo
  • ***
  • Mensajes: 370
    • Ver Perfil
Re: Problema Con Suma De Tiempos.
« Respuesta #3 en: Lunes 24 de Julio de 2006, 15:56 »
0
Me gustaria saber si hay una forma de hacerlo con este tipo de formato.


Sumatiempo= Format(TimeValue(Txthora1.text) + TimeValue(Txhora2.text))


Gracias por su ayuda.
[size=109]Se me olvidó instalar los Drivers de Cordura en mi Cerebro.

ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Problema Con Suma De Tiempos.
« Respuesta #4 en: Lunes 24 de Julio de 2006, 20:05 »
0
que yo sepa nop :P pero porque no lo que te di haslo en una funcion algo mas o menos asi
Código: Text
  1. Private Sub Command1_Click()
  2. MsgBox sumatime(Time, Time)
  3. End Sub
  4.  
  5. Public Function sumatime(ByVal Hora1 As String, Hora2 As String) As String
  6. Dim s As String, m As String, h As String
  7. s = 0: m = 0: h = 0
  8. Hora1 = Format(Hora1, "HH:MM:SS")
  9. Hora2 = Format(Hora2, "HH:MM:SS")
  10. s = Val(Right(Hora1, 2)) + Val(Right(Hora2, 2))
  11. If s >= 60 Then s = s - 60: m = m + 1
  12. m = m + Val(Mid(Hora1, 4, 2)) + Val(Mid(Hora2, 4, 2))
  13. If m >= 60 Then m = m - 60: h = h + 1
  14. h = h + Val(Left(Hora1, 2)) + Val(Left(Hora2, 2))
  15. s = IIf(Len(s) = 1, 0 & s, s)
  16. m = IIf(Len(m) = 1, 0 & m, m)
  17. h = IIf(Len(h) = 1, 0 & h, h)
  18. sumatime = h & ":" & m & ":" & s
  19. End Function
  20.  
  21.  

ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Problema Con Suma De Tiempos.
« Respuesta #5 en: Lunes 24 de Julio de 2006, 20:14 »
0

Angel38

  • Miembro MUY activo
  • ***
  • Mensajes: 370
    • Ver Perfil
Re: Problema Con Suma De Tiempos.
« Respuesta #6 en: Martes 25 de Julio de 2006, 16:55 »
0
Hola Arkantos, viejo te agradezco mucho esa funcion, solo tuve que cambiarle el valor de los times y listo.

Lo malo es que tengo ahora un nuevo problema y espero que no me tomes como esos flojos que no quieren hacer nada y que todo se lo solucionen, el problema es que llevo horas tratando de encontrar la solucion y nada. :( , es decir que no soy flojo sino bruto  :lol:   :lol:   :lol:

Luego de sumar esos tiempos, les debo sacar el promedio. Seria algo asi como:

Hora1= 20:30:00
Hora2= 15:30:00
Hora3= 01:00:00

Sumarlos 37:00:00 y luego dividirlos entre 3.

Con esta intruccion lo hago siempre y cuando no se pasé de las 24 horas.

Código: Text
  1. promedio= format(TimeValue(suma) / 3
  2.  
, pero como sabrás  el tiempo se pasa de 24 horas y no tengo idea de como promediarlo, puesto que las soluciones que hago siempre llevan el format en alguna parte y me arroja error al no reconocer tiempos mayores a un día.

Te agradeceria tu colaboracion y vuelvo a pedirte disculpas por hacerte perder el tiempo :P
[size=109]Se me olvidó instalar los Drivers de Cordura en mi Cerebro.

Angel38

  • Miembro MUY activo
  • ***
  • Mensajes: 370
    • Ver Perfil
Re: Problema Con Suma De Tiempos.
« Respuesta #7 en: Martes 25 de Julio de 2006, 19:11 »
0
Lo solucioné.


Muchas gracias Arkantos, ahi te dejo el codigo para promediarlo por si otra persona tiene el mismo problema.


Código: Text
  1.  
  2. Public Function PromedioTime(ByVal Hora1 As String) As String
  3. Dim s As String, m As String, h As String, dividir As Double
  4. Dim mintemp As Double, Hora As Integer, Minutos As Integer, Segundos As Integer
  5. Dim HoraString As String, MinutoString As String, SegundoString As String
  6.  
  7. s = 0: m = 0: h = 0
  8. s = Val(Right(Hora1, 2))
  9. If s >= 60 Then s = s - 60: m = m + 1
  10.      m = m + Val(Mid(Hora1, 4, 2))
  11. If m >= 60 Then m = m - 60: h = h + 1
  12.      h = h + Val(Left(Hora1, 2))
  13.  
  14.  
  15. MiHoraDouble = (h * 60) + m + (s / 60)
  16. MiHoraDouble = MiHoraDouble / TotalAbsoluto
  17. mintemp = MiHoraDouble / 60
  18. Hora = Int(mintemp)
  19. mintemp = (mintemp - Hora) * 60
  20. Minutos = Int(mintemp)
  21. Segundos = CInt((mintemp - Minutos) * 60)
  22.  
  23. If Hora < 10 Then
  24.    HoraString = "0" + CStr(Hora)
  25. Else
  26.    HoraString = Hora
  27. End If
  28.  
  29. If Minutos < 10 Then
  30.    MinutoString = "0" + CStr(Minutos)
  31. Else
  32.    MinutoString = Minutos
  33. End If
  34.  
  35. If Segundos < 10 Then
  36.    SegundoString = "0" + CStr(Segundos)
  37. Else
  38.    SegundoSting = Segundos
  39. End If
  40.  
  41. Promedio = HoraString + ":" + MinutoString + ":" + SegundoString
  42. End Function
  43.  
  44.  
[size=109]Se me olvidó instalar los Drivers de Cordura en mi Cerebro.

ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Problema Con Suma De Tiempos.
« Respuesta #8 en: Martes 25 de Julio de 2006, 19:53 »
0
Interesante :) lo iba a empezar a hacer pero veo que ya obtuviste una solución :)
nos vemos