c11时间库一个小例子
#pragma once
#include <chrono>
#include <string>
#include <iostream>
#include <ctime>
#include <iomanip> #define NAMESPACE(x) namespace x{
#define NAMESPACEEND(x) } NAMESPACE(DEF) const int kMicroSecondsPerSecond = 1000 * 1000; class Timestamp
{
public:
Timestamp() {};
void TimestampSet(const Timestamp& t) {
time_ = t.time_;
}; bool valid() const { return time_.time_since_epoch().count() > 0; }
int64_t MicroSecondsSinceEpoch() const { return time_.time_since_epoch().count(); }
void Now() { time_ = std::chrono::system_clock::now();};
std::string Timestamp::ToFormattedString() const;
std::string ToString() const {
char buf[32] = { 0 };
auto s1 = std::chrono::duration_cast<std::chrono::microseconds>
(time_.time_since_epoch()).count();
snprintf(buf, sizeof(buf) - 1, "%lld.%06lld", s1 / kMicroSecondsPerSecond, s1 % kMicroSecondsPerSecond);
//printf("buf %s\n", buf);
return buf;
};
const std::chrono::time_point<std::chrono::system_clock>&
Time() { return time_; };
private:
std::chrono::time_point<std::chrono::system_clock> time_;
}; inline bool operator<(Timestamp lhs, Timestamp rhs)
{
return lhs.Time() < rhs.Time();
} inline bool operator==(Timestamp lhs, Timestamp rhs)
{
return lhs.Time() == rhs.Time();
} inline bool operator>(Timestamp lhs, Timestamp rhs)
{
return lhs.Time() > rhs.Time();
} inline bool operator>=(Timestamp lhs, Timestamp rhs)
{
return lhs.Time() >= rhs.Time();
} inline int64_t timeDifference(Timestamp high, Timestamp low)
{
return (high.Time() - low.Time()).count();
} std::string Timestamp::ToFormattedString() const
{
auto t = std::chrono::system_clock::to_time_t(time_); char mbstr[100] = {0};
if (std::strftime(mbstr, sizeof(mbstr), "%Y_%m_%d_%H_%M_%S", std::localtime(&t)))
{
return mbstr;
} return mbstr;
} NAMESPACEEND(DEF)
/**************************************************************
技术博客
http://www.cnblogs.com/itdef/
技术交流群
群号码:324164944
欢迎c c++ windows驱动爱好者 服务器程序员沟通交流
**************************************************************/
c11时间库一个小例子的更多相关文章
- MVVM模式的一个小例子
使用SilverLight.WPF也有很长时间了,但是知道Binding.Command的基本用法,对于原理性的东西,一直没有深究.如果让我自己建一个MVVM模式的项目,感觉还是无从下手,最近写了一个 ...
- java连接mysql的一个小例子
想要用java 连接数据库,需要在classpath中加上jdbc的jar包路径 在eclipse中,Project的properties里面的java build path里面添加引用 连接成功的一 ...
- java操作xml的一个小例子
最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要 ...
- 使用Trinity拼接以及分析差异表达一个小例子
使用Trinity拼接以及分析差异表达一个小例子 2017-06-12 09:42:47 293 0 0 Trinity 将测序数据分为许多独立的de Brujin grap ...
- 关于SVN配置文件的一个小例子
1 背景假设 厦门央瞬公司是一家电子元器件设备供应商,其中有个ARM部门,专门负责ARM芯片的方案设计.销售,并在北京.上海各设立了一个办事处.对于工作日志,原先采用邮件方式发给经理,但是这种方式 ...
- 从一个小例子认识SQL游标
1 什么是游标: 关系数据库中的操作会对整个行集起作用. 例如,由 SELECT 语句返回的行集包括满足该语句的 WHERE 子句中条件的所有行. 这种由语句返回的完整行集称为结果集. 应用程序 ...
- Vue2.x源码学习笔记-从一个小例子查看vm实例生命周期
学习任何一门框架,都不可能一股脑儿的从入口代码从上到下,把代码看完, 这样其实是很枯燥的,我想也很少有人这么干,或者这么干着干着可能干不下去了. 因为肯定很无聊. 我们先从一个最最简单的小例子,来查看 ...
- Spring和Hibernate结合的一个小例子
1.新建一个SpringHibernate的maven项目 2.pom文件的依赖为 <dependency> <groupId>junit</groupId> &l ...
- Spring.Net在ASP.NET Mvc里使用的一个小例子
就贴个小例子,就不注意格式了. 1.下载dll NuGet的下载地址:http://docs.nuget.org/docs/start-here/installing-nuget 在vs的NuGet里 ...
随机推荐
- WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference!
在 Binding 中使用 ElementName 司空见惯,没见它出过什么事儿.不过当你预见 ContextMenu,或者类似 Grid.Row / Grid.Column 这样的属性中设置的时候, ...
- 6-19 Count Connected Components(20 分)
Write a function to count the number of connected components in a given graph. Format of functions: ...
- 使用nomad && consul && fabio 创建简单的微服务系统
具体每个组件的功能就不详细说明了 nomad 一个调度工具,consul 一个服务发现,健康检查多数据中心支持的工具 fabio 一个基于consul的负载均衡&&动态路由工具,对于集 ...
- docker 数据卷 ---- 基础篇
用户在使用 Docker 的过程中,往往需要能查看容器内应用产生的数据,或者需要把容器内的数据进行备份,甚至多个容器之间进行数据的共享,这必然涉及容器的数据管理操作.容器中管理数据主要有两种方式:数据 ...
- NET简单的一个画图程序
using System; using System.Drawing; //HttpUtility.UrlEncode /// <summary> ///Curve 的摘要说明 /// & ...
- Azkaban 使用问题及解决
什么是Azkaban Azkaban是一款基于Java编写的任务调度系统 任务调度:有四个任务脚A.B.C.D,其中任务A与任务B可以并行运行,然后任务C依赖任务A和任务B的运行结果,任务D依赖任务C ...
- 【转】深入理解Java的接口和抽象类
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...
- jetty之嵌入式开发
一.Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境.Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布.开发人员可 ...
- Java之POI的excel导入导出
一.Apache POI是一种流行的API,它允许程序员使用Java程序创建,修改和显示MS Office文件.这由Apache软件基金会开发使用Java分布式设计或修改Microsoft Offic ...
- win10 svn commit无响应
只是发现其中的一个原因,发现.cs代码文件图标变红了,默认是用Code Writer打开,和SVN可能是冲突了,解决方式是用Code Writer打开一下.cs文件就可以了,原因可能是不打开一次Cod ...