[kaze's test] プログラミングメモ
→目次
日付と時間(VC++)
VC++で日付と時間を管理するために、幾つかのデータ型とクラスがあります。データ型の種類によって、処理するための関数、APIもそれぞれです。互いに変換する為の関数もあります。
error
1.time_t データ型long 型(typedef long time_t )の整数です。
システム クロックに従って、万国標準時 (UCT) の 1970 年 1 月 1 日の 00:00:00 からの経過時間を秒単位で表した数値を返します。最終日付は 2038 年 1 月 18 日です。
2.CTime クラス
time_t に基づいてのクラスです。最初日付は、マニュアル上では、1970年からですが、ディバッグ上では、1900より前の日を入れるとASSERT 警告がだされてしまいますので、注意する必要があります。最終日付は 2038 年 1 月 18 日です。
3.SYSTEMTIME 構造体
typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME;
WORD で年を管理するので、範囲は広すぎて、開始日付は、 0 年 0 月 0 日です。
4.FILETIME 構造体
typedef struct _FILETIME {
DWORD dwLowDateTime; /* 下位 32 ビット */
DWORD dwHighDateTime; /* 上位 32 ビット */
} FILETIME, *PFILETIME, *LPFILETIME;
FILETIME 構造体は 1601 年 1 月 1 日からの 100 ナノ秒間隔の数を表す 64 ビットの値です。
5.DATE データ型
8バイト浮動小数(typedef double DATE )です。日付は 1899 年 12 月 30 日の午前零時がゼロで、1 日ごとに 1 増加します。時刻は 1.0 が 24 時間の小数です。
6.COleDateTime クラス
DATE に基づいてのクラスです。1899 年 12 月 30 日より前は、日付は 1 日さかのぼるごとに 1 減少しますが、時刻は -1.0 を 24 時間とした小数になります。次に例を示します。
西暦 100 年 1 月 1 日から、9999 年 12 月 31 日までの日時を処理します。
7.CTimeSpan クラス
日、時、分、秒で、時間の間隔を処理するクラスです。CTime クラスと一緒に使われます。
8.COleDateTimeSpan クラス
日、時、分、秒で、時間の間隔を処理するクラスです。COleDateTime
クラスと一緒に使われます。