Autor Tema: Restar hora pasando la media noche  (Leído 2946 veces)

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

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Restar hora pasando la media noche
« 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

CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Restar hora pasando la media noche
« Respuesta #1 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.

erbuson

  • Kilobyte
  • **
  • Mensajes: 75
  • Reputación: +11/-1
    • Ver Perfil
Re:Restar hora pasando la media noche
« Respuesta #2 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


E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Restar hora pasando la media noche
« Respuesta #3 en: Enero 20, 2014, 10:32:31 am »
Exacto amigos funciono así gracias Leandro y Erbuson.

Saludos...
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

wolf_kof

  • Visitante
Re:Restar hora pasando la media noche
« Respuesta #4 en: Enero 20, 2014, 12:44:03 pm »
y el comando DateAdd?