Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: E N T E R en Enero 18, 2014, 04:09:55 pm

Título: Restar hora pasando la media noche
Publicado 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:

Código: (VB) [Seleccionar]
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.

Código: (VB) [Seleccionar]
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

Título: Re:Restar hora pasando la media noche
Publicado por: LeandroA en Enero 18, 2014, 09:07:06 pm
Hola, no se si te sirva o si es el mejor camino pero mira

Código: [Seleccionar]
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.
Título: Re:Restar hora pasando la media noche
Publicado por: erbuson en Enero 19, 2014, 06:22:17 am
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

Código: (VB) [Seleccionar]
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

Título: Re:Restar hora pasando la media noche
Publicado por: E N T E R en Enero 20, 2014, 10:32:31 am
Exacto amigos funciono así gracias Leandro y Erbuson.

Saludos...
Título: Re:Restar hora pasando la media noche
Publicado por: wolf_kof en Enero 20, 2014, 12:44:03 pm
y el comando DateAdd?