溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

掌握C++日期時(shí)間庫(kù)函數(shù)

發(fā)布時(shí)間:2024-09-10 12:05:49 來(lái)源:億速云 閱讀:78 作者:小樊 欄目:編程語(yǔ)言

C++ 標(biāo)準(zhǔn)庫(kù)中的` 提供了高精度時(shí)間工具,用于以一致和可移植的方式表示和處理時(shí)間

#include<iostream>
#include<chrono>

int main() {
    // 獲取當(dāng)前時(shí)間點(diǎn)
    auto now = std::chrono::system_clock::now();

    // 將當(dāng)前時(shí)間點(diǎn)轉(zhuǎn)換為 time_t 類(lèi)型(自1970年1月1日起的秒數(shù))
    std::time_t currentTime = std::chrono::system_clock::to_time_t(now);

    // 使用 C 風(fēng)格的 localtime 函數(shù)將 time_t 轉(zhuǎn)換為 tm 結(jié)構(gòu)體
    std::tm* localTime = std::localtime(&currentTime);

    // 輸出當(dāng)前日期和時(shí)間
    std::cout << "Current date and time: "<< std::put_time(localTime, "%F %T")<< std::endl;

    // 計(jì)算兩周后的時(shí)間點(diǎn)
    auto twoWeeksLater = now + std::chrono::hours(24 * 14);

    // 將兩周后的時(shí)間點(diǎn)轉(zhuǎn)換為 time_t 類(lèi)型
    std::time_t twoWeeksLaterTime = std::chrono::system_clock::to_time_t(twoWeeksLater);

    // 使用 C 風(fēng)格的 localtime 函數(shù)將 time_t 轉(zhuǎn)換為 tm 結(jié)構(gòu)體
    std::tm* twoWeeksLaterLocalTime = std::localtime(&twoWeeksLaterTime);

    // 輸出兩周后的日期和時(shí)間
    std::cout << "Date and time two weeks later: "<< std::put_time(twoWeeksLaterLocalTime, "%F %T")<< std::endl;

    return 0;
}

在這個(gè)例子中,我們首先獲取當(dāng)前時(shí)間點(diǎn),并將其轉(zhuǎn)換為 std::time_t 類(lèi)型。然后,我們使用 C 風(fēng)格的 localtime 函數(shù)將 std::time_t 轉(zhuǎn)換為 tm 結(jié)構(gòu)體,以便我們可以使用 std::put_time 格式化輸出。

接下來(lái),我們計(jì)算兩周后的時(shí)間點(diǎn),并將其轉(zhuǎn)換為 std::time_t 類(lèi)型。最后,我們?cè)俅问褂?C 風(fēng)格的 localtime 函數(shù)將 std::time_t 轉(zhuǎn)換為 tm 結(jié)構(gòu)體,并輸出兩周后的日期和時(shí)間。

注意:雖然提供了高精度時(shí)間工具,但在處理日期和時(shí)間時(shí),它主要關(guān)注時(shí)間間隔和時(shí)間點(diǎn)之間的關(guān)系,而不是日期和時(shí)間的格式化輸出。因此,在需要格式化輸出日期和時(shí)間時(shí),我們通常會(huì)使用 C 風(fēng)格的日期和時(shí)間函數(shù),如localtimestrftime,或者使用第三方庫(kù),如 date` 庫(kù)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

c++
AI