CTimeSpan クラス

期間内の秒数として内部的に格納される時間。

構文

class CTimeSpan

メンバー

パブリック コンストラクター

名前 説明
CTimeSpan::CTimeSpan さまざまな方法で CTimeSpan オブジェクトを作成します。

パブリック メソッド

名前 説明
CTimeSpan::Format CTimeSpan を書式設定された文字列に変換します。
CTimeSpan::GetDays この CTimeSpan の完全な日の数を表す値を返します。
CTimeSpan::GetHours 現在の日の時間数 (-23 から 23) を表す値を返します。
CTimeSpan::GetMinutes 現在の時間の分数 (-59 から 59) を表す値を返します。
CTimeSpan::GetSeconds 現在の分の秒数 (-59 から 59) を表す値を返します。
CTimeSpan::GetTimeSpan CTimeSpan オブジェクトの値を返します。
CTimeSpan::GetTotalHours この CTimeSpan の完全な時間の合計数を表す値を返します。
CTimeSpan::GetTotalMinutes この CTimeSpan の完全な分の合計数を表す値を返します。
CTimeSpan::GetTotalSeconds この CTimeSpan の完全な秒の合計数を表す値を返します。
CTimeSpan::Serialize64 アーカイブとの間でデータをシリアル化します。

演算子

名前 説明
operator + - CTimeSpan オブジェクトを加算および減算します。
operator += -= この CTimeSpan との間で CTimeSpan オブジェクトを加算および減算します。
operator == < etc. 2 つの相対時間値を比較します。

解説

CTimeSpan には基底クラスはありません。

CTimeSpan 関数は、秒を日、時間、分、および秒のさまざまな組み合わせに変換します。

CTimeSpan オブジェクトは、8 バイトの __time64_t 構造体に格納されます。

コンパニオン クラス CTime は絶対時間を表します。

CTimeCTimeSpan のクラスは、派生するようには設計されていません。 仮想関数はないので、CTimeCTimeSpan の両方のオブジェクトのサイズは正確に 8 バイトです。 ほとんどのメンバー関数はインラインです。

CTimeSpan の使用の詳細については、"ランタイム ライブラリ リファレンス" の記事「日時」および「時間管理」を参照してください。

要件

ヘッダー: atltime.h

CTimeSpan比較演算子

比較演算子。

bool operator==(CTimeSpan span) const throw();
bool operator!=(CTimeSpan span) const throw();
bool operator<(CTimeSpan span) const throw();
bool operator>(CTimeSpan span) const throw();
bool operator<=(CTimeSpan span) const throw();
bool operator>=(CTimeSpan span) const throw();

パラメーター

span
比較するオブジェクト。

戻り値

これらの演算子は、2つの相対時間値を比較します。 条件の結果が true の場合は TRUE、それ以外の場合は FALSE を返します。

CTimeSpan ts1(100);
CTimeSpan ts2(110);
ATLASSERT((ts1 != ts2) && (ts1 < ts2) && (ts1 <= ts2));   

CTimeSpan::CTimeSpan

さまざまな方法で CTimeSpan オブジェクトを作成します。

CTimeSpan() throw();
CTimeSpan(__time64_t time) throw();

CTimeSpan(
    LONG lDays,
    int nHours,
    int nMins,
    int nSecs) throw();

パラメーター

timeSpanSrc
既に存在する CTimeSpan オブジェクト。

time
現在の期間の秒数である __time64_t 時刻値。


それぞれ日、時間、分、および秒。

解説

これらのすべてのコンストラクターは、指定された相対時間で初期化された新しい CTimeSpan オブジェクトを作成します。 次に、各コンストラクターについて説明します。

  • CTimeSpan( ); 初期化されていない CTimeSpan オブジェクトを作成します。

  • CTimeSpan( const CTimeSpan& ); CTimeSpan 値から CTimeSpan オブジェクトを作成します。

  • CTimeSpan( __time64_t ); __time64_t 型から CTimeSpan オブジェクトを作成します。

  • CTimeSpan( LONG, int, int, int ); 各コンポーネントを次の範囲に制限して、コンポーネントから CTimeSpan オブジェクトを作成します。

    コンポーネント Range
    lDays 0-25,000 (およそ)
    nHours 0-23
    nMins 0-59
    nSecs 0-59

1 つ以上の時間-日コンポーネントが範囲外である場合、デバッグ バージョンの Microsoft Foundation Class ライブラリによってアサートされます。 引数は、呼び出す前に検証する必要があります。

CTimeSpan ts1;  // Uninitialized time value
CTimeSpan ts2a(ts1); // Copy constructor
CTimeSpan ts2b = ts1; // Copy constructor again
CTimeSpan ts3(100); // 100 seconds
CTimeSpan ts4(0, 1, 5, 12);    // 1 hour, 5 minutes, and 12 seconds   

CTimeSpan::Format

この CTimeSpan に対応する書式設定済みの文字列を生成します。

CString Format(LPCSTR pFormat) const;
CString Format(LPCTSTR pszFormat) const;
CString Format(UINT nID) const;

パラメーター

$
printf の書式設定文字列に似た書式設定文字列。 前にパーセント (%) 記号の付いた書式設定コードは、対応する CTimeSpan コンポーネントに置き換えられます。 書式設定文字列内の他の文字は、返される文字列にそのままコピーされます。 Format の書式設定コードの値と意味は次のとおりです。

  • %D この CTimeSpan の合計日数

  • %H 現在の日の時

  • %M 現在の時の分

  • %S 現在の分の秒

  • %% パーセント記号

nID
この書式を識別する文字列の ID。

戻り値

書式設定済みの時刻を含む CString オブジェクト。

解説

デバッグ バージョンのライブラリは、書式設定コードを確認し、コードが上のリストにない場合はアサートします。

CTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
CString s = ts.Format(_T("Total days: %D, hours: %H, mins: %M, secs: %S"));
ATLASSERT(s == _T("Total days: 3, hours: 01, mins: 05, secs: 12"));   

CTimeSpan::GetDays

この CTimeSpan の完全な日の数を表す値を返します。

LONGLONG GetDays() const throw();

戻り値

期間内で完全な 24 時間の日の数を返します。 この値は、期間が負の場合、負の値になることがあります。

解説

夏時間 (DST) によって、GetDays が予想外の結果を返す可能性があることに注意してください。 たとえば、DST が有効な場合、GetDays では 4 月 1 日から 5 月 1 日までの日数が 30 ではなく 29 として報告されます。これは、4 月の 1 日が 1 時間短縮され、完全な日としてカウントされないためです。

CTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ATLASSERT(ts.GetDays() == 3);   

CTimeSpan::GetHours

現在の日の時間数 (-23 から 23) を表す値を返します。

LONG GetHours() const throw();

戻り値

現在の日付の時間数を返します。 -23 から 23 の範囲です。

CTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ATLASSERT(ts.GetHours() == 1);
ATLASSERT(ts.GetMinutes() == 5);
ATLASSERT(ts.GetSeconds() == 12);   

CTimeSpan::GetMinutes

現在の時間の分数 (-59 から 59) を表す値を返します。

LONG GetMinutes() const throw();

戻り値

現在の時間の分数を返します。 -59 から 59 の範囲です。

GetHours の例を参照してください。

CTimeSpan::GetSeconds

現在の分の秒数 (-59 から 59) を表す値を返します。

LONG GetSeconds() const throw();

戻り値

現在の分の秒数を返します。 -59 から 59 の範囲です。

GetHours の例を参照してください。

CTimeSpan::GetTimeSpan

CTimeSpan オブジェクトの値を返します。

__ time64_t GetTimeSpan() const throw();

戻り値

CTimeSpan オブジェクトの現在の値を返します。

CTimeSpan::GetTotalHours

この CTimeSpan の完全な時間の合計数を表す値を返します。

LONGLONG GetTotalHours() const throw();

戻り値

この CTimeSpan の完全な時間の合計数を返します。

CTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ATLASSERT(ts.GetTotalHours() == 73);
ATLASSERT(ts.GetTotalMinutes() == 4385);
ATLASSERT(ts.GetTotalSeconds() == 263112);   

CTimeSpan::GetTotalMinutes

この CTimeSpan の完全な分の合計数を表す値を返します。

LONGLONG GetTotalMinutes() const throw();

戻り値

この CTimeSpan の完全な分の合計数を返します。

GetTotalHours の例を参照してください。

CTimeSpan::GetTotalSeconds

この CTimeSpan の完全な秒の合計数を表す値を返します。

LONGLONG GetTotalSeconds() const throw();

戻り値

この CTimeSpan の完全な秒の合計数を返します。

GetTotalHours の例を参照してください。

$

CTimeSpan オブジェクトを加算および減算します。

CTimeSpan operator+(CTimeSpan span) const throw();
CTimeSpan operator-(CTimeSpan span) const throw();

パラメーター

span
CTimeSpan オブジェクトに追加する値。

戻り値

操作の結果を表す CTimeSpan オブジェクト。

解説

これら 2 つの演算子を使用すると、CTimeSpan オブジェクトとの間で減算や加算を行うことができます。

CTimeSpan ts1(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
CTimeSpan ts2(100); // 100 seconds
CTimeSpan ts3 = ts1 + ts2;
ATLASSERT(ts3.GetSeconds() == 52); // 6 mins, 52 secs   

$

この CTimeSpan との間で CTimeSpan オブジェクトを加算および減算します。

CTimeSpan& operator+=(CTimeSpan span) throw();
CTimeSpan& operator-=(CTimeSpan span) throw();

パラメーター

span
CTimeSpan オブジェクトに追加する値。

戻り値

更新後の CTimeSpan オブジェクト。

解説

これらの演算子を使用すると、CTimeSpan オブジェクトの加算や、この CTimeSpan からの減算を行うことができます。

CTimeSpan ts1(10); // 10 seconds
CTimeSpan ts2(100); // 100 seconds
ts2 -= ts1;
ATLASSERT(ts2.GetTotalSeconds() == 90);   

CTimeSpan::Serialize64

Note

このメソッドは、MFC プロジェクトでのみ使用できます。

アーカイブとの間で、メンバー変数に関連付けられたデータをシリアル化します。

CArchive& Serialize64(CArchive& ar);

パラメーター

ar
更新する CArchive オブジェクト。

戻り値

更新後の CArchive オブジェクト。

関連項目

$





階層図
ATL/MFC 共有クラス