共用方式為


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. 比較兩個相對時間值。

備註

CTimeSpan 沒有基類。

CTimeSpan 函式會將秒數轉換成天、小時、分和秒的各種組合。

物件 CTimeSpan 會儲存在結構中 __time64_t ,也就是 8 個位元組。

隨附類別 CTime ,代表絕對時間。

CTimeCTimeSpan 類別不是針對衍生所設計。 因為沒有虛擬函式,因此 和 CTimeSpan 物件的大小 CTime 正好是 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
要比較的物件。

傳回值

這些運算子會比較兩個相對時間值。 如果條件為 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 值,這是時間範圍中的秒數。

lDays, nHours, nMins, nSecs
日、小時、分和秒分別。

備註

所有這些建構函式都會建立以指定相對時間初始化的新 CTimeSpan 物件。 每個建構函式如下所述:

  • CTimeSpan( ); 建構未初始化 CTimeSpan 的物件。

  • CTimeSpan( const CTimeSpan& ); 從另一個 CTimeSpanCTimeSpan 值建構 物件。

  • CTimeSpan( __time64_t );CTimeSpan從型別 __time64_t 建構 物件。

  • CTimeSpan( LONG, int, int, int );CTimeSpan從元件建構 物件,每個元件受限於下列範圍:

    元件 範圍
    lDays 0-25,000 (大約)
    nHours 0-23
    nMins 0-59
    nSecs 0-59

請注意,如果一或多個時間日期元件超出範圍,Microsoft Foundation Class Library 的偵錯版本會判斷提示。 您必須負責在呼叫之前驗證引數。

範例

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;

參數

pFormat, pszFormat
格式字串,類似于 printf 格式化字串。 格式化程式碼前面加上百分比 ( % ) 符號,會由對應的 CTimeSpan 元件取代。 格式化字串中的其他字元會保持不變地複製到傳回的字串。 的格式化程式碼 Format 的值和意義如下:

  • %D 此專案中的總天數 CTimeSpan

  • %H 當日的時數

  • %M 目前小時內的分鐘數

  • %S 目前分鐘中的秒數

  • %% 百分比符號

nID
識別此格式之字串的識別碼。

傳回值

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 之間的天數報告為 29,而不是 30,因為 4 月份的一天會縮短一小時,因此不會算為完整一天。

範例

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::operator +, CTimeSpan::operator -

加入和減去 CTimeSpan 物件。

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

參數

span
要加入至 CTimeSpan 物件的值。

傳回值

CTimeSpan物件,表示作業的結果。

備註

這兩個運算子可讓您在彼此之間加入和減去 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::operator +=, CTimeSpan::operator -=

從這個 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

注意

這個方法只能在 MFC 專案中使用。

序列化與封存中成員變數相關聯的資料。

CArchive& Serialize64(CArchive& ar);

參數

ar
CArchive您要更新的物件。

傳回值

更新 CArchive 的物件。

另請參閱

asctime, _wasctime
_ftime, _ftime32, _ftime64
gmtime, _gmtime32, _gmtime64
localtime, _localtime32, _localtime64
strftime, wcsftime, _strftime_l, _wcsftime_l
time, _time32, _time64
階層架構圖表
ATL/MFC 共用類別