C++での時間処理
時間処理の基本
C++では、時間処理を行うために標準ライブラリの <chrono>
ヘッダや、従来の time.h
や ctime
も利用できます。
現在時刻を取得する
現在の時刻を取得するには、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;
}