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驱动爱好者 服务器程序员沟通交流
**************************************************************/
作 者: itdef
欢迎转帖 请保持文本完整并注明出处
技术博客 http://www.cnblogs.com/itdef/
B站算法视频题解
https://space.bilibili.com/18508846
qq 151435887
gitee https://gitee.com/def/
欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力
欢迎转帖 请保持文本完整并注明出处
技术博客 http://www.cnblogs.com/itdef/
B站算法视频题解
https://space.bilibili.com/18508846
qq 151435887
gitee https://gitee.com/def/
欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力

