添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

COleDateTimeSpan 沒有基類。

COleDateTimeSpan 以天為單位來保留時間。

COleDateTimeSpan 與隨附類別 COleDateTime 搭配使用。 COleDateTime 封裝 DATE OLE 自動化的資料類型。 COleDateTime 表示絕對時間值。 所有 COleDateTime 計算都牽涉到 COleDateTimeSpan 值。 這些類別之間的關聯類似于 CTime 與 CTimeSpan 之間的 關聯。

如需 和 類別的詳細資訊 COleDateTime ,請參閱日期和時間:自動化支援 一文 COleDateTimeSpan

標頭: ATLComTime.h

COleDateTimeSpan 關係運算子

比較運算子。

bool operator==(const COleDateTimeSpan& dateSpan) const throw();
bool operator!=(const COleDateTimeSpan& dateSpan) const throw();
bool operator<(const COleDateTimeSpan& dateSpan) const throw();
bool operator>(const COleDateTimeSpan& dateSpan) const throw();
bool operator<=(const COleDateTimeSpan& dateSpan) const throw();
bool operator>=(const COleDateTimeSpan& dateSpan) const throw();

dateSpan
要比較的 COleDateTimeSpan

這些運算子會比較兩個日期/時間範圍值,如果條件為 true,則傳回 TRUE;否則為 FALSE。

如果任一運算元無效,就會發生 ATLASSERT。

COleDateTimeSpan spanOne(3, 12, 0, 0); // 3 days and 12 hours
COleDateTimeSpan spanTwo(spanOne);     // 3 days and 12 hours
BOOL b;
b = spanOne == spanTwo;                // TRUE
b = spanOne < spanTwo;                 // FALSE, same value
b = spanOne > spanTwo;                 // FALSE, same value
b = spanOne <= spanTwo;                // TRUE, same value
b = spanOne >= spanTwo;                // TRUE, same value   
spanTwo.SetStatus(COleDateTimeSpan::invalid);
b = spanOne == spanTwo;                // FALSE, different status
b = spanOne != spanTwo;                // TRUE, different status
COleDateTimeSpan ts1(100.0);   // one hundred days
COleDateTimeSpan ts2(110.0);   // ten more days
ASSERT((ts1 != ts2) && (ts1 < ts2) && (ts1 <= ts2));   

COleDateTimeSpan::COleDateTimeSpan

建構 COleDateTimeSpan 物件。

COleDateTimeSpan() throw();
COleDateTimeSpan(double dblSpanSrc) throw();
COleDateTimeSpan(LONG lDays, int nHours, int nMins, int nSecs) throw();

dblSpanSrc
要複製到新 COleDateTimeSpan 物件的天數。

lDays nHours nMins nSecs
指出要複製到新 COleDateTimeSpan 物件的日期和時間值。

所有這些建構函式都會建立初始化為指定值的新 COleDateTimeSpan 物件。 下列每個建構函式的簡短描述如下:

  • COleDateTimeSpan( ) 建構 COleDateTimeSpan 初始化為 0 的物件。

  • COleDateTimeSpan( dblSpanSrc 從浮點值建構 COleDateTimeSpan 物件。

  • COleDateTimeSpan( lDaysnHours ,, nMinsnSecs 建構 COleDateTimeSpan 初始化為指定數值的物件。

    COleDateTimeSpan 物件的狀態會設定為有效。

    如需值界限 COleDateTimeSpan 的詳細資訊,請參閱日期和時間:自動化支援 一文

    COleDateTimeSpan spanOne(2.75);          // 2 days and 18 hours
    COleDateTimeSpan spanTwo(2, 18, 0, 0);   // 2 days and 18 hours
    COleDateTimeSpan spanThree(3, -6, 0, 0); // 2 days and 18 hours
    COleDateTimeSpan ts1;               // Uninitialized time value
    COleDateTimeSpan ts2a(ts1);         // Copy constructor
    COleDateTimeSpan ts2b = ts1;         // Copy constructor again
    COleDateTimeSpan ts3(100.0);          // 100 days
    COleDateTimeSpan ts4(0, 1, 5, 12);   // 1 hour, 5 minutes, and 12 seconds
    

    COleDateTimeSpan::Format

    產生 物件的格式化字串表示 COleDateTimeSpan

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

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

  • 目前日期的 %H 小時

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

  • 目前分鐘中的 %S

  • %% 百分比符號

    上述四個格式代碼是 Format 將接受的唯一程式碼。

    格式控制字元串的資源識別碼。

    CString,包含格式化的日期/時間範圍值。

    呼叫這些函式,以建立時間範圍值的格式化標記法。 如果這個 COleDateTimeSpan 物件的狀態為 Null,則傳回值是空字串。 如果狀態無效,則傳回字串是由字串資源IDS_INVALID_DATETIMESPAN指定。

    此函式表單的簡短描述如下:

    Format( pFormat
    此表單會使用格式字串來格式化值,其中包含前面加上百分比符號的特殊格式代碼 ,如 中所示 printf 。 格式化字串會當做參數傳遞至 函式。

    Format( nID
    此表單會使用格式字串來格式化值,其中包含前面加上百分比符號的特殊格式代碼 ,如 中所示 printf 。 格式化字串是資源。 此字串資源的識別碼會以 參數的形式傳遞。

    // get the current time
    COleDateTime tmStart = COleDateTime::GetCurrentTime();
    // waste some time
    CString str;
    ::Sleep(3000);
    // get the current time again
    COleDateTime tmFinish = COleDateTime::GetCurrentTime();
    // find the difference
    COleDateTimeSpan tmSpan = tmFinish - tmStart;
    // tell the user
    str = tmSpan.Format(_T("%S seconds elapsed"));
    _tprintf_s(_T("%s\n"), (LPCTSTR) str);
    

    COleDateTimeSpan::GetDays

    擷取此日期/時間範圍值的日期部分。

    LONG GetDays() const throw();
    

    此日期/時間範圍值的日期部分。

    此函式的傳回值大約介於 3,615,000 和 3,615,000 之間。

    如需查詢物件值 COleDateTimeSpan 的其他函式,請參閱下列成員函式:

  • GetHours

  • GetMinutes

  • GetSeconds

  • GetTotalDays

  • GetTotalHours

  • GetTotalMinutes

  • GetTotalSeconds

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

    COleDateTimeSpan::GetHours

    擷取此日期/時間範圍值的小時部分。

    LONG GetHours() const throw();
    

    這個日期/時間範圍值的時數部分。

    此函式的傳回值介於 - 23 和 23 之間。

    如需查詢物件值 COleDateTimeSpan 的其他函式,請參閱下列成員函式:

  • GetDays

  • GetMinutes

  • GetSeconds

  • GetTotalDays

  • GetTotalHours

  • GetTotalMinutes

  • GetTotalSeconds

    COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
    ASSERT(ts.GetHours() == 1);
    

    COleDateTimeSpan::GetMinutes

    擷取此日期/時間範圍值的分鐘部分。

    LONG GetMinutes() const throw();
    

    這個日期/時間範圍值的分鐘部分。

    此函式的傳回值介於 - 59 和 59 之間。

    如需查詢物件值 COleDateTimeSpan 的其他函式,請參閱下列成員函式:

  • GetDays

  • GetHours

  • GetSeconds

  • GetTotalDays

  • GetTotalHours

  • GetTotalMinutes

  • GetTotalSeconds

    COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
    ASSERT(ts.GetMinutes() == 5);   
    

    COleDateTimeSpan::GetSeconds

    擷取這個日期/時間範圍值的第二個部分。

    LONG GetSeconds() const throw();
    

    這個日期/時間範圍值的秒部分。

    此函式的傳回值介於 - 59 和 59 之間。

    如需查詢物件值 COleDateTimeSpan 的其他函式,請參閱下列成員函式:

  • GetDays

  • GetHours

  • GetMinutes

  • GetTotalDays

  • GetTotalHours

  • GetTotalMinutes

  • GetTotalSeconds

    COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
    ASSERT(ts.GetSeconds() == 12);   
    

    COleDateTimeSpan::GetStatus

    取得這個 COleDateTimeSpan 物件的狀態(有效性)。

    DateTimeSpanStatus GetStatus() const throw();
    

    此值 COleDateTimeSpan 的狀態。

    傳回值是由 DateTimeSpanStatus 列舉型別所定義,該型別定義于 COleDateTimeSpan 類別內。

    enum DateTimeSpanStatus{
       valid = 0,
       invalid = 1,
       null = 2,
    

    如需這些狀態值的簡短描述,請參閱下列清單:

  • COleDateTimeSpan::valid 表示這個 COleDateTimeSpan 物件有效。

  • COleDateTimeSpan::invalid 表示這個 COleDateTimeSpan 物件無效,也就是說,其值可能不正確。

  • COleDateTimeSpan::null 表示此 COleDateTimeSpan 物件為 null,也就是說,此物件未提供任何值。 (這是資料庫意義上的「Null」,與 C++ Null 相反。

    在下列情況下,物件的狀態 COleDateTimeSpan 無效:

  • 如果這個物件在算術指派作業期間發生溢位或下溢,即 +=-=

  • 如果將不正確值指派給這個物件。

  • 如果這個物件的狀態已明確設定為無效,請使用 SetStatus

    如需可能將狀態設定為無效之作業的詳細資訊,請參閱 COleDateTimeSpan::operator +, - COleDateTimeSpan::operator +=, -=

    如需值界限 COleDateTimeSpan 的詳細資訊,請參閱日期和時間:自動化支援 一文

    COleDateTimeSpan::GetTotalDays

    擷取以天表示的這個日期/時間範圍值。

    double GetTotalDays() const throw();
    

    以天表示的這個日期/時間範圍值。 雖然此函式是以原型傳回雙精度浮點數,但一律會傳回整數值。

    此函式的傳回值大約介於 - 3.65e6 和 3.65e6 之間。

    如需查詢物件值 COleDateTimeSpan 的其他函式,請參閱下列成員函式:

  • GetDays

  • GetHours

  • GetMinutes

  • GetSeconds

  • GetTotalHours

  • GetTotalMinutes

  • GetTotalSeconds

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

    COleDateTimeSpan::GetTotalHours

    擷取以小時表示的這個日期/時間範圍值。

    double GetTotalHours() const throw();
    

    以小時表示的這個日期/時間範圍值。 雖然此函式是以原型傳回雙精度浮點數,但一律會傳回整數值。

    此函式的傳回值介於大約 - 8.77e7 和 8.77e7 之間。

    如需查詢物件值 COleDateTimeSpan 的其他函式,請參閱下列成員函式:

  • GetDays

  • GetHours

  • GetMinutes

  • GetSeconds

  • GetTotalDays

  • GetTotalMinutes

  • GetTotalSeconds

    請參閱 GetTotalDays 的 範例

    COleDateTimeSpan::GetTotalMinutes

    擷取以分鐘為單位表示的這個日期/時間範圍值。

    double GetTotalMinutes() const throw();
    

    以分鐘為單位表示的這個日期/時間範圍值。 雖然此函式是以原型傳回雙精度浮點數,但一律會傳回整數值。

    此函式的傳回值介於大約 - 5.26e9 和 5.26e9 之間。

    如需查詢物件值 COleDateTimeSpan 的其他函式,請參閱下列成員函式:

  • GetDays

  • GetHours

  • GetMinutes

  • GetSeconds

  • GetTotalDays

  • GetTotalHours

  • GetTotalSeconds

    請參閱 GetTotalDays 的 範例

    COleDateTimeSpan::GetTotalSeconds

    擷取以秒為單位表示的這個日期/時間範圍值。

    double GetTotalSeconds() const throw();
    

    這個以秒為單位表示的日期/時間範圍值。 雖然此函式是以原型傳回雙精度浮點數,但一律會傳回整數值。

    此函式的傳回值介於大約 - 3.16e11 到 3.16e11 之間。

    如需查詢物件值 COleDateTimeSpan 的其他函式,請參閱下列成員函式:

  • GetDays

  • GetHours

  • GetMinutes

  • GetSeconds

  • GetTotalDays

  • GetTotalHours

  • GetTotalMinutes

    請參閱 GetTotalDays 的 範例

    COleDateTimeSpan::m_span

    這個 COleDateTime 物件的基礎 double 值。

    double m_span;
    

    此值以天為單位表示日期/時間範圍。

    變更資料成員中的 double 值將會變更這個 COleDateTimeSpan 物件的值。 它不會變更這個 COleDateTimeSpan 物件的狀態。

    COleDateTimeSpan::m_status

    這個資料成員的型別是 列舉型 DateTimeSpanStatus 別 ,定義于 COleDateTimeSpan 類別內。

    DateTimeSpanStatus m_status;
    
    enum DateTimeSpanStatus{
       valid = 0,
       invalid = 1,
       null = 2,
    

    如需這些狀態值的簡短描述,請參閱下列清單:

  • COleDateTimeSpan::valid 表示這個 COleDateTimeSpan 物件有效。

  • COleDateTimeSpan::invalid 表示這個 COleDateTimeSpan 物件無效,也就是說,其值可能不正確。

  • COleDateTimeSpan::null 表示此 COleDateTimeSpan 物件為 null,也就是說,此物件未提供任何值。 (這是資料庫意義上的「Null」,與 C++ Null 相反。

    在下列情況下,物件的狀態 COleDateTimeSpan 無效:

  • 如果這個物件在算術指派作業期間發生溢位或下溢,即 +=-=

  • 如果將不正確值指派給這個物件。

  • 如果使用 SetStatus 明確將此物件的狀態設定為無效

    如需可能將狀態設定為無效之作業的詳細資訊,請參閱 COleDateTimeSpan::operator +, - COleDateTimeSpan::operator +=, -=

    此資料成員適用于進階程式設計情況。 您應該使用內嵌成員函式 GetStatus SetStatus 。 如需明確設定此資料成員的進一步注意事項,請參閱 SetStatus

    如需值界限 COleDateTimeSpan 的詳細資訊,請參閱日期和時間:自動化支援 一文

    COleDateTimeSpan::operator =

    COleDateTimeSpan複製值。

    COleDateTimeSpan& operator=(double dblSpanSrc) throw();
    

    這個多載指派運算子會將來源日期/時間範圍值複製到這個 COleDateTimeSpan 物件中。

    COleDateTimeSpan::operator +, -

    新增、減去和變更值的符號 COleDateTimeSpan

    COleDateTimeSpan operator+(const COleDateTimeSpan& dateSpan) const throw();
    COleDateTimeSpan operator-(const COleDateTimeSpan& dateSpan) const throw();
    COleDateTimeSpan operator-() const throw();
    

    前兩個運算子可讓您新增和減去日期/時間範圍值。 第三個可讓您變更日期/時間範圍值的符號。

    如果其中一個運算元為 Null,則結果 COleDateTimeSpan 值的狀態為 Null。

    如果任一運算元無效,另一個運算元不是 Null,則產生的 COleDateTimeSpan 值狀態無效。

    如需有效、無效和 Null 狀態值的詳細資訊,請參閱 m_status 成員變數。

    COleDateTimeSpan ts1(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
    COleDateTimeSpan ts2(100.0 / (24 * 3600.0)); // 100 seconds
    COleDateTimeSpan ts3 = ts1 + ts2;
    ASSERT(ts3.GetSeconds() == 52); // 6 mins, 52 secs   
    

    COleDateTimeSpan::operator +=, -=

    從這個 COleDateTimeSpan 值新增和減 COleDateTimeSpan 去值。

    COleDateTimeSpan& operator+=(const COleDateTimeSpan dateSpan) throw();
    COleDateTimeSpan& operator-=(const COleDateTimeSpan dateSpan) throw();
    

    這些運算子可讓您從這個 COleDateTimeSpan 物件新增和減去日期/時間範圍值。 如果其中一個運算元為 Null,則結果 COleDateTimeSpan 值的狀態為 Null。

    如果任一運算元無效,另一個運算元不是 Null,則產生的 COleDateTimeSpan 值狀態無效。

    如需有效、無效和 Null 狀態值的詳細資訊,請參閱 m_status 成員變數。

    COleDateTimeSpan ts1(10.0); // 10 days
    COleDateTimeSpan ts2(100.0); // 100 days
    ts2 -= ts1;
    ASSERT(ts2.GetTotalDays() == 90);   
    

    COleDateTimeSpan::operator double

    將此值 COleDateTimeSpan 轉換為 double

    operator double() const throw();
    

    這個運算子會將此值 COleDateTimeSpan 的值當做浮點數傳回。

    COleDateTimeSpan::SetDateTimeSpan

    設定這個日期/時間範圍值的值。

    void SetDateTimeSpan(LONG lDays, int nHours, int nMins, int nSecs) throw();
    

    lDays nHours nMins nSecs
    指出要複製到這個 COleDateTimeSpan 物件的日期範圍和時間範圍值。

    如需查詢物件值的 COleDateTimeSpan 函式,請參閱下列成員函式:

  • GetDays

  • GetHours

  • GetMinutes

  • GetSeconds

  • GetTotalDays

  • GetTotalHours

  • GetTotalMinutes

  • GetTotalSeconds

    COleDateTimeSpan spanOne;
    COleDateTimeSpan spanTwo;
    spanOne.SetDateTimeSpan(0, 2, 45, 0);  // 2 hours and 45 seconds
    spanTwo.SetDateTimeSpan(0, 3, -15, 0); // 2 hours and 45 seconds   
    

    COleDateTimeSpan::SetStatus

    設定這個 COleDateTimeSpan 物件的狀態(有效性)。

    void SetStatus(DateTimeSpanStatus status) throw();
    

    status
    這個 COleDateTimeSpan 物件的新狀態值。

    Status 參數值是由 DateTimeSpanStatus 列舉型別所定義,其定義于 COleDateTimeSpan 類別內。

    enum DateTimeSpanStatus{
       valid = 0,
       invalid = 1,
       null = 2,
    

    如需這些狀態值的簡短描述,請參閱下列清單:

  • COleDateTimeSpan::valid 表示這個 COleDateTimeSpan 物件有效。

  • COleDateTimeSpan::invalid 表示這個 COleDateTimeSpan 物件無效,也就是說,其值可能不正確。

  • COleDateTimeSpan::null 表示此 COleDateTimeSpan 物件為 null,也就是說,此物件未提供任何值。 (這是資料庫意義上的「Null」,與 C++ Null 相反。

    此函式適用于進階程式設計情況。 此函式不會改變這個 物件中的資料。 它最常用來將狀態設定為 Null 無效 。 請注意,指派運算子 ( operator = ) 和 SetDateTimeSpan 會根據來源值來設定物件的狀態。

    // if the person is not still in school, set days to graduation to null
    if (!m_bStillInSchool || m_dtDateOfGraduation.GetStatus() == COleDateTime::null)
       m_dtsDaysToGraduation.SetStatus(COleDateTimeSpan::null);   
    

    COleDateTime 類別
    CTime 類別
    CTimeSpan 類別
    階層架構圖表
    ATL/MFC 共用類別

    即將推出:在 2024 年,我們將隨著內容的意見反應機制逐步淘汰 GitHub 問題,並以新的意見反應系統來取代。 如需詳細資訊,請參閱 https://aka.ms/ContentUserFeedback

    提交並檢視相關的意見反應

  •