Visual Basic - DIFERENCIA ENTRE 2 HORAS

Life is soft - evento anual de software empresarial
 
Vista:

DIFERENCIA ENTRE 2 HORAS

Publicado por RODRIGO SALAZAR (9 intervenciones) el 11/04/2009 23:05:14
HOLA YO NUEVAMENTE, LOGRE SACAR LA DIFERENCIA ENTRE DOS HORAS
TODO BIEN HASTA QUE TENGO QUE RESTAR POR EJEMPLO DE 23:00 A 00:30
ES DONDE ME TIRA UN ERROR. ME EXPLICO MEJOR , SI LA HORA 1 ES MAYOR A LA HORA 2 EL RESULATADO ES ERRONEO O BIEN ME ARROJA ERROR
ESTE ES EL CODIGO KE ESTOY OCUPANDO.

(DOS CAJAS DE TEXTO DONDE DIGITO LAS HORAS Y UN LABEL DONDE MUESTRO LA DIFENCIA)

1
2
3
4
5
6
7
8
9
10
Dim totsegs As Long
Dim h As Integer
Dim m As Integer
Dim s As Integer
totsegs = DateDiff("S", Text1, Text2)
h = totsegs  3600
totsegs = totsegs - (h * 3600)
m = totsegs  60
s = totsegs Mod 60
Label1 = Format(h) & ":" & Format(m, "00") & ":" & Format(s, "00")
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:DIFERENCIA ENTRE 2 HORAS

Publicado por P3L30N2009 (699 intervenciones) el 12/04/2009 09:52:05
Depende de lo que quieras:

Si no quieres sacar la diferencia en negativo, una simple comparación:
1
2
3
4
If Text1 > Text2 Then
    MsgBox "la hora inicial no puede ser superior"
    Exit Sub
End If

Si quieres sacar la diferencia en negativo, conviertes los segundos a positivo y le pones el signo menos delante:
1
2
3
4
5
6
7
8
9
10
11
totsegs = DateDiff("S", Text1, Text2)
Label1 = ""
If totsegs < 0 Then
totsegs = totsegs * -1
Label1 = "- "
End If
h = totsegs \ 3600
totsegs = totsegs - (h * 3600)
m = totsegs \ 60
s = totsegs Mod 60
Label1 = Label1 & Format(h) & ":" & Format(m, "00") & ":" & Format(s, "00")

Otra cosa es que las horas sean de días dferentes. Entonces para que haga bien el cálculo tendrías que escribir en ambos TextBox la fecha y la hora en formato "dd/mm/yyy hh:MM:ss".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:DIFERENCIA ENTRE 2 HORAS

Publicado por Pedro Luis (878 intervenciones) el 13/04/2009 14:26:13
Creo que te complicas mucho la vida. Mi solución sería la siguiente
Horas=(cdate(texto1)-cdate(texto2))*24
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:DIFERENCIA ENTRE 2 HORAS

Publicado por P3L30N2009 (699 intervenciones) el 13/04/2009 15:05:40
Creo que no has leido bien la pregunta.

No está pidiendo las horas en decimal, sino en formato horas:minutos:segundos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:DIFERENCIA ENTRE 2 HORAS

Publicado por Pedro Luis (878 intervenciones) el 14/04/2009 09:29:27
Bueno, vale, de acuerdo, corrijo

Horas=format((cdate(texto1)-cdate(texto2)),"hh:mm:ss")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

RE:DIFERENCIA ENTRE 2 HORAS

Publicado por P3L30N2009 (699 intervenciones) el 14/04/2009 11:43:52
Muy bueno!

Nunca se me hubiera ocurrido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:DIFERENCIA ENTRE 2 HORAS

Publicado por Mandingo (1 intervención) el 09/01/2014 13:19:15
Muy buenooooo!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

DIFERENCIA ENTRE 2 HORAS

Publicado por Sofia (13 intervenciones) el 27/10/2017 17:06:29
Hola Rodrigo,
Estoy probando este código en VB6 pero al correrlo me dice que la variable totsegs está con OVERFLOW. Te ha pasado?, cómo soluciono esto?, porque yo también necesito el código para obtener el tiempo transcurrido desde una hora de inicio de un día hasta la hora final del siguiente día. Mil gracias de antemano !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

DIFERENCIA ENTRE 2 HORAS

Publicado por Sofia (13 intervenciones) el 27/10/2017 17:57:52
Perdón, la variable h es la que indica Overflow.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar