DATE, type

Le type DATE est implémenté à l’aide d’un nombre à virgule flottante de 8 octets. Les jours sont représentés par des incréments de nombre entiers commençant par le 30 décembre 1899, minuit comme heure zéro. Les valeurs d'heure sont exprimées sous la forme de la valeur absolue de la partie fractionnaire du nombre. Le tableau suivant illustre plusieurs dates ainsi que leur équivalent numérique de type DATE :

Date et heure Représentation
30 décembre 1899, minuit 0.00
1er janvier 1900, minuit 2,00
4 janvier 1900, minuit 5.00
4 janvier 1900, 6 h 5.25
4 janvier 1900, midi 5.50
4 janvier 1900, 9 h 5.875

Le type date DATE, ainsi que la COleDateTime classe, représente des dates et des heures sous la forme d’une ligne numérique classique. La COleDateTime classe contient plusieurs méthodes pour manipuler des valeurs DATE, notamment la conversion vers et à partir d’autres formats de date courants.

Les points suivants doivent être notés lors de l’utilisation de ces formats de date et d’heure dans Automation :

  • Les dates sont spécifiées dans l’heure locale ; la synchronisation doit être effectuée manuellement lors de l’utilisation de dates dans différents fuseaux horaires.

  • Les types de dates ne comptent pas pour l’heure d’été.

  • La date chronologie devient discontinue pour les valeurs de date inférieures à 0 (avant le 30 décembre 1899). Cela est dû au fait que la partie entière de la valeur de date est traitée comme signée, tandis que la partie fractionnaire est traitée comme non signée. En d’autres termes, la partie entière de la valeur de date peut être positive ou négative, tandis que la partie fractionnaire de la valeur de date est toujours ajoutée à la date logique globale. Le tableau suivant illustre quelques exemples :

Date et heure Représentation
27 décembre 1899, minuit -3,00.
28 décembre 1899, midi -2.50
28 décembre 1899, minuit -2,00
29 décembre 1899, minuit -1,00
30 décembre 1899, 18 h -0.75
30 décembre 1899, midi -0,50
30 décembre 1899, 6 h -0,25
30 décembre 1899, minuit 0.00
30 décembre 1899, 6 h 0,25
30 décembre 1899, midi 0,50
30 décembre 1899, 18 h 0.75
31 décembre 1899, minuit 1,00
1er janvier 1900, minuit 2,00
1er janvier 1900, midi 2,50
2 janvier 1900, minuit 3.00

Attention

Notez que, étant donné que 6 :00 AM est toujours représenté par une valeur fractionnelle 0,25, que l’entier représentant le jour soit positif (après le 30 décembre, 1899) ou négatif (avant le 30 décembre 1899), une comparaison à virgule flottante simple trierait par erreur n’importe quelle DATE représentant 6h00 le jour précédent le 12/30/1899 plus tard qu’une DATE représentant 7h00 le même jour.

Vous trouverez plus d’informations sur les problèmes liés aux types DATE et COleDateTime DATE sous COleDateTime Class and Date and Time : Automation Support.

Voir aussi

Date et heure
COleDateTime, classe