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

简介: 2023-4-11-chrono库用法学习

😉一、代码展示

#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;
}

🐱‍🐉二、运行结果


🧊文章总结

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

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


目录
相关文章
|
1月前
|
安全 数据安全/隐私保护
RememberMe简介及用法
RememberMe简介及用法
33 0
RememberMe简介及用法
|
6月前
|
Python
掌握 Python3 函数高级用法:详解与应用
掌握 Python3 函数高级用法:详解与应用
|
7月前
|
数据采集 数据挖掘 Python
|
7月前
|
存储 关系型数据库 MySQL
解释一下如何使用Python的数据库接口库进行数据库操作。
【2月更文挑战第12天】【2月更文挑战第33篇】解释一下如何使用Python的数据库接口库进行数据库操作。
48 2
|
7月前
|
Python
python基础学习 -- 函数高级用法
python基础学习 -- 函数高级用法
30 0
|
XML 前端开发 API
【 ⑧】XPath库及其基本用法
【 ⑧】XPath库及其基本用法
139 0
|
程序员 Python 容器
Python 进阶编程之字典的高级用法
Python 进阶编程之字典的高级用法
|
XML 数据格式 Python
Python高阶教程——Xpath解析
Xpath简介 XPath是一种用于在XML文档中定位节点的语言,它可以用于从XML文档中提取数据,以及在XML文档中进行搜索和过滤操作。它是W3C标准的一部分,被广泛应用于XML文档的处理和分析。 XPath使用路径表达式来描述节点的位置,这些路径表达式类似于文件系统中的路径。路径表达式由一个或多个步骤(step)组成,每个步骤描述了一个节点或一组节点。步骤可以使用关系运算符(如/和//)来连接,以便描述更复杂的节点位置。 XPath还提供了一些内置函数和运算符,可以对XML文档中的数据进行操作和计算。例如,可以使用XPath的数学函数来计算节点的数值,或使用字符串函数来处理节点的文本内
434 0
|
Python
Python pluggy框架基础用法总结
Python pluggy框架基础用法总结
159 0
下一篇
DataWorks