SystemTimeToVariantTime 関数 (oleauto.h)

システム時刻をバリアント形式に変換します。

構文

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

パラメーター

[in] lpSystemTime

システム時刻。

[out] pvtime

バリアント型の時刻。

戻り値

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

注釈

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

バリアント時間は 1 秒に解決されます。 入力日のミリ秒は無視されます。

注意

バリアント型の時間を使用する場合は、閏年に追加された追加の日に注意してください。これにより、未処理の場合に予期しない結果が発生する可能性があります。 詳細については、「 閏年の準備」を参照してください。

SYSTEMTIME 構造体は、次の理由で役立ちます。

  • これは、すべての時間/日付期間にまたがっています。 MS-DOS の日付/時刻は、1980 年 1 月 1 日から 2107 年 12 月 31 日までの日付のみを表す場合に限定されます。
  • 日付/時刻要素はすべて、ビットデコードを行わずに簡単にアクセスできます。
  • National Data Support のデータと時刻の書式設定関数 GetDateFormatGetTimeFormat は、 LPSYSTEMTIME 値を入力として受け取ります。
  • これは、Windows でサポートされている既定の時刻/日付データ形式です。
SystemTimeToVariantTime 関数は無効な日付を受け入れ、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