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')