operaciones con formato hora

27/03/2005 - 23:06 por xmeele | Informe spam
podrian guiarme como es que puedo sumar y restar datos tipo TIME

Preguntas similare

Leer las respuestas

#1 Alex Feldstein
28/03/2005 - 00:07 | Informe spam
On Sun, 27 Mar 2005 16:06:56 -0500, "xmeele" wrote:

podrian guiarme como es que puedo sumar y restar datos tipo TIME



No puedes ya que en VFP son un String.
Usa DateTime() y resta de otro DateTime().



Alex Feldstein
________________________________
Microsoft Visual FoxPro MVP
Please respond in the public groups so that everybody
can benefit from the exchange.
Favor de responder en los foros públicos asi todos se benefician.
(address munged with ROT-13)

Blog: http://www.bloglines.com/blog/AlexFeldstein
Website: http://feldstein.net
Respuesta Responder a este mensaje
#2 Luis María Guayán
28/03/2005 - 02:38 | Informe spam
Como te indica Alex, TIME() retorna una cadena de 8 caracteres con las cuales no
podras realizar operaciones aritméticas.

Deberias transformar tu HORA a cantidad de segundos y usar estas funciones con
horas del mismo día:

? Seg2Hor(Hor2Seg("16:40:20") - Hor2Seg("07:08:55"))

*--
* FUNCTION Seg2Hor(nSegundos)
*--
* Transforma segundos a formato hhHH:MM:SS
* USO: Seg2Hor(nSegundos)
* EJEMPLO: Seg2Hor(35000)
* RETORNA: Caracter 'HH:MM:SS'
* AUTOR: LMG
*--
FUNCTION Seg2Hor(nSegundos)
LOCAL lnHoras, lnMinutos, lnSegundos
lnHoras = INT(nSegundos/3600)
lnMinutos = INT(((nSegundos-(lnHoras*3600))/60))
lnSegundos = MOD(nSegundos,60)
RETURN IIF(lnHoras<100,TRANSFORM(lnHoras,"@L 99"), ;
TRANSFORM(lnHoras,"@L 9999")) +":"+ ;
TRANSFORM(lnMinutos,"@L 99")+":"+ ;
TRANSFORM(lnSegundos,"@L 99")
ENDFUNC

*--
* FUNCTION Hor2Seg(cHora)
*--
* Transforma HH:MM:SS a segundos transcurridos desde
* la medianoche
* USO: Hor2Seg('hh:mm:ss')
* EJEMPLO: Hor2Seg('12:45:00')
* RETORNA: numérico
* AUTOR: LMG
*--
FUNCTION Hor2Seg(cHora)
RETURN VAL(RIGH(cHora,2)) + ;
VAL(SUBSTR(cHora,4,2))*60 + ;
VAL(LEFT(cHora,2))*3600
ENDFUNC

*--

Lo mejor para operaciones de este tipo es utilizar variables del tipo
DATETIME(). Nira el sig. artículo de PortalFox:

http://www.panoramabox.com/GoPub.aspx?IdObj!71

Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos


"xmeele" escribió en el mensaje
news:uAVXY$
podrian guiarme como es que puedo sumar y restar datos tipo TIME


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida