当前位置:首页 > 公众号精选 > C语言与CPP编程
[导读]C11中提供了日期和时间相关的库chrono,通过chrono库可以很方便地处理日期和时间,为程序的开发提供了便利。chrono库主要包含三种类型的类:时间间隔duration、时钟clocks、时间点timepoint。1.时间间隔duration1.1常用类成员duratio...

C 11 中提供了日期和时间相关的库 chrono,通过 chrono 库可以很方便地处理日期和时间,为程序的开发提供了便利。chrono 库主要包含三种类型的类:时间间隔duration、时钟clocks、时间点time point。

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::nanosecondsduration/ 至少 64 位的有符号整数类型 /, std::nano>
微秒:std::chrono::microsecondsduration/ 至少 55 位的有符号整数类型 /, std::micro>
毫秒:std::chrono::millisecondsduration/ 至少 45 位的有符号整数类型 /, std::milli>
秒:std::chrono::secondsduration/ 至少 35 位的有符号整数类型 />
分钟:std::chrono::minutesduration/ 至少 29 位的有符号整数类型 /, std::ratio<60>>
小时:std::chrono::hoursduration/ 至少 23 位的有符号整数类型 /, std::ratio<3600>>
注意:到 hours 为止的每个预定义时长类型至少涵盖 ±292 年的范围。

duration 类的构造函数原型如下:

// 1. 拷贝构造函数
duration( const duration
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
关闭
关闭