System.TDateTime
Delphi
TDateTime = type Double;
C++
class RTL_DELPHIRETURN TDateTime : public TDateTimeBase
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
type class |
public | System.pas systdate.h |
System | System |
Beschreibung
TDateTime ist die C++-Darstellung des Delphi-Datentyps TDateTime.
TDateTime implementiert den Delphi-Datentyp TDateTime und die Datums-/Uhrzeitfunktionen der Laufzeitbibliothek, die den Datentyp TDateTime verwenden.
Die Klasse TDateTime erbt das Datenelement val, das als double deklariert ist und den Datums-/Uhrzeitwert enthält. Der ganzzahlige Anteil eines TDateTime-Werts ist die Anzahl der Tage, die seit dem 30.12.1899 vergangen sind. Der Dezimalanteil gibt die Uhrzeit an. Das höchste von TDateTime -Werten unterstützte korrekte Datum ist 31.12.9999 23:59:59:999. Alle höheren Datumswerte verursachen in den meisten Routinen, die mit TDateTime-Werten arbeiten, Fehler und Exceptions.
TDateTime unterstützt auch negative Werte. Verwenden Sie negative TDateTime-Werte mit Bedacht. Die inkorrekte Verwendung von negativen Werten kann zu vielerlei Problemen führen.
Die folgende Tabelle enthält Beispiele für TDateTime-Werte und die entsprechenden Datums- und Zeitangaben:
Wert | Beschreibung |
0 | 30. Dezember 1899; 12:00 A.M. |
2.75 | 1. Januar 1900; 6:00 P.M. |
-1.25 | 29. Dezember 1899; 06:00 A.M. |
35065 | 1. Januar 1996; 12:00 A.M. |
Wenn beide TDateTime-Werte positiv sind, brauchen Sie zur Ermittlung der Tage zwischen zwei Datumsangaben die beiden Werte nur voneinander zu subtrahieren. Um eine Datums-/Zeitangabe um eine bestimmte Anzahl von Tagen zu erhöhen, addieren Sie einfach die Anzahl zu dem TDateTime-Wert hinzu.
Die Unit DateUtils hat mehrere APIs (wie DaysBetween, HoursBetween, WeeksBetween usw.), die besser für die Berechnung der Zeit zwischen zwei TDateTime-Werten geeignet sind, und diese APIs funktionieren unabhängig davon, ob das zugrunde liegende Double positiv oder negativ ist.
Wenn Sie mit negativen TDateTime-Werten arbeiten, muss der Zeitanteil separat berechnet werden. Der Zeitanteil gibt den Bruchteil eines 24-Stundentages ohne Berücksichtigung des Vorzeichens des TDateTime-Wertes wieder. Beispiel: 06:00 Uhr am 29. Dezember 1899 ist –1,25, nicht –1 + 0,25, was –0,75 ergäbe. Datumsangaben, die größer als –1.0 bis 0.0 sind, und Datumsangaben, die kleiner als 1.0 bis 0.0 sind, spiegeln sich gegenseitig. Das liegt daran, dass +ve Null und –ve Null gleich sind.
Die folgenden Stream-Operatoren sind definiert:
ostream& operator << (ostream& os, const TDateTime& arg);
istream& operator >> (istream& is, TDateTime& arg);