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
,代表絕對時間。
CTime
和 CTimeSpan
類別不是針對衍生所設計。 因為沒有虛擬函式,因此和 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& );
從另一個CTimeSpan
CTimeSpan
值建構物件。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基礎類別庫的偵錯版本會判斷提示。 您必須負責在呼叫之前驗證自變數。
範例
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 共享類別