Compartir a través de


Tipo DATE

El tipo DATE se implementa mediante un número de punto flotante de 8 bytes. Los días se representan mediante incrementos de números enteros, comenzando por el 30 de diciembre de 1899, la medianoche como hora cero. Los valores de hora se expresan como el valor absoluto de la parte fraccionaria del número. En la tabla siguiente se muestran varias fechas junto con su equivalente numérico de tipo DATE:

Fecha y hora Representación
30 de diciembre de 1899, medianoche 0.00
1 de enero de 1900, medianoche 2.00
4 de enero de 1900, medianoche 5.00
4 de enero de 1900, 6 a. m. 5.25
4 de enero de 1900, mediodía 5.50
4 de enero de 1900, 9 p. m. 5.875

El tipo de fecha DATE, así como la clase COleDateTime, representa fechas y horas como una línea de número clásica. La clase COleDateTime contiene varios métodos para manipular valores DATE, incluida la conversión a y desde otros formatos de fecha comunes.

Se deben tener en cuenta los siguientes puntos al trabajar con estos formatos de fecha y hora en Automation:

  • Las fechas se especifican en la hora local; la sincronización se debe realizar de forma manual al trabajar con fechas en diferentes zonas horarias.

  • Los tipos de fecha no tienen en cuenta el horario de verano.

  • La escala de tiempo de fecha se vuelve discontinua para los valores de fecha inferiores a 0 (antes del 30 de diciembre de 1899). Esto se debe a que la parte de número entero del valor de fecha se trata como firmada, mientras que la parte fraccional se trata como sin firmar. En otras palabras, la parte de número entero del valor de fecha puede ser positiva o negativa, mientras que la parte fraccional del valor de fecha siempre se agrega a la fecha lógica general. En la tabla siguiente se muestran algunos ejemplos:

Fecha y hora Representación
27 de diciembre de 1899, medianoche -3,00
28 de diciembre de 1899, mediodía -2.50
28 de diciembre de 1899, medianoche -2,00
29 de diciembre de 1899, medianoche -1,00
30 de diciembre de 1899, 6 p. m. -0.75
30 de diciembre de 1899, mediodía -0,50
30 de diciembre de 1899, 6 a. m. -0,25
30 de diciembre de 1899, medianoche 0.00
30 de diciembre de 1899, 6 a. m. 0,25
30 de diciembre de 1899, mediodía 0,50
30 de diciembre de 1899, 6 p. m. 0,75
31 de diciembre de 1899, medianoche 1.00
1 de enero de 1900, medianoche 2.00
1 de enero de 1900, mediodía 2,50
2 de enero de 1900, medianoche 3.00

Precaución

Tenga en cuenta que, dado que las 6:00 a. m. siempre se representan mediante un valor fraccional de 0,25, independientemente de si el entero que representa el día es positivo (después del 30 de diciembre, 1899) o negativo (antes del 30 de diciembre de 1899), una comparación simple del punto flotante ordenaría erróneamente cualquier fecha que represente las 6:00 a. m. en un día anterior al 30/12/1899 como posterior a un elemento DATE que represente las 7:00 a. m. en ese mismo día.

Puede encontrar más información sobre los problemas relacionados con la fecha y COleDateTime los tipos en COleDateTime (Clase) y Fecha y hora: compatibilidad con Automation.

Consulte también

Fecha y hora
COleDateTime (clase)