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" ...
随机推荐
- Real Time Render 4
[Real Time Render 4] 1.Radiometry(辐射测试) deals with the measurement of electromagnetic(电磁) radiation( ...
- python--第六天总结
执行系统命令 可以执行shell命令的相关模块和函数有: os.system os.spawn* os.popen* --废弃 popen2.* --废弃 co ...
- python--第四天总结
lambda表达式 处理简单函数自动返回 学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: # 普通条件语句 if 1 == 1: name = 'wupeiqi' el ...
- MongoDB之增删改查
MongoDB的默认端口为:27017 show dbs 查看所有的数据库 MySQL和MongoDB的对应关系 MySQL MongoDB DB DB 数据库 table Collection ...
- Docker学习之安装mysql
1.从Docker检索mysql镜像 指令: docker search mysql 2.镜像下载 指令: docker pull mysql:5.7.19 3.查看本地镜像列表 指令: docker ...
- HDU-1069.MonkeyandBanana(LIS)
本题大意:给出n个长方体,每种长方体不限量,让你求出如何摆放长方体使得最后得到的总高最大,摆设要求为,底层的长严格大于下层的长,底层的宽严格大于下层的宽. 本题思路:一开始没有啥思路...首先应该想到 ...
- Python+Selenium学习--定位iframe中的对象
场景 在web 应用中经常会出现frame 嵌套的应用,假设页面上有A.B 两个frame,其中B 在A 内,那么定位B 中的内容则需要先到A,然后再到B. switch_to_frame ...
- 对话框 AlterDialog
AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("尊敬的用户"); bu ...
- Codeforces Beta Round #16 (Div. 2 Only)
Codeforces Beta Round #16 (Div. 2 Only) http://codeforces.com/contest/16 A 水题 #include<bits/stdc+ ...
- cross-env:跨平台设置和使用环境变量
一 项目结构 二 安装依赖 npm install --save-dev cross-env 三 npm脚本 { "name": "demo", "v ...