comandos Fecha y hora

01.09.2013 00:00
 
Manejo de fechas en visual fox pro
Visual FoxPro
posee muchas funciones nativas que generan y manipulan expresiones detipo
Date
y
DateTime
. En este artículo veremos las características de algunas de estas funciones yuna recopilación de funciones definidas por el usuario publicadas en
PortalFox
que nos permitiránobtener diversos resultados a partir de este tipo de expresiones.
Funciones DATE() y DATETIME()
La función
DATE()
nos retorna la fecha actual del sistema si se ejecuta sin argumentos. Para evitarcomplicaciones con fechas ambiguas es conveniente que siempre utilicemos la funciónDATE(nAnio,nMes,nDia) con sus argumentos para crear expresiones de tipo Date.
dFecha DATE() && Fecha actual del sistemadFecha = DATE(2000,03,01) && 1 de Marzo de 2000
La diferencia entre dos expresiones de tipo Date nos retorna el número de días transcurridos entreambas fechas.
? DATE(2004,12,31) - DATE(2004,1,1)
Si se suman o restan cantidades numéricas de días a una expresión de tipo Date, el resultado es otraexpresión de tipo Date.
? DATE() 7 && La fecha actual mas 7 días? DATE() - 15 && La fecha actual menos 15 días
La función
DATETIME()
nos retorna la fecha y hora actual del sistema si se ejecuta sin argumentos.Al igual que la función DATE() y para evitar complicaciones con fechas ambiguas es conveniente quesiempre utilicemos la función DATETIME(nAnio,nMes,nDia,nHoras,nMinutos,nSegundo) con todos susargumentos para crear expresiones de tipo DateTime.
tFHora DATETIME() && Fecha hora actual del sistematFHora = DATETIME(2000,03,01,16,15,30) && 1 de Marzo de 2000, 16:15:30 horas
La diferencia entre dos expresiones de tipo DateTime nos retorna el número de segundostranscurridos entre ambas fechas y horas.
? DATETIME(2004,12,31,23,59,59) - DATETIME(2004,12,31,6,0,0)
NOTA:
Debido a un bug con el redondeo en las fracciones de segundos en variables del tipo DateTimees conveniente redondear las diferencias de estas variables con ROUND(lnSeg,0)
? ROUND(DATETIME(2004,12,31,23,59,59) - DATETIME(2004,12,31,6,0,0), 0)
Si se suman o restan cantidades de segundos a una expresión de tipo DateTime, el resultado es unaexpresión de tipo DateTime.
DATETIME() 60 && Fecha hora actual mas 60 segundos? DATETIME() - 3600 && Fecha y hora actual menos 3600 segundos
Si deseamos generar expresiones Date y DateTime "vacías" lo hacemos de la siguiente manera:
dFecha {} && Expresion Date vaciadFecha {//} && Expresion Date vaciatFHora {/:} && Expresión DateTime vaciatFHora = {//::} && Expresión DateTime vacia