CFileTime
クラス
このクラスでは、ファイルに関連付けられている日付と時刻の値を管理するためのメソッドを提供します。
構文
class CFileTime : public FILETIME
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CFileTime::CFileTime |
コンストラクター。 |
パブリック メソッド
名前 | 説明 |
---|---|
CFileTime::GetCurrentTime |
現在のシステムの日付と時刻を表す CFileTime オブジェクトを取得するには、この静的関数を呼び出します。 |
CFileTime::GetTime |
CFileTime オブジェクトから時刻を取得するには、このメソッドを呼び出します。 |
CFileTime::LocalToUTC |
ローカル ファイル時刻を協定世界時 (UTC) に基づくファイル時刻に変換するには、このメソッドを呼び出します。 |
CFileTime::SetTime |
CFileTime オブジェクトによって格納される日付と時刻を設定するには、このメソッドを呼び出します。 |
CFileTime::UTCToLocal |
協定世界時 (UTC) に基づく時刻をローカル ファイル時刻に変換するには、このメソッドを呼び出します。 |
パブリック演算子
名前 | 説明 |
---|---|
CFileTime::operator - |
この演算子は、CFileTime または CFileTimeSpan オブジェクトで減算を実行するために使用されます。 |
CFileTime::operator != |
この演算子では、2 つの CFileTime オブジェクトが等しくないかどうかを比較します。 |
CFileTime::operator + |
この演算子は、CFileTimeSpan オブジェクトで加算を実行するために使用します。 |
CFileTime::operator += |
この演算子は、CFileTimeSpan オブジェクトで加算を実行し、結果を現在のオブジェクトに代入するために使用します。 |
CFileTime::operator < |
この演算子は、2 つの CFileTime オブジェクトを比較して、小さい方を決定します。 |
CFileTime::operator <= |
この演算子では、2 つの CFileTime オブジェクトを比較して、等しいかどうか、または小さい方を決定します。 |
CFileTime::operator = |
代入演算子。 |
CFileTime::operator -= |
この演算子は、CFileTimeSpan オブジェクトで減算を実行し、結果を現在のオブジェクトに代入するために使用されます。 |
CFileTime::operator == |
この演算子は、2 つの CFileTime オブジェクトが等しいかどうかを比較します。 |
CFileTime::operator > |
この演算子は、2 つの CFileTime オブジェクトを比較して、大きい方を決定します。 |
CFileTime::operator >= |
この演算子は、2 つの CFileTime オブジェクトを比較して、等しいかどうか、または大きい方を決定します。 |
パブリック定数
名前 | 説明 |
---|---|
CFileTime::Day |
1 日を構成する 100 ナノ秒間隔の数を格納する静的データ メンバー。 |
CFileTime::Hour |
1 時間を構成する 100 ナノ秒間隔の数を格納する静的データ メンバー。 |
CFileTime::Millisecond |
1 ミリ秒を構成する 100 ナノ秒間隔の数を格納する静的データ メンバー。 |
CFileTime::Minute |
1 分を構成する 100 ナノ秒間隔の数を格納する静的データ メンバー。 |
CFileTime::Second |
1 秒を構成する 100 ナノ秒間隔の数を格納する静的データ メンバー。 |
CFileTime::Week |
1 週間を構成する 100 ナノ秒間隔の数を格納する静的データ メンバー。 |
解説
このクラスでは、ファイルの作成、アクセス、および変更に関連付けられている日付と時刻の値を管理するためのメソッドを提供します。 このクラスのメソッドとデータは、相対時間値を処理する CFileTimeSpan
オブジェクトと共に頻繁に使用されます。
日付と時刻の値は、1601 年 1 月 1 日以降の 100 ナノ秒間隔の数を表す 64 ビット値として格納されます。 この形式は協定世界時 (UTC) 形式です。
計算を簡略化するために、次の静的 const メンバー変数が提供されています。
メンバー変数 | 100 ナノ秒間隔の数 |
---|---|
Millisecond | 10,000 |
Second | ミリ秒 * 1,000 |
分 | 秒 * 60 |
時間 | 分 * 60 |
日付 | 時間 * 24 |
Week | 日 * 7 |
Note
すべてのファイル システムで作成および最終アクセス時刻を記録できるとは限りません。また、すべてのファイル システムでそれらが同じ方法で記録されるとは限りません。 たとえば、Windows NT FAT ファイル システムでは、作成時刻の分解能は 10 ミリ秒、書き込み時刻の分解能は 2 秒、アクセス時刻の分解能は 1 日 (アクセス日付) です。 NTFS では、アクセス時刻の分解能は 1 時間です。 さらに、FAT ではディスク上の時間をローカル時刻で記録しますが、NTFS ではディスク上の時刻を UTC で記録します。 詳細については、「ファイル時間」を参照してください。
継承階層
要件
ヘッダー: atltime.h
CFileTime::CFileTime
コンストラクター。
CFileTime() throw();
CFileTime(const FILETIME& ft) throw();
CFileTime(ULONGLONG nTime) throw();
パラメーター
ft
FILETIME
構造。
nTime
64 ビット値として表される日付と時刻。
解説
CFileTime
オブジェクトは、FILETIME
構造体の既存の日付と時刻を使用して作成することも、(ローカルまたは協定世界時 (UTC) の時刻形式で) 64 ビット値として表すこともできます。 既定のコンストラクターにより、時刻が 0 に設定されます。
CFileTime::Day
1 日を構成する 100 ナノ秒間隔の数を格納する静的データ メンバー。
static const ULONGLONG Day = Hour* 24;
例
CFileTime::Millisecond
の例を参照してください。
CFileTime::GetCurrentTime
現在のシステムの日付と時刻を表す CFileTime
オブジェクトを取得するには、この静的関数を呼び出します。
static CFileTime GetCurrentTime() throw();
戻り値
現在のシステムの日付と時刻を協定世界時 (UTC) 形式で返します。
例
// Retrieve the current time
CFileTime myFT;
myFT = CFileTime::GetCurrentTime();
CFileTime::GetTime
CFileTime
オブジェクトから時刻を取得するには、このメソッドを呼び出します。
ULONGLONG GetTime() const throw();
戻り値
日付と時刻を 64 ビットの数値として返します。これは、ローカルまたは協定世界時 (UTC) 形式である場合があります。
CFileTime::Hour
1 時間を構成する 100 ナノ秒間隔の数を格納する静的データ メンバー。
static const ULONGLONG Hour = Minute* 60;
例
CFileTime::Millisecond
の例を参照してください。
CFileTime::LocalToUTC
ローカル ファイル時刻を協定世界時 (UTC) に基づくファイル時刻に変換するには、このメソッドを呼び出します。
CFileTime LocalToUTC() const throw();
戻り値
時刻を UTC 形式で格納している CFileTime
オブジェクトを返します。
例
CFileTime::UTCToLocal
の例を参照してください。
CFileTime::Millisecond
1 ミリ秒を構成する 100 ナノ秒間隔の数を格納する静的データ メンバー。
static const ULONGLONG Millisecond = 10000;
例
// Calculate the difference between two times
CFileTime myFT1, myFT2;
CFileTimeSpan myFTS;
// Get the first time
myFT1 = CFileTime::GetCurrentTime();
// Pause for a moment
UINT randVal;
rand_s(&randVal);
Sleep(randVal % 10000);
// Get the second time
myFT2 = CFileTime::GetCurrentTime();
// Calculate the time difference
myFTS = myFT2 - myFT1;
// Measure the difference
if (myFTS.GetTimeSpan() < CFileTime::Minute)
printf_s("Less than a minute passed\n");
else
printf_s("A minute or more passed\n");
if (myFTS.GetTimeSpan() < CFileTime::Second)
printf_s("Less than a second passed\n");
else
printf_s("A second or more passed\n");
if (myFTS.GetTimeSpan() < CFileTime::Millisecond)
printf_s("Less than a millisecond passed\n");
else
printf_s("A millisecond or more passed\n");
CFileTime::Minute
1 分を構成する 100 ナノ秒間隔の数を格納する静的データ メンバー。
static const ULONGLONG Minute = Second* 60;
例
CFileTime::Millisecond
の例を参照してください。
CFileTime::operator -
この演算子は、CFileTime
または CFileTimeSpan
オブジェクトで減算を実行するために使用されます。
CFileTime operator-(CFileTimeSpan span) const throw();
CFileTimeSpan operator-(CFileTime ft) const throw();
パラメーター
span
CFileTimeSpan
オブジェクト。
ft
CFileTime
オブジェクト。
戻り値
CFileTime
オブジェクト、または 2 つのオブジェクト間の時差の結果を表す CFileTimeSpan
オブジェクトを返します。
CFileTime::operator !=
この演算子では、2 つの CFileTime
オブジェクトが等しくないかどうかを比較します。
bool operator!=(CFileTime ft) const throw();
パラメーター
ft
比較される CFileTime
オブジェクト。
戻り値
比較対象の項目が CFileTime
オブジェクトに等しくない場合は TRUE
を返し、それ以外の場合は FALSE
を返します。
CFileTime::operator +
この演算子は、CFileTimeSpan
オブジェクトで加算を実行するために使用します。
CFileTime operator+(CFileTimeSpan span) const throw();
パラメーター
span
CFileTimeSpan
オブジェクト。
戻り値
元の時刻に相対時間を加えた結果を表す CFileTime
オブジェクトを返します。
CFileTime::operator +=
この演算子は、CFileTimeSpan
オブジェクトで加算を実行し、結果を現在のオブジェクトに代入するために使用します。
CFileTime& operator+=(CFileTimeSpan span) throw();
パラメーター
span
CFileTimeSpan
オブジェクト。
戻り値
元の時刻に相対時間を加えた結果を表す、更新された CFileTime
オブジェクトを返します。
CFileTime::operator <
この演算子は、2 つの CFileTime
オブジェクトを比較して、小さい方を決定します。
bool operator<(CFileTime ft) const throw();
パラメーター
ft
比較される CFileTime
オブジェクト。
戻り値
最初のオブジェクトが 2 番目のものより小さい (前である) 場合は TRUE
、それ以外の場合は FALSE
を返します。
例
// Test for one time less than another
// Declare the CFileType objects
CFileTime myFT1, myFT2;
// Obtain the first time value
myFT1 = CFileTime::GetCurrentTime();
// Pause for a moment...
Sleep(1000);
// Obtain the second time value
myFT2 = CFileTime::GetCurrentTime();
// Perform the comparison
if (myFT1 < myFT2)
_tprintf_s(_T("Time is going in the correct direction.\n"));
else
_tprintf_s(_T("Oh dear. Time is going backwards.\n"));
CFileTime::operator <>=
この演算子では、2 つの CFileTime
オブジェクトを比較して、等しいかどうか、または小さい方を決定します。
bool operator<=(CFileTime ft) const throw();
パラメーター
ft
比較される CFileTime
オブジェクト。
戻り値
最初のオブジェクトが 2 番目のものより小さい (前である) か等しい場合は TRUE
、それ以外の場合は FALSE
を返します。
CFileTime::operator =
代入演算子。
CFileTime& operator=(const FILETIME& ft) throw();
パラメーター
ft
新しい時刻と日付を含む CFileTime
オブジェクト。
戻り値
更新された CFileTime
オブジェクトを返します。
CFileTime::operator -=
この演算子は、CFileTimeSpan
オブジェクトで減算を実行し、結果を現在のオブジェクトに代入するために使用されます。
CFileTime& operator-=(CFileTimeSpan span) throw();
パラメーター
span
減算する相対時間を含む CFileTimeSpan
オブジェクト。
戻り値
更新された CFileTime
オブジェクトを返します。
CFileTime::operator ==
この演算子は、2 つの CFileTime
オブジェクトが等しいかどうかを比較します。
bool operator==(CFileTime ft) const throw();
パラメーター
ft
比較する CFileTime
オブジェクト。
戻り値
オブジェクトが等しい場合は TRUE
、それ以外の場合は FALSE
を返します。
CFileTime::operator >
この演算子は、2 つの CFileTime
オブジェクトを比較して、大きい方を決定します。
bool operator>(CFileTime ft) const throw();
パラメーター
ft
比較される CFileTime
オブジェクト。
戻り値
最初のオブジェクトが 2 番目のものより大きい (後である) 場合は TRUE
、それ以外の場合は FALSE
を返します。
CFileTime::operator >=
この演算子は、2 つの CFileTime
オブジェクトを比較して、等しいかどうか、または大きい方を決定します。
bool operator>=(CFileTime ft) const throw();
パラメーター
ft
比較される CFileTime
オブジェクト。
戻り値
最初のオブジェクトが 2 番目のものより大きい (後である) か等しい場合は TRUE
、それ以外の場合は FALSE
を返します。
CFileTime::Second
1 日を構成する 100 ナノ秒間隔の数を格納する静的データ メンバー。
static const ULONGLONG Second = Millisecond* 1000;
例
CFileTime::Millisecond
の例を参照してください。
CFileTime::SetTime
CFileTime
オブジェクトによって格納される日付と時刻を設定するには、このメソッドを呼び出します。
void SetTime(ULONGLONG nTime) throw();
パラメーター
nTime
ローカルまたは協定世界時 (UTC) 形式で、日付と時刻を表す 64 ビット値。
CFileTime::UTCToLocal
協定世界時 (UTC) に基づく時刻をローカル ファイル時刻に変換するには、このメソッドを呼び出します。
CFileTime UTCToLocal() const throw();
戻り値
ローカル ファイル時刻形式の時刻を含む CFileTime
オブジェクトを返します。
例
// Convert a UTC time to local file time format
CFileTime myUTC_FT, myL_FT;
// Get system time (in UTC format)
myUTC_FT = CFileTime::GetCurrentTime();
// Convert to local file time
myL_FT = myUTC_FT.UTCToLocal();
CFileTime::Week
1 週間を構成する 100 ナノ秒間隔の数を格納する静的データ メンバー。
static const ULONGLONG Week = Day* 7;
例
CFileTime::Millisecond
の例を参照してください。