ไลบรารี <chrono> ใน C++ ใช้สำหรับจัดการวันที่และเวลา โดยแยกแนวคิดระหว่าง Duration (ช่วงเวลา) และ Time Point (จุดเวลา) เพื่อความแม่นยำสูงและไม่ขึ้นกับระบบ
แนวคิดหลัก
- Duration: แสดงช่วงเวลา เช่น 30 วินาที, 2 ชั่วโมง ประกอบด้วย
count(จำนวน) และperiod(หน่วยเวลา) - Time Point: จุดเวลาบนเส้นเวลา
- Clock: นาฬิกา เช่น
system_clock,steady_clock,high_resolution_clock
ตัวอย่างโค้ด
#include <iostream>
#include <chrono>
using namespace std;
int main() {
using namespace std::chrono;
// สร้าง duration 1000 มิลลิวินาที
milliseconds mili(1000);
mili = mili * 60; // คูณ 60 → 60,000 มิลลิวินาที
cout << "Duration: " << mili.count() << " milliseconds.\n";
// แปลงเป็นวินาที
double seconds = mili.count() * milliseconds::period::num / milliseconds::period::den;
cout << "Duration: " << seconds << " seconds.\n";
return 0;
}
ผลลัพธ์
Duration: 60000 milliseconds. Duration: 60 seconds.
การใช้งานทั่วไปเพิ่มเติม
// วัดเวลาการทำงานโค้ด auto start = high_resolution_clock::now(); // ... โค้ดที่ต้องการวัด ... auto end = high_resolution_clock::now(); auto duration = duration_cast(end - start); cout << "Elapsed: " << duration.count() << " ms";