Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: E N T E R en Enero 18, 2014, 04:09:55 pm
-
Hola, tengo 2 horas que quiero restar el problema es que al pasar al dia siguiente me resta mal.
Tengo este codigo:
Text3 = Format(TimeValue("22:44:39") - TimeValue("00:42:17"), "hh:mm:ss")
Ejmplo:
Entrada : 22:44:39
Salida : 00:42:17
Resultado : 22:02:22 , Esto esta mal el resultado tenia que ser 01:59:39
Googleando encontre que hay que usar DateDiff y tengo que este codigo pero me devuelve un numero entero y como haria para pasar un numero entero a hora,minuto,segundo.
Private Sub Command2_Click()
Dim intMinutos As Integer
intMinutos = DateDiff("n", TimeValue("22:44:39"), TimeValue("00:42:17"))
If intMinutos < 0 Then
intMinutos = intMinutos + 24 * 60
End If
Text3.Text = intMinutos
End Sub
-
Hola, no se si te sirva o si es el mejor camino pero mira
Text3 = Format(CDate("17/01/14 22:44:39") - CDate("18/01/14 00:42:17"), "hh:mm:ss")
es como que la fecha es importante en ese caso, sino no hay forma de saber el tiempo transcurrido, ahora esto solo sirve si estamos ablando de un dia como maximo, ya que si pasan mas de 24 hs no te va a arrojar un resultado verdadero.
Saludos.
-
Hola:
Siguiendo el consejo de Leandro, podrías hacer algo así ya que la fecha en realidad es un valor auxiliar ya que de este modo fuerzas un dia de diferencia si es necesario
Dim Hora1 As String
Dim Hora2 As String
Hora2 = "23:59:59"
Hora1 = "00:00:00"
If TimeValue(Hora1) < TimeValue(Hora2) Then
Label1 = Format(TimeValue(Hora2) - TimeValue(Hora1), "hh:mm:ss")
Else
Label1 = Format(CDate("02/01/2001 " & Hora2) - CDate("01/01/2001 " & Hora1), "hh:mm:ss")
End If
Prueba con tus valores a ver ...
Un saludo
-
Exacto amigos funciono así gracias Leandro y Erbuson.
Saludos...
-
y el comando DateAdd?