System.TDateTime
Delphi
TDateTime = type Double;
C++
class RTL_DELPHIRETURN TDateTime : public TDateTimeBase
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
type class |
public | System.pas systdate.h |
System | System |
Description
TDateTime est l'équivalent C++ du type de données TDateTime de Delphi.
TDateTime implémente le type de données TDateTime de Delphi et les routines de la bibliothèque d'exécution des dates et heures utilisant le type de données TDateTime.
La classe TDateTime hérite d'une donnée membre val déclarée en tant que double, qui mémorise la valeur date-heure. La partie entière d'une valeur TDateTime représente le nombre de jours qui se sont écoulés depuis le 30.12.99. La partie fractionnaire de TDateTime représente l'heure. La date maximale correcte supportée par les valeurs TDateTime est limitée au 12/31/9999 23:59:59:999. Toutes les valeurs allant au-delà de cette date provoquent des erreurs et des exceptions dans la plupart des routines qui opèrent avec des valeurs TDateTime.
TDateTime prend aussi en charge les valeurs négatives. Utilisez les valeurs TDateTime négatives avec précaution. Un usage incorrect de valeurs négatives peut conduire à des problèmes variés.
Le tableau suivant affiche des exemples de valeurs TDateTime avec les dates et heures correspondantes :
Valeur | Description |
0 | 30 décembre 1899; 12:00 A.M. |
2.75 | 1 janvier 1900; 6:00 P.M. |
-1.25 | 29 décembre 1899; 6:00 A.M. |
35065 | 1 janvier 1996; 12:00 A.M. |
Pour trouver le nombre fractionnaire de jours entre deux dates, il suffit de soustraire les deux valeurs, sauf si l'une des valeurs TDateTime est négative. De même, pour incrémenter une valeur date-heure d'un certain nombre fractionnaire de jours, ajoutez le nombre fractionnaire à la valeur date-heure si la valeur TDateTime est positive.
L'unité DateUtils comporte plusieurs API (comme DaysBetween, HoursBetween, WeeksBetween, etc) qui sont des API plus adaptées pour calculer le délai entre deux TDateTime. Par ailleurs, ces API fonctionnent indépendamment du fait que le double sous-jacent soit négatif ou positif.
Lors de la manipulation de valeurs TDateTime négatives, les calculs doivent traiter la partie heure séparément. La partie fractionnaire reflète la fraction d'une journée de 24 heures indépendamment du signe de la valeur TDateTime. Par exemple, 6:00 le 29 décembre 1899 est –1.25, et non –1 + 0.25, ce qui reviendrait à –0.75. Les dates ultérieures à -1.0 jusqu'à 0.0, et les dates antérieures à 1.0 jusqu'à 0.0, correspondent. Cela s'explique par le fait que zéro +ve et zéro -ve sont égaux.
Les opérateurs de flux suivants sont définis :
ostream& operator << (ostream& os, const TDateTime& arg);
istream& operator >> (istream& is, TDateTime& arg);