C++11 – std::chrono – 使用std::chrono::duration_cast进行时间转换,hours/minutes/seconds/milliseconds/microseconds相互转换,以及自定义duration进行转换
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++11 – std::chrono – 使用std::chrono::duration_cast进行时间转换,hours/minutes/seconds/milliseconds/microseconds相互转换,以及自定义duration进行转换
原文链接:https://www.stubbornhuang.com/1139/
发布于:2021年02月05日 11:18:04
修改于:2021年02月05日 11:18:04

1 小时转换为分钟/秒/毫秒/微秒
#include <iostream>
#include <string>
#include <chrono>
int main()
{
std::chrono::hours hour_time = std::chrono::hours(1);
std::chrono::minutes minutes_time = std::chrono::duration_cast<std::chrono::minutes>(hour_time);
std::chrono::seconds seconds_time = std::chrono::duration_cast<std::chrono::seconds>(hour_time);
std::chrono::milliseconds milliseconds_time = std::chrono::duration_cast<std::chrono::milliseconds>(hour_time);
std::chrono::microseconds microseconds_time = std::chrono::duration_cast<std::chrono::microseconds>(hour_time);
std::cout << "1小时可转换为 \n"
<< minutes_time.count() << "分钟 \n"
<< seconds_time.count() << "秒 \n"
<< milliseconds_time.count() << "毫秒 \n"
<< microseconds_time.count() << "微秒" << std::endl;
getchar();
return 0;
}
2 分钟转换为小时/秒/毫秒/微秒
#include <iostream>
#include <string>
#include <chrono>
int main()
{
std::chrono::minutes minutes_time = std::chrono::minutes(66);
std::chrono::hours hours_time = std::chrono::duration_cast<std::chrono::hours>(minutes_time);
std::chrono::seconds seconds_time = std::chrono::duration_cast<std::chrono::seconds>(minutes_time);
std::chrono::milliseconds milliseconds_time = std::chrono::duration_cast<std::chrono::milliseconds>(minutes_time);
std::chrono::microseconds microseconds_time = std::chrono::duration_cast<std::chrono::microseconds>(minutes_time);
std::cout << "分钟可转换为 \n"
<< hours_time.count() << "小时 \n"
<< seconds_time.count() << "秒 \n"
<< milliseconds_time.count() << "毫秒 \n"
<< microseconds_time.count() << "微秒" << std::endl;
getchar();
return 0;
}
3 秒转换为小时/分钟/毫秒/微秒
#include <iostream>
#include <string>
#include <chrono>
int main()
{
std::chrono::seconds seconds_time = std::chrono::seconds(36000);
std::chrono::hours hours_time = std::chrono::duration_cast<std::chrono::hours>(seconds_time);
std::chrono::minutes minutes_time = std::chrono::duration_cast<std::chrono::minutes>(seconds_time);
std::chrono::milliseconds milliseconds_time = std::chrono::duration_cast<std::chrono::milliseconds>(seconds_time);
std::chrono::microseconds microseconds_time = std::chrono::duration_cast<std::chrono::microseconds>(seconds_time);
std::cout << "秒钟可转换为 \n"
<< hours_time.count() << "小时 \n"
<< minutes_time.count() << "分钟 \n"
<< milliseconds_time.count() << "毫秒 \n"
<< microseconds_time.count() << "微秒" << std::endl;
getchar();
return 0;
}
4 毫秒转换为小时/分钟/秒/微秒
#include <iostream>
#include <string>
#include <chrono>
int main()
{
std::chrono::milliseconds milliseconds_time = std::chrono::milliseconds(3600000);
std::chrono::hours hours_time = std::chrono::duration_cast<std::chrono::hours>(milliseconds_time);
std::chrono::minutes minutes_time = std::chrono::duration_cast<std::chrono::minutes>(milliseconds_time);
std::chrono::seconds seconds_time = std::chrono::duration_cast<std::chrono::seconds>(milliseconds_time);
std::chrono::microseconds microseconds_time = std::chrono::duration_cast<std::chrono::microseconds>(milliseconds_time);
std::cout << "毫秒可转换为 \n"
<< hours_time.count() << "小时 \n"
<< minutes_time.count() << "分钟 \n"
<< seconds_time.count() << "秒 \n"
<< microseconds_time.count() << "微秒" << std::endl;
getchar();
return 0;
}
5 微秒转换为小时/分钟/秒/毫秒
#include <iostream>
#include <string>
#include <chrono>
int main()
{
std::chrono::microseconds microseconds_time = std::chrono::microseconds(3600000000);
std::chrono::hours hours_time = std::chrono::duration_cast<std::chrono::hours>(microseconds_time);
std::chrono::minutes minutes_time = std::chrono::duration_cast<std::chrono::minutes>(microseconds_time);
std::chrono::seconds seconds_time = std::chrono::duration_cast<std::chrono::seconds>(microseconds_time);
std::chrono::milliseconds milliseconds_time = std::chrono::duration_cast<std::chrono::milliseconds>(microseconds_time);
std::cout << "微秒可转换为 \n"
<< hours_time.count() << "小时 \n"
<< minutes_time.count() << "分钟 \n"
<< seconds_time.count() << "秒 \n"
<< milliseconds_time.count() << "毫秒" << std::endl;
getchar();
return 0;
}
6 自定义duration进行转换
#include <iostream>
#include <chrono>
typedef std::chrono::duration<float, std::ratio<3, 1> > three_seconds;
typedef std::chrono::duration<float, std::ratio<1, 10> > one_tenth_seconds;
int main()
{
three_seconds s = std::chrono::duration_cast<three_seconds>(one_tenth_seconds(3));
std::cout << "3 [1/10 seconds] equal to " << s.count() << " [3 seconds]\n";
std::cin.get();
}
当前分类随机文章推荐
- Centos7 编译C++项目错误解决 : terminate called after throwing an instance of 'std::regex_error' 阅读1675次,点赞0次
- C++ - 使用Websocket++编写客户端连接WebSocket服务器并进行通信 阅读2106次,点赞2次
- C++11/std::thread - 线程的基本用法 阅读2268次,点赞0次
- C++ - C++实现Python numpy的矩阵维度转置算法,例如(N,H,W,C)转换为(N,C,H,W) 阅读1054次,点赞0次
- C++ - C++类的特殊成员函数,析构函数,拷贝构造函数,移动构造函数,赋值运算符,移动赋值运算符介绍和基础语法 阅读137次,点赞0次
- C++11 - 快速学会正则表达式 阅读499次,点赞2次
- C++ - 将std::vector中的数值拷贝到数组中 阅读437次,点赞1次
- C++STL容器 - std::vector元素访问方式总结 阅读137次,点赞0次
- C++ – 字节数组byte[]或者unsigned char[]与bool的相互转换 阅读195次,点赞0次
- C++11 - 使用std::thread在类内部以成员函数作为多线程函数执行异步操作 阅读738次,点赞0次
全站随机文章推荐
- WordPress - $Post WP_Post对象的属性 阅读1456次,点赞0次
- 资源分享 - Div, Grad, Curl, and All That - An Informal Text on Vector Calculus , Third Edition 英文高清PDF下载 阅读678次,点赞0次
- 如何选择一块合适的用于深度学习的GPU/显卡 阅读813次,点赞0次
- C++ - queue存储动态指针时正确释放内存 阅读3579次,点赞2次
- 资源分享 - Level of Detail for 3D Graphics 英文高清PDF下载 阅读948次,点赞1次
- 资源分享 - Introduction to 3D Game Programming with DirectX 11 英文高清PDF下载 阅读1580次,点赞0次
- 资源分享 - GPU Pro 7 - Advanced Rendering Techniques 英文高清PDF下载 阅读1499次,点赞0次
- 资源分享 - GPU Gems 2 - Programming Techniques for High-Performance Graphics and General-Purpose Computation 英文高清PDF下载 阅读2036次,点赞0次
- 资源分享 - Computational Geometry - An Introduction Through Randomized Algorithms 英文高清PDF下载 阅读748次,点赞0次
- 资源分享 - Game AI Pro 3 - Collected Wisdom of Game AI Professionals 英文高清PDF下载 阅读1040次,点赞0次
评论
144