C++での時間処理

C++での時間処理

時間処理の基本

C++では、時間処理を行うために標準ライブラリの <chrono> ヘッダや、従来の time.hctime も利用できます。

現在時刻を取得する

現在の時刻を取得するには、std::chrono または std::time_t を使用できます。

#include <iostream>
#include <chrono>
#include <ctime>

int main() {
    auto now = std::chrono::system_clock::now();
    std::time_t now_c = std::chrono::system_clock::to_time_t(now);
    std::cout << "現在の時刻: " << std::ctime(&now_c);
    return 0;
}

処理時間を測定する

特定の処理の実行時間を測定するには、std::chrono を利用します。

#include <iostream>
#include <chrono>
#include <thread>

int main() {
    auto start = std::chrono::high_resolution_clock::now();
    std::this_thread::sleep_for(std::chrono::seconds(2));
    auto end = std::chrono::high_resolution_clock::now();
    std::chrono::duration elapsed = end - start;
    std::cout << "処理時間: " << elapsed.count() << " 秒\n";
    return 0;
}

一定時間待機する

一定時間処理を停止させるには、std::this_thread::sleep_for を使用します。

#include <iostream>
#include <thread>
#include <chrono>

int main() {
    std::cout << "3秒待機します...\n";
    std::this_thread::sleep_for(std::chrono::seconds(3));
    std::cout << "待機完了\n";
    return 0;
}

日付と時刻の処理

日付をフォーマットするには、std::put_time を利用できます。

#include <iostream>
#include <ctime>
#include <iomanip>

int main() {
    auto now = std::chrono::system_clock::now();
    std::time_t now_c = std::chrono::system_clock::to_time_t(now);
    std::cout << "現在の日付と時刻: " << std::put_time(std::localtime(&now_c), "%Y-%m-%d %H:%M:%S") << "\n";
    return 0;
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です