c++11 时间相关操作练习
博客和书籍资料 来自该地址 https://www.cnblogs.com/qicosmos/category/490693.html
自行编写相应代码进行学习
// TimeTest.cpp: 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <chrono>
#include <typeinfo>
#include <iostream>
#include <thread>
#include <iomanip>
#include <ctime> #include "Timer.h" using namespace std; void func1()
{
std::this_thread::sleep_for(std::chrono::milliseconds());
std::this_thread::sleep_for(std::chrono::seconds());
//std::this_thread::sleep_for(std::chrono::minutes(1)); std::chrono::milliseconds ms{ }; // 3毫秒
std::chrono::microseconds us = * ms; //6000微秒
std::chrono::duration<double, std::ratio<, >> hz30{ 3.5 }; std::cout << "3 ms duration has " << ms.count() << " ticks\n "
<< "6000 us duration has " << us.count() << " ticks\n";
} void func2()
{
std::chrono::minutes t1();
std::chrono::seconds t2(); std::chrono::seconds t3 = t1 - t2;
std::cout << t3.count() << "second" << std::endl;
} void TestChrono()
{
std::chrono::duration<double, std::ratio<, >> d1();
std::chrono::duration<double, std::ratio<, >> d2(); auto d3 = d1 - d2;
std::cout << typeid(d3).name() << std::endl; std::cout << d3.count() << std::endl;
} void func3()
{
using namespace std::chrono; typedef duration<int, std::ratio< * * >> days_type;
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;
return;
} void func4()
{
//用于写入数据库mysql
using namespace std::chrono;
system_clock::time_point now = system_clock::now();
std::time_t last = system_clock::to_time_t(now - hours());
std::time_t next = system_clock::to_time_t(now + hours()); struct tm t;
localtime_s(&t, &last);
std::cout << "One day ago, the time was "
<< std::put_time(&t, "%F %T") << "\n"; localtime_s(&t, &next);
std::cout << "Next day , the time was "
<< std::put_time(&t, "%F %T") << "\n";
} int main()
{
Timer timer;
system_clock::time_point now = system_clock::now();
std::time_t nowtime = system_clock::to_time_t(now); struct tm t;
localtime_s(&t, &nowtime);
std::cout << "before "
<< std::put_time(&t, "%F %T") << "\n"; while () {
if (timer.elapsed_minutes() > ) {
std::cout <<" break"<<std::endl;
break;
}
std::this_thread::sleep_for(std::chrono::seconds());
} now = system_clock::now();
nowtime = system_clock::to_time_t(now); localtime_s(&t, &nowtime);
std::cout << "after "
<< std::put_time(&t, "%F %T") << "\n"; return ;
}
#pragma once
#include <chrono> using namespace std;
using namespace std::chrono; class Timer
{
public:
Timer() :m_begin(high_resolution_clock::now()) {};
void reset() { m_begin = high_resolution_clock::now(); } //默认输出毫秒
template<typename Duration = milliseconds>
int64_t elapsed()const {
return duration_cast<Duration>(high_resolution_clock::now() - m_begin).count();
} //微秒
int64_t elapsed_micro()const {
return elapsed<microseconds>();
} //纳秒
int64_t elapsed_nano()const
{
return elapsed<nanoseconds>();
}
//秒
int64_t elapsed_seconds()const
{
return elapsed<seconds>();
}
//分
int64_t elapsed_minutes()const
{
return elapsed<minutes>();
}
//时
int64_t elapsed_hours()const
{
return elapsed<hours>();
}
private:
time_point<high_resolution_clock> m_begin;
};
c++11 时间相关操作练习的更多相关文章
- Linux之时间相关操作20170607
一.Linux常用时间相关函数 -asctime,ctime,getttimeofday,gmtime,localtime,mktime,settimeofday,time asctime ...
- C++11时间操作
C++11提供了chrono库,这个库可以处理和时间相关的一些事情.这个库里面主要有3个类:时间间隔Duration.时钟Clocks和时间点Time point. Duration template ...
- centos7下安装docker(11容器操作总结)
这段时间主要是学习了对容器的操作,包括:容器的状态:start,stop,restart,rename,pause,unpause,rm,attach,exec,kill,logs:还学习了对容器的资 ...
- MySQL时间相关操作
本文主要介绍MySQL使用过程中有关时间处理的相关操作: MySQL时间更新(加上或减去一段时间) MySQL毫秒数和日期之间的转换 一.MySQL时间更新(加上或减去一段时间) 1.1 MySQL时 ...
- Flask(11)- 操作 Cookie
前言 Cookie 详解:https://www.cnblogs.com/poloyy/p/12513247.html 这一节来瞧一瞧如何用 Flask 操作 Cookie 接下来就是 实战栗子!!! ...
- Js获取当前日期时间及时间相关操作
Js获取当前日期时间及时间格式 var myDate = new Date();myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); ...
- 11)django-ORM(操作增删改查)
ORM从增删改查等方面说明 一:创建数据 #创建数据两种方式1,推荐方式1 UserInfo.objects.create(username=") #方式1变种 user_dict={&qu ...
- PHP 时间相关操作
使用函式 date() 实现 <?php echo $showtime=date("Y-m-d H:i:s");?> 显示的格式: 年-月-日 小时:分钟:秒 获得当天 ...
- odoo开发笔记-日期时间相关操作
日期格式化字符串:DATE_FORMAT = "%Y-%m-%d" 日期时间格式字符串:DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S" ...
随机推荐
- Java中this和super的用法和区别
super(参数):调用父类中的某一个构造函数(应该为构造函数中的第一条语句). this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句). this的实例: package ...
- Android学习路-UI控件
- FileInputStream.FileOutputStream执行图片复制
/** * 需求:拷贝一个图片 * 思路: * 1.创建一个字符输入流和图片相关联. * 2.用字节写入流对创建图片文件,用于存储到图片数据. * 3.通过循环续写,完成数据的存储. * 4.关闭资源 ...
- Centos 7 MariaDB Galera cluster 部署
一.安装环境准备 1.系统: CentOS Linux release 7.4.1708 (Core) 2.hosts 10.6.32.51 openstack1 10.6.32.52 opensta ...
- Ant 初级入门
一.Ant简介 Ant是一个Apache基金会下的跨平台的构件工具. 由于Ant是基于Java的,所以需要Java环境的支持,也就是配置好 JAVA_HOME 和 ANT_HOME 环境变量分别指向J ...
- bulk
bulk - 必应词典 美[bʌlk]英[bʌlk] n.大部分:主体:(大)体积:大(量) v.扩展:增大:堆积起来:形成大块 网络散装:大批:大量 变形复数:bulks:现在分词:bulking: ...
- stark组件之批量操作【模仿Django的admin】
一.先看下django的admin是如何实现批量操作 首先在配置类中定义一个函数 然后我们为这个函数对象设置一个属性,这个属性主要用来显示在select标签中显示的文本内容 最后把函数对象放到一个ac ...
- xcode10 - 打ipa上蒲公英或者fire.im
1.选择空设备 2. 3. 4. 选择需要的 next 5. 6. 7. 8.选择位置 9. 选择ipa包 放到蒲公英 或者fire.im上 就行了
- 设a、b、c均是0到9之间的数字,abc、bcc是两个三位数,且有:abc+bcc=532。求满足条件的所有a、b、c的值。
题目描述 设a.b.c均是0到9之间的数字,abc.bcc是两个三位数,且有:abc+bcc=532.求满足条件的所有a.b.c的值. 输入描述: 题目没有任何输入. 输出描述: 请输出所有满足题目条 ...
- 11-web网页制作APP
如何将H5和WebApp 加壳成apk.ipa 问题:已经做好的纯H5的站点 想分别加两个壳子,变成apk和ipa ,要怎么实现? 要点: 1. app只是壳子,打开app直接跳转到H5的Ur ...