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" ...
随机推荐
- 解题8(FindLongestNumberStr)
题目描述 样例输出 输出123058789,函数返回值9 输出54761,函数返回值5 接口说明 函数原型: unsignedint Continumax(char** pOutputstr, ch ...
- Appium1.6启动iOS真机
前提:已经安装了Appium1.6版本,我这里用的是GUI版本 环境要求: 真机iOS9.3及以上 macOS 10.11或10.12 Xcode7及以上 安装步骤如下 第一步:iOS真机 ...
- 恶性肿瘤预测Python程序(逻辑回归)
from sklearn.linear_model import LinearRegression,SGDRegressor,Ridge,LogisticRegression from sklearn ...
- Jenkins-cli基本用法
基本的格式为 java -jar jenkins-cli.jar [-s JENKINS_URL] command [options][args] 下面具体介绍各个命令的作用及基本使用方法 1. ...
- Mybatis抛出 Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@f54509]异常
今天在做Springmvc和spring 时 mybatis 是抛出异常 Closing non transactional SqlSession [org.apache.ibatis.session ...
- vue 父组件使用子组件中的data或methods
1.调用子组件的时候 定义一个ref 2.在父组件里面通过 this.$refs.verify.属性 this.$refs.verify.方法
- sqlserver判断字段是否存在更改字段
use naire go if COL_LENGTH('options','optionsGroup') is null begin--options为表名,optionsGroup为列名 alter ...
- LAB3 整数相加
//yuec2 Yue Cheng package lab3; public class Fraction { int numerator; int denominator; //obeject wi ...
- Properties 使用
Properties 属于Map 下HashTable的小弟 属于持久的属性集,他可以保存在流中或者在流中加载. 键和值都是字符串类型. 通常用于配置文件 方法介绍: 存放键值对:setPropert ...
- golang 简单的实现内 网 穿 透,用户访问本地服务。
一.功能描述: 客户端通过访问外网服务器上指定端口,间接访问自已本地的内网服务. 二.原理图如下: 三.实现代码如下: server.go代码: package main; import ( &quo ...