次の方法で共有


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 で記録します。 詳細については、「ファイル時間」を参照してください。

継承階層

FILETIME
 └ CFileTime

要件

ヘッダー: 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 の例を参照してください。

関連項目

FILETIME
CFileTimeSpan クラス
階層グラフ
ATL/MFC 共有クラス