Sumar Hs ; Minutos ; Segundos . Milisegundos

Iniciado por e500, 28 Marzo 2009, 18:30 PM

0 Miembros y 1 Visitante están viendo este tema.

e500

Hola, gente... Mi pregunta es como puedo sumar esto:

00:02;20.254 + 00:02;20.338

Aca se los separo:

                       Hora : Minutos ; Segundos . Milesimas de Segundo
                        00   :    02      ;     20       .           254
                        00   :    02      ;     20       .           338


Espero que se entienda, salu2
                       

DarkMatrix

suponiendo que horas, ni minutos, ni segundos, ni milesimas de segundo pueden alcanzar su valor maximo osea 60,60,60,1000 ya que si minutos valiera 60 ya no fueran 60 minutos si no 1 hora y minutos valdria 0, hay te hize un ejemplo a ver si te sirve:

valores maximos: 99:59;59;999  ;D

Código (vb) [Seleccionar]

Option Explicit

Private Sub Form_Load()
MsgBox SumarTiempo("00:02;20.254", "00:02;59.800")
End Sub

Private Function SumarTiempo(Tiempo1 As String, Tiempo2 As String) As String
Dim H As Integer, H2 As Integer
Dim M As Integer, M2 As Integer
Dim S As Integer, S2 As Integer
Dim Ml As Integer, Ml2 As Integer
Dim Horas As Integer, Minutos As Integer, Segundos As Integer, Milesimas As Integer

H = Mid(Tiempo1, 1, 2)
M = Mid(Tiempo1, 4, 2)
S = Mid(Tiempo1, 7, 2)
Ml = Mid(Tiempo1, 10, 3)

H2 = Mid(Tiempo2, 1, 2)
M2 = Mid(Tiempo2, 4, 2)
S2 = Mid(Tiempo2, 7, 2)
Ml2 = Mid(Tiempo2, 10, 3)

Horas = H + H2
Minutos = M + M2
Segundos = S + S2
Milesimas = Ml + Ml2

If Milesimas >= 1000 Then
Segundos = Segundos + 1
Milesimas = Milesimas - 1000
End If

If Segundos >= 60 Then
Minutos = Minutos + 1
Segundos = Segundos - 60
End If

If Minutos >= 60 Then
Horas = Horas + 1
Minutos = Minutos - 60
End If

SumarTiempo = Format(Horas, "00") & ":" & Format(Minutos, "00") & ";" & Format(Segundos, "00") & "." & Format(Milesimas, "000")

End Function



espero que te sirva de algo. Saludos xD

Todo aquello que no se puede hacer, es lo que no intentamos hacer.
Projecto Ani-Dimension Digital Duel Masters (Juego de cartas masivo multijugador online hecho en Visual Basic 6.0)

Desing by DarkMatrix

Karcrack

A mi me gusta pensar que la solucion mas sencilla es la mejor :P

Código (vb) [Seleccionar]

    'No acepta Ms
    Dim Hora1       As Date
    Dim Hora2       As Date
    Dim HoraR       As Date
   
    Hora1 = "12:01:25"
    Hora2 = "3:05:35"
    HoraR = Hora1 + Hora2

vivachapas

Cita de: Karcrack en 29 Marzo 2009, 23:20 PM
A mi me gusta pensar que la solucion mas sencilla es la mejor :P

Código (vb) [Seleccionar]

    'No acepta Ms
    Dim Hora1       As Date
    Dim Hora2       As Date
    Dim HoraR       As Date
   
    Hora1 = "12:01:25"
    Hora2 = "3:05:35"
    HoraR = Hora1 + Hora2


yo tb hago asi.. pero no pones milisegundos ahi.. y no se si se podra usar :S

e500

Muchisimas gracias!!!  [ DarkMatrix  ] y a todos, voy a probar el CODE y les comento, total mente agradecido...  :rolleyes:

Salu2
   ;D