C++ ctime、chrono时间函数库

1、ctime

1.1、time_t time(time_t *t)函数

返回值:从1970-01-01 00:00:00 到系统当前时间所经过的时间以秒为单位
参数可为指向time_t的指针或者为nullptr,当参数不为空时,其返回值也存储于参数指针中

#include <ctime>

time_t seconds;
time(&seconds); //time_t time(time_t *t)
// seconds = time(nullptr) 和以上等同
cout << "从1970-01-01起的秒数 = " << seconds << "s" << endl;
运行结果:
从1970-01-01起的秒数 = 1580077542s
1.2、char *time = ctime(const time_t *timer)函数

将time_t类型的时间以字符串形式转换为当前时间

#include <ctime>

char *time = ctime(&seconds);//char *ctime(const time_t *timer)
// 字符串形式 day month year hours:minutes:seconds year\n\0
cout << "当前时间为:" << time;
运行结果:
当前时间为:Mon Jan 27 06:25:42 2020
1.3、struct tm *localtime(time_t *seconds)函数

将time_t类型的指针转换为tm结构的指针,tm结构如下所示

struct tm {
  int tm_sec;   // 秒,正常范围从 0 到 59,但允许至 61
  int tm_min;   // 分,范围从 0 到 59
  int tm_hour;  // 小时,范围从 0 到 23
  int tm_mday;  // 一月中的第几天,范围从 1 到 31
  int tm_mon;   // 月,范围从 0 到 11
  int tm_year;  // 自 1900 年起的年数
  int tm_wday;  // 一周中的第几天,范围从 0 到 6,从星期日算起
  int tm_yday;  // 一年中的第几天,范围从 0 到 365,从 1 月 1 日算起
  int tm_isdst; // 夏令时
}
#include <ctime>

struct tm *info = localtime(&seconds);
cout << info->tm_hour << "时 " << info->tm_min << "分 " << info->tm_sec << "秒" << endl;
运行结果:
62542
1.4、clock_t clock(void)函数

返回程序执行起(一般为程序的开头),处理器时钟所使用的时间。为了获取 CPU 所使用的秒数,通常需要除以CLOCKS_PER_SEC

#include <ctime>

clock_t start_t, end_t;
start_t = clock(); //clock_t clock(void) 
int i = 0;
while(i < 10000000){
   i++;}
end_t = clock();
cout << "程序段运行时间为:" << double(end_t - start_t)/CLOCKS_PER_SEC << "s" << endl;
运行结果:
程序段运行时间为:0.017s

2、chrono

chrono是方便时间日期操作的标准库,它既是相应的头文件名称,也是std命名空间下的一个子命名空间,所有时间日期相关定义均在std::chrono命名空间下。通过这个新的标准库,可以非常方便进行时间日期相关操作。
chrono库主要包含了三个概念:duration, time_point 和 clock。

2.1、Duration

时间范围表示
duration描述的是一段时间范围,比如10秒钟,两个小时,三个月…

template <class Rep, class 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值