SYSTEMTIME 構造体 (minwinbase.h)

月、日、年、平日、時間、分、秒、ミリ秒の個々のメンバーを使用して、日付と時刻を指定します。 時刻は、呼び出される関数に応じて、協定世界時 (UTC) または現地時刻のいずれかになります。

構文

typedef struct _SYSTEMTIME {
  WORD wYear;
  WORD wMonth;
  WORD wDayOfWeek;
  WORD wDay;
  WORD wHour;
  WORD wMinute;
  WORD wSecond;
  WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;

メンバー

wYear

年。 このメンバーの有効な値は 1601 から 30827 です。

wMonth

月 このメンバーには、次のいずれかの値を指定できます。

意味
1
January
2
Ferbruary
3
3 月
4
April
5
May
6
6 月
7
7 月
8
8 月
9
September
10
10 月
11
November
12
12 月

wDayOfWeek

曜日 このメンバーには、次のいずれかの値を指定できます。

意味
0
土曜日
1
月曜日
2
Tuesday
3
水曜日
4
Thursday
5
金曜日
6
土曜日

wDay

月の日。 このメンバーの有効な値は 1 から 31 です。

wHour

時 このメンバーの有効な値は 0 から 23 です。

wMinute

分。 このメンバーの有効な値は 0 から 59 です。

wSecond

2 番目の 。 このメンバーの有効な値は 0 から 59 です。

wMilliseconds

ミリ秒。 このメンバーの有効な値は 0 から 999 です。

注釈

注意

SYSTEMTIME では、表される日付が実際の有効な日付であるかどうかを確認するチェックはありません。 この API を使用する場合は、特に閏年のシナリオでその有効性を確保する必要があります。 詳細については、「 うるう日の準備」 を参照してください。

相対時間を取得するために 、SYSTEMTIME 構造体の値を加算および減算することはお勧めしません。 代わりに、次を行う必要があります。

  • SYSTEMTIME 構造体を FILETIME 構造体に変換します。
  • 結果の FILETIME 構造体を ULARGE_INTEGER 構造体にコピーします。
  • ULARGE_INTEGER値には、通常の 64 ビット算術演算を使用します。
システムは、タイム ソースと同期することで、定期的に時刻を更新できます。 システム時刻は前方または後方に調整できるため、システム時間の読み取り値を比較して経過時間を判断しないでください。 代わりに、「 Windows Time」で説明されているいずれかの方法を使用してください。

次の例では、GetSystemTime 関数と GetLocalTime 関数によって取得される時間値の違いを示します。

#include <windows.h>
#include <stdio.h>

void main()
{
    SYSTEMTIME st, lt;
    
    GetSystemTime(&st);
    GetLocalTime(&lt);
    
    printf("The system time is: %02d:%02d\n", st.wHour, st.wMinute);
    printf(" The local time is: %02d:%02d\n", lt.wHour, lt.wMinute);
}


// Sample output

The system time is: 19:34
 The local time is: 12:34

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
Header minwinbase.h (Windows.h を含む)

関連項目

FILETIME

FileTimeToSystemTime

GetLocalTime

GetSystemTime

SetLocalTime

SetSystemTime

SystemTimeToFileTime

ULARGE_INTEGER