VariantTimeToSystemTime-Funktion (oleauto.h)

Konvertiert die Variantendarstellung der Zeit in Systemzeitwerte.

Syntax

INT VariantTimeToSystemTime(
  [in]  DOUBLE       vtime,
  [out] LPSYSTEMTIME lpSystemTime
);

Parameter

[in] vtime

Die zu konvertierende Variantenzeit.

[out] lpSystemTime

Empfängt die Systemzeit.

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 und dem 31. Dezember 9999 (einschließlich) darstellt. Der Wert 2,0 steht für den 1. Januar 1900; 3.0 steht für den 2. Januar 1900 usw. Durch Hinzufügen von 1 zum Wert wird das Datum um einen Tag erhöht. Der Bruchteil des Werts stellt die Tageszeit dar. Daher steht 2.5 für den Mittag des 1. Januar 1900; 3.25 steht für 6:00 Uhr am 2. Januar 1900 usw. Negative Zahlen stellen die Daten vor dem 30. Dezember 1899 dar.

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

  • Sie umfasst alle Zeit-/Datumsperioden. Ms-DOS-Datum/Uhrzeit ist auf die Darstellung von Datumsangaben zwischen dem 1.1.1980 und dem 31.12.2107 beschränkt.
  • Auf die Datums-/Uhrzeitelemente kann problemlos zugegriffen werden, ohne dass eine Bitcodierung erforderlich ist.
  • Für die Daten- und Zeitformatierungsfunktionen GetDateFormat und GetTimeFormat wird ein SYSTEMTIME-Wert als Eingabe verwendet.
  • Dies ist das standardmäßige Win32-Format für Zeit- und Datumsdaten, das von Windows NT und Windows 95 unterstützt wird.
Die VariantTimeToSystemTime-Funktion akzeptiert ungültige Datumsangaben und versucht, diese beim Auflösen in eine VARIANT-Zeit zu beheben. Beispielsweise wird ein ungültiges Datum wie der 29.02.2001 in den 01.03.2001 aufgelöst. Es werden nur Tage behoben, sodass ungültige Monatswerte zu einem Fehler führen. Es wird überprüft, ob die Tage zwischen 1 und 31 liegen. Negative Tage und Tage, die größer als 31 sind, führen zu einem Fehler. Ein Tag, der kleiner als 31 ist, aber größer als der maximale Tag in diesem Monat ist, wird auf den entsprechenden Tag des nächsten Monats heraufgestuft. Ein Tag gleich 0 (null) wird als letzter Tag des vorherigen Monats aufgelöst. Beispielsweise wird ein ungültiges Datum wie der 0.02.2001 in den 31.01.2001 aufgelöst.

Anforderungen

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