开门见山:
#include#include #include #pragma once #define Auto 0 using namespace std::chrono; using namespace std; // Offline Chrono/Meter Class(C++) . typedef class final { protected: time_t gt; tm* gtm; int i; public: inline string Align(string Time,unsigned Length); inline tm* Tm(void); // Functions For Display 用于显示的函数 / string inline const string Gets_Year(void); inline const string Gets_Mon (void); inline const string Gets_Day (void); inline const string Gets_Hour(void); inline const string Gets_Min (void); inline const string Gets_Sec (void); inline const string Gets_Yday(void); inline const string Gets_Msec(void); inline const string Gets_Usec(void); // Functions For Calculation 用于计算的函数 / int inline int Get_Year (void); inline int Get_Mon (void); inline int Get_Day (void); inline int Get_Hour (void); inline int Get_Min (void); inline int Get_Sec (void); inline int Get_Yday (void); // 今天是今年的第几天 inline int Get_Week (void); inline int Get_Msec (void); inline int Get_Usec (void); inline int Get_Stamp(void); // Time Stamp 时间戳 // Functions For Logical 用于逻辑的函数 / bool inline bool Is_LeapYear(int Year = Auto); // 闰年? }GMeter; inline string GMeter::Align(string Time,unsigned Length) { return string(Length - Time.length(),'0').append(Time); } inline tm* GMeter::Tm (void) { time(>); return localtime(>); } inline const string GMeter::Gets_Year(void) { return Align(to_string(Get_Year()),4); } inline const string GMeter::Gets_Mon (void) { return Align(to_string(Get_Mon ()),2); } inline const string GMeter::Gets_Day (void) { return Align(to_string(Get_Day ()),2); } inline const string GMeter::Gets_Hour(void) { return Align(to_string(Get_Hour()),2); } inline const string GMeter::Gets_Min (void) { return Align(to_string(Get_Min ()),2); } inline const string GMeter::Gets_Sec (void) { return Align(to_string(Get_Sec ()),2); } inline const string GMeter::Gets_Yday(void) { return Align(to_string(Get_Yday()),3); } inline const string GMeter::Gets_Msec(void) { return Align(to_string(Get_Msec()),3); } inline const string GMeter::Gets_Usec(void) { return Align(to_string(Get_Usec()),3); } inline int GMeter::Get_Year (void) { return Tm()->tm_year + 1900; } inline int GMeter::Get_Mon (void) { return Tm()->tm_mon + 1; } inline int GMeter::Get_Day (void) { return Tm()->tm_mday; } inline int GMeter::Get_Hour (void) { return Tm()->tm_hour; } inline int GMeter::Get_Min (void) { return Tm()->tm_min; } inline int GMeter::Get_Sec (void) { return Tm()->tm_sec; } inline int GMeter::Get_Yday (void) { return Tm()->tm_yday + 1; } inline int GMeter::Get_Week (void) { i = Tm()->tm_wday; if(!i)return 7; return i; } inline int GMeter::Get_Msec (void) { return duration_cast (system_clock::now().time_since_epoch()).count() / 1000 % 1000; } inline int GMeter::Get_Usec (void) { return duration_cast (system_clock::now().time_since_epoch()).count() % 1000; } inline int GMeter::Get_Stamp(void) { return time(NULL); } inline bool GMeter::Is_LeapYear(int Year) { if(!Year)Year = Get_Year(); if(Year>0)i=0; else { i=1; Year*=-1; } return((Year % 4 == i && Year % 100 != 0) || (Year % 400 == i)); }
Align函数的作用是方便对齐,如 1 -> 01
这样2022.1.1就会变为2022.01.01,方便对齐。
只是为了方便自己编写而写的类,很多不足的地方,希望可以指出。
测试代码:
int main(int argc, char **argv) { GMeter Meter; cout << Meter.Gets_Year() << Meter.Gets_Mon() << Meter.Gets_Day() << "," << Meter.Gets_Hour() << Meter.Gets_Min() << Meter.Gets_Sec() << ";" << Meter.Gets_Msec() << ";" << Meter.Gets_Usec() <欢迎分享,转载请注明来源:内存溢出
评论列表(0条)