SystemTimeToVariantTime-Funktion (oleauto.h)

Konvertiert eine Systemzeit in eine Variantendarstellung.

Syntax

INT SystemTimeToVariantTime(
  [in]  LPSYSTEMTIME lpSystemTime,
  [out] DOUBLE       *pvtime
);

Parameter

[in] lpSystemTime

Die Systemzeit.

[out] pvtime

Die Variantenzeit.

Rückgabewert

Die Funktion gibt bei Erfolg TRUE und andernfalls FALSE zurück.

Hinweise

Eine Variantenzeit wird als 8-Byte-Realwert (Double) gespeichert, der ein Datum zwischen dem 1. Januar 1900 und dem 31. Dezember 9999 darstellt. Der Wert 2.0 stellt den 1. Januar 1900 dar; 3.0 steht für den 2. Januar 1900 usw. Das Hinzufügen von 1 zum Wert erhöht das Datum um einen Tag. Der Bruchteil des Werts stellt die Tageszeit dar. 2.5 steht daher für den Mittag des 1. Januar 1900; 3.25 steht für 6:00 Uhr am 2. Januar 1900 usw. Negative Zahlen stellen Datumsangaben vor dem 30. Dezember 1899 dar.

Die Variantenzeit wird auf eine Sekunde aufgelöst. Alle Millisekunden im Eingabedatum werden ignoriert.

Hinweis

Achten Sie bei der Arbeit mit der Variantenzeit auf den zusätzlichen Tag, der in Schaltjahren hinzugefügt wurde, was zu unerwarteten Ergebnissen führen kann, wenn er nicht behandelt wird. Weitere Informationen finden Sie unter Bereitschaft zum Schaltjahr.

Die SYSTEMTIME-Struktur ist aus folgenden Gründen nützlich:

  • Sie umfasst alle Zeit-/Datumsperioden. Das Datum/die Uhrzeit von MS-DOS ist auf die Daten zwischen dem 1.1.1980 und dem 31.12.2107 beschränkt.
  • Auf die Datums-/Uhrzeitelemente kann problemlos zugegriffen werden, ohne dass eine Bitdecodierung erforderlich ist.
  • Die National Data Support-Daten- und Zeitformatierungsfunktionen GetDateFormat und GetTimeFormat nehmen einen LPSYSTEMTIME-Wert als Eingabe an.
  • Dies ist das von Windows unterstützte Standardformat für Zeit-/Datumsdaten.
Die SystemTimeToVariantTime-Funktion akzeptiert ungültige Datumsangaben und versucht, diese beim Auflösen in eine VARIANT-Zeit zu korrigieren. Beispielsweise wird ein ungültiges Datum wie der 29.02.2001 auf den 1.3.2001 aufgelöst. Es werden nur Tage behoben, sodass ungültige Monatswerte zu einem Fehler führen. Die Tage werden zwischen 1 und 31 überprüft. Negative Tage und Tage größer als 31 führen zu einem Fehler. Bei einem Tag unter 31, aber größer als der maximale Tag in diesem Monat wird der Tag auf den entsprechenden Tag des nächsten Monats höhergestuft. Ein Tag gleich 0 wird als letzter Tag des Vormonats aufgelöst. Beispielsweise wird ein ungültiges Datum wie der 0.2.2001 auf den 31.1.2001 aufgelöst.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile oleauto.h
Bibliothek OleAut32.lib
DLL OleAut32.dll