第三节 · 逻辑的空间 · 定长状态表bitset

C++11 的 <chrono> 库提供了类型安全的时间处理功能,C++20 进一步增强了日历和时区支持。


时间点和时长

#include <chrono>
using namespace std::chrono;

int main()
{
    // 获取当前时间点
    auto now = system_clock::now();
    
    // 时长
    seconds sec(5);
    milliseconds ms(5000);
    microseconds us(5000000);
    
    // 时长转换
    cout << duration_cast<seconds>(ms).count() << "s" << endl;  // 5s
    cout << duration_cast<milliseconds>(sec).count() << "ms" << endl;  // 5000ms
    
    return 0;
}

测量时间


不同的时钟

时钟
说明

system_clock

系统时间,可以与日历时间转换

steady_clock

单调时钟,适合测量时间间隔

high_resolution_clock

最高精度时钟

utc_clock

UTC 时间(C++20)


时长字面量(C++14)


定时器实现


日期处理(C++20)


日期算术(C++20)


时区(C++20)


格式化时间(C++20)


实用函数


习题

  • 实现一个秒表类,支持开始、暂停、继续、重置功能。

  • 计算任意两个日期之间相差的天数。

  • 编写一个函数,输出距离指定日期还有多少天。

Last updated