C 使用 chrono 库处理日期和时间
时间:2021-09-06 15:21:21
手机看文章
扫描二维码
随时随地手机看文章
[导读]C11中提供了日期和时间相关的库chrono,通过chrono库可以很方便地处理日期和时间,为程序的开发提供了便利。chrono库主要包含三种类型的类:时间间隔duration、时钟clocks、时间点timepoint。1.时间间隔duration1.1常用类成员duratio...
C 11 中提供了日期和时间相关的库 chrono,通过 chrono 库可以很方便地处理日期和时间,为程序的开发提供了便利。chrono 库主要包含三种类型的类:时间间隔duration、时钟clocks、时间点time point。
注意:到 hours 为止的每个预定义时长类型至少涵盖 ±292 年的范围。
1. 时间间隔 duration
1.1 常用类成员
duration表示一段时间间隔,用来记录时间长度,可以表示几秒、几分钟、几个小时的时间间隔。duration 的原型如下:// 定义于头文件
template<
class Rep,
class Period = std::ratio<1>
> class duration;
ratio 类表示每个时钟周期的秒数,其中第一个模板参数 Num 代表分子,Denom 代表分母,该分母值默认为 1,因此,ratio 代表的是一个分子除以分母的数值,比如:ratio<2>
代表一个时钟周期是 2 秒,ratio<60 >
代表一分钟,ratio<60*60 >
代表一个小时,ratio<60*60*24 >
代表一天。而 ratio<1,1000 >
代表的是 1/1000
秒,也就是 1 毫秒,ratio<1,1000000 >
代表一微秒,ratio<1,1000000000 >
代表一纳秒。为了方便使用,在标准库中定义了一些常用的时间间隔,比如:时、分、秒、毫秒、微秒、纳秒,它们都位于 chrono 命名空间下,定义如下:
类型 | 定义 |
---|---|
纳秒:std::chrono::nanoseconds | duration |
微秒:std::chrono::microseconds | duration |
毫秒:std::chrono::milliseconds | duration |
秒:std::chrono::seconds | duration |
分钟:std::chrono::minutes | duration |
小时:std::chrono::hours | duration |
duration 类的构造函数原型如下:
// 1. 拷贝构造函数
duration( const duration