🍿*★,°*:.☆( ̄▽ ̄)/$:*.°★* 🍿 💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥 💟💟喜欢的朋友可以关注一下,下次更新不迷路💟💟 😆😆😆私聊获取个人订阅号哦,欢迎订阅共同学习😆😆😆 💖💖💖💖可以加入大家庭群聊,一起学习天天有福利💖💖💖💖
🍬本文摘要
听说这个库计算出来的时间精度很高,我来试一试。
😉一、代码展示
#include <functional>
#include <iostream>
#include "chrono"
int main() {
//num为分子 den为分母
std::cout << std::chrono::milliseconds::period::num << std::endl;//输出1
std::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;
}
🐱🐉二、运行结果
🧊文章总结
提示:这里对文章进行总结:
简单的使用了解一下这个库怎么用。
更多好文推荐
🍸2021-4月Python 机器学习——中文新闻文本标题分类
🍹2021年4月-(计算机网络)小型校园网络模拟搭建,最全最准确版
🍺2022-10-31-基于用户的协同过滤推荐算法实现+MAE+RMSE
🍻2022-11-28-大数据可视化,特征维度大于50
🥂2023-3-9-一篇简短的文章把C++左右值关系讲的透透彻彻
上一篇 |
End
| 下一篇 |