FoxPro/Visual FoxPro - Restar Horas

 
Vista:

Restar Horas

Publicado por Sergio Alonso (12 intervenciones) el 15/07/2002 15:46:09
Tengo dos campos caracter, donde tengo almacenado horas, p.e. "10:20:35", necesito restar esos dos campos, como lo puedo hacer??

Gracias por la ayuda
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:Restar Horas

Publicado por Marcos Jara (155 intervenciones) el 16/07/2002 16:33:47
Aqui va el ejemplo

***************************************************
* RESTA UNA HORA DE OTRA
* FORMATO DE LOS PARAMETROS QUE ENTRAN: HH:MM:SS
* hora Restar, siempre debe ser mas grande
FUNCTION RESTARHHMMSS
LPARAMETER xHora, HoraRestar
IF SEGUNDOS(HoraRestar) < SEGUNDOS(xHora)
x = val(subs(HoraRestar, 1, 2)) + 24 && 34
y = subs(HoraRestar, 3, 8)
HoraRestar = str(x, 99) + y
&& wait windows horarestar
ENDIF
*Se separan cada horas en hh y mm
Hora1 = VAL(SUBS(xHora, 1, 2))
Minu1 = VAL(SUBS(xHora, 4, 2))
Segu1 = VAL(SUBS(xHora, 7, 2))
Hora2 = VAL(SUBS(HoraRestar, 1, 2))
Minu2 = VAL(SUBS(HoraRestar, 4, 2))
Segu2 = VAL(SUBS(HoraRestar, 7, 2))

* Primero resta los segundos
IF Segu2 < Segu1
Segu2 = Segu2 + 60
Minu2 = Minu2 - 1
ENDIF
ResulSegu = ABS[(Segu2) - (Segu1)]

* Primero resta los minutos
IF Minu2 < Minu1
Minu2 = Minu2 + 60
Hora2 = Hora2 - 1
ENDIF
ResulMinu = ABS[(Minu2) - (Minu1)]

* Luego resta las horas
ResulHora = (Hora2) - (Hora1)
IF ResulHora < 0
ResulHora = 0
ENDIF

RETURN(TRANS(ResulHora, '@L 99') + ':' + TRANS(ResulMinu, '@L 99') + ':' + TRANS(ResulSegu, '@L 99'))


Copialo y pegalo en Fox,

Forma de utilizar
? restarhhmmss(time(), '15:30:21')
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:Restar Horas

Publicado por Sergio (12 intervenciones) el 16/07/2002 17:27:11
Oye... muchas gracias por tu colaboracion.
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