1 Star 0 Fork 3

uss-enterprise/深入应用C++11:代码优化与工程级应用 的实践代码

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
6-2.cpp 2.09 KB
一键复制 编辑 原始数据 按行查看 历史
#include <iostream>
#include <chrono>
#include <ratio>
#include <ctime>
#include <iomanip>
//template <intmax_t N, intmax_t D = 1> class ratio;
//该模板用于实例化由分子和分母表示的有限有理数的类型。分子和分母被实现为intmax t类型的编译时常量。
int main(void)
{
using namespace std::chrono;
{
/** time_point 表示时间点的time_point, 用来获取从它的clock的纪元开始所经过的duration 和当前的时间,可以做一些时间的比较和算术运算,可以和ctime库集合起来显示时间
* */
typedef duration<int, std::ratio<60*60*24>> days_type; //定义一天的duration
time_point<system_clock, days_type> today = time_point_cast<days_type>(system_clock::now());
std::cout << today.time_since_epoch().count() << " Days since epoch" << std::endl;
}
{
system_clock::time_point now = system_clock::now();
std::time_t last = system_clock::to_time_t(now - std::chrono::hours(24)); //time_point 与 duration 相加减,进行时间的跳转
std::time_t next = system_clock::to_time_t(now + hours(24));
std::cout << "One day ago, the time was "
<< std::put_time(std::localtime(&last), "%F %T") << "\n"; //put_time (const struct tm* tmb, const charT* fmt); 插入 tmb 指向的时间和日期信息的表示形式,按照参数 fmt 的指定对其进行格式化。
std::cout << "Next day, the time is "
<< std::put_time(std::localtime(&next), "%F %T") << "\n";
}
{
using std::chrono::system_clock;
std::chrono::duration<int, std::ratio<60*60*24>> one_day(1);
system_clock::time_point today = system_clock::now(); //Get current time
system_clock::time_point tommorrow = today + one_day;
std::time_t tt;
tt = system_clock::to_time_t(today); //Convert from time_t
std::cout << "today is : " << ctime(&tt); //char *ctime(const time_t *timep);
tt = system_clock::to_time_t(tommorrow);
std::cout << "tomorrow will be: " << ctime(&tt);
}
return 0;
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/uss-enterprise/c11_book_learned_code.git
[email protected]:uss-enterprise/c11_book_learned_code.git
uss-enterprise
c11_book_learned_code
深入应用C++11:代码优化与工程级应用 的实践代码
master

搜索帮助