VariantTimeToSystemTime 関数 (oleauto.h)

時刻のバリアント表現をシステム時刻値に変換します。

構文

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

パラメーター

[in] vtime

変換するバリアント型の時刻。

[out] lpSystemTime

システム時刻を受信します。

戻り値

関数は成功した場合は TRUE を返し、それ以外の場合は FALSE を返します。

注釈

バリアント時刻は、8 バイトの実値 (double) として格納されます。これは、9999 年 1 月 1 日から 9999 年 12 月 31 日までの日付を表します。 値 2.0 は 1900 年 1 月 1 日を表します。3.0 は、1900 年 1 月 2 日などを表します。 値に 1 を追加すると、日付が 1 日ずつインクリメントされます。 値の小数部は、時刻を表します。 したがって、2.5 は 1900 年 1 月 1 日の正午を表します。3.25 は、1900 年 1 月 2 日午前 6 時を表します。 負の数値は、1899 年 12 月 30 日より前の日付を表します。

SYSTEMTIME 構造体を使用すると、次の理由で役立ちます。

  • すべての時間/日付期間にまたがっています。 MS-DOS の日付/時刻は、1980 年 1 月 1 日から 2107 年 12 月 31 日までの日付のみを表す場合に限定されます。
  • 日付/時刻要素はすべて、ビットデコードを行うことなく簡単にアクセスできます。
  • 各国語サポートのデータと時刻の書式設定関数 GetDateFormatGetTimeFormat は、入力として SYSTEMTIME 値を受け取ります。
  • これは、Windows NTと Windows 95 でサポートされている既定の Win32 時刻と日付のデータ形式です。
VariantTimeToSystemTime 関数は無効な日付を受け入れ、VARIANT 時刻に解決するときに修正を試みます。 たとえば、2001 年 2 月 29 日などの無効な日付は、2001 年 3 月 1 日に解決されます。 日のみが固定されているため、無効な月の値を指定するとエラーが返されます。 日数は 1 から 31 の間にチェックされます。 負の日数と 31 日を超える場合、エラーが発生します。 31 日未満で、その月の最大日より大きい日は、その日が翌月の適切な日に昇格します。 0 に等しい日は、前月の最後の日として解決されます。 たとえば、2001 年 2 月 0 日などの無効な日付は、2001 年 1 月 31 日に解決されます。

要件

要件
対象プラットフォーム Windows
ヘッダー oleauto.h
Library OleAut32.lib
[DLL] OleAut32.dll