> 文章列表 > 2023-4-11-chrono库用法学习

2023-4-11-chrono库用法学习

2023-4-11-chrono库用法学习

🍿*★,°*:.☆( ̄▽ ̄)/$:*.°★* 🍿 💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥 💟💟喜欢的朋友可以关注一下,下次更新不迷路💟💟 😆😆😆私聊获取个人订阅号哦,欢迎订阅共同学习😆😆😆 💖💖💖💖可以加入大家庭群聊,一起学习天天有福利💖💖💖💖


🍬本文摘要

在这里插入图片描述

听说这个库计算出来的时间精度很高,我来试一试。


目录

  • 🍬本文摘要
  • 😉一、代码展示
  • 🐱‍🐉二、运行结果
  • 🧊文章总结


😉一、代码展示

#include <functional>
#include <iostream>
#include "chrono"int main() {//num为分子 den为分母std::cout << std::chrono::milliseconds::period::num << std::endl;//输出1std::cout << std::chrono::milliseconds::period::den << std::endl;//输出1000  解释一下怎么来的  一秒除以一千就是一毫秒 所以分子是1 分母是1000//物理时间计时,steady_clock:是固定的时钟,相当于秒表。开始计时后,时间只会增长并且不能修改,适合用于记录程序耗时,high_resolution_clock:和时钟类 steady_clock 是等价的(是它的别名)。auto start = std::chrono::system_clock::now();for (int i = 0; i < 10000000; i++) {}auto end = std::chrono::system_clock::now();auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end - start);std::cout << double(duration.count()) << std::endl;//定义毫秒级别的时钟类型typedef std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds> microClock_type;//获取当前时间点,windows system_clock是100纳秒级别的(不同系统不一样,自己按照介绍的方法测试),所以要转换microClock_type tp = std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system_clock::now());//获取ctime格式的时间time_t tt = std::chrono::system_clock::to_time_t(tp);char _time[50];ctime_s(_time, sizeof(_time), &tt);std::cout << "now time is : " << _time;//计算距离1970-1-1,00:00的时间长度,因为当前时间点定义的精度为毫秒,所以输出的是毫秒std::cout << tp.time_since_epoch().count() << std::endl;//定义时间间隔std::chrono::duration<double, std::ratio<9, 7>> d1(3);std::chrono::duration<double, std::ratio<6, 5>> d2(1);// d1 和 d2 统一之后的时钟周期 对于分子 6,、9 最大公约数为 3,对于分母 7、5 最小公倍数为 35,因此推导出的时钟周期为 ratio<3,35>std::chrono::duration<double, std::ratio<3, 35>> d3 = d1 - d2;std::cout << d3.count() << " tick" << std::endl;// 新纪元1970.1.1时间std::chrono::system_clock::time_point epoch;std::chrono::duration<int, std::ratio<60*60*24>> day(1);// 新纪元1970.1.1时间 + 1天std::chrono::system_clock::time_point ppt(day);using dday = std::chrono::duration<int, std::ratio<60 * 60 * 24>>;// 新纪元1970.1.1时间 + 10天std::chrono::time_point<std::chrono::system_clock, dday> t(dday(10));// 系统当前时间std::chrono::system_clock::time_point today = std::chrono::system_clock::now();// 转换为time_t时间类型time_t tm = std::chrono::system_clock::to_time_t(today);std::cout << "今天的日期是:    " << ctime(&tm);time_t tm1 = std::chrono::system_clock::to_time_t(today+day);std::cout << "明天的日期是:    " << ctime(&tm1);time_t tm2 = std::chrono::system_clock::to_time_t(epoch);std::cout << "新纪元时间:      " << ctime(&tm2);time_t tm3 = std::chrono::system_clock::to_time_t(ppt);std::cout << "新纪元时间+1天:  " << ctime(&tm3);time_t tm4 = std::chrono::system_clock::to_time_t(t);std::cout << "新纪元时间+10天: " << ctime(&tm4);return 0;
}

🐱‍🐉二、运行结果

2023-4-11-chrono库用法学习


🧊文章总结

提示:这里对文章进行总结:

  简单的使用了解一下这个库怎么用。

更多好文推荐

🍸2021-4月Python 机器学习——中文新闻文本标题分类
🍹2021年4月-(计算机网络)小型校园网络模拟搭建,最全最准确版
🍺2022-10-31-基于用户的协同过滤推荐算法实现+MAE+RMSE
🍻2022-11-28-大数据可视化,特征维度大于50
🥂2023-3-9-一篇简短的文章把C++左右值关系讲的透透彻彻

上一篇
End
下一篇