📄 goodtime.h
字号:
#if !defined(AFX_GOODTIME_H__68A87820_90A1_11d2_BDF6_006097DB8C43__INCLUDED_)
#define AFX_GOODTIME_H__68A87820_90A1_11d2_BDF6_006097DB8C43__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// GoodTime.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CGoodTime replaces MFC CTime, which has Y2038 problems
class CGoodTime
{
public:
// Constructors
static CGoodTime PASCAL GetCurrentTime();
CGoodTime();
CGoodTime(tm time);
CGoodTime(int nYear, int nMonth, int nDay, int nHour, int nMin, int nSec,
int nDST = -1);
CGoodTime(WORD wDosDate, WORD wDosTime, int nDST = -1);
CGoodTime(const CGoodTime& timeSrc);
CGoodTime(const SYSTEMTIME& sysTime, int nDST = -1);
CGoodTime(const FILETIME& fileTime, int nDST = -1);
const CGoodTime& operator=(const CGoodTime& timeSrc);
const CGoodTime& operator=(tm t);
// Attributes
struct tm* GetGmtTm(struct tm* ptm = NULL) const;
struct tm* GetLocalTm(struct tm* ptm = NULL) const;
tm GetTime() const;
int GetYear() const;
int GetMonth() const; // month of year (1 = Jan)
int GetDay() const; // day of month
int GetHour() const;
int GetMinute() const;
int GetSecond() const;
int GetDayOfWeek() const; // 1=Sun, 2=Mon, ..., 7=Sat
static BOOL IsLeapYear( int nYear );
// Operations
// time math -- Not supported in the version
/*
CTimeSpan operator-(CGoodTime time) const;
CGoodTime operator-(CTimeSpan timeSpan) const;
CGoodTime operator+(CTimeSpan timeSpan) const;
const CGoodTime& operator+=(CTimeSpan timeSpan);
const CGoodTime& operator-=(CTimeSpan timeSpan);
*/
BOOL operator==(CGoodTime time) const;
BOOL operator!=(CGoodTime time) const;
BOOL operator<(CGoodTime time) const;
BOOL operator>(CGoodTime time) const;
BOOL operator<=(CGoodTime time) const;
BOOL operator>=(CGoodTime time) const;
// formatting using "C" strftime
CString Format(LPCTSTR pFormat) const;
CString FormatGmt(LPCTSTR pFormat) const;
CString Format(UINT nFormatID) const;
CString FormatGmt(UINT nFormatID) const;
#ifdef _UNICODE
// for compatibility with MFC 3.x
CString Format(LPCSTR pFormat) const;
CString FormatGmt(LPCSTR pFormat) const;
#endif
// serialization
#ifdef _DEBUG
friend CDumpContext& AFXAPI operator<<(CDumpContext& dc, CGoodTime time);
#endif
friend CArchive& AFXAPI operator<<(CArchive& ar, CGoodTime time);
friend CArchive& AFXAPI operator>>(CArchive& ar, CGoodTime& rtime);
protected:
void SetDays( tm *ptm );
private:
tm m_time;
};
#ifdef _DEBUG
inline CGoodTime::CGoodTime()
{ }
inline CGoodTime::CGoodTime(const CGoodTime& timeSrc)
{ m_time = timeSrc.m_time; }
#endif
inline CGoodTime::CGoodTime(tm time)
{ m_time = time; }
inline const CGoodTime& CGoodTime::operator=(const CGoodTime& timeSrc)
{ m_time = timeSrc.m_time; return *this; }
inline const CGoodTime& CGoodTime::operator=(tm t)
{ m_time = t; return *this; }
inline tm CGoodTime::GetTime() const
{ return m_time; }
inline int CGoodTime::GetYear() const
{ return m_time.tm_year + 1900; }
inline int CGoodTime::GetMonth() const
{ return m_time.tm_mon + 1; }
inline int CGoodTime::GetDay() const
{ return m_time.tm_mday; }
inline int CGoodTime::GetHour() const
{ return m_time.tm_hour; }
inline int CGoodTime::GetMinute() const
{ return m_time.tm_min; }
inline int CGoodTime::GetSecond() const
{ return m_time.tm_sec; }
inline int CGoodTime::GetDayOfWeek() const
{ return m_time.tm_wday + 1; }
//inline CTimeSpan CGoodTime::operator-(CGoodTime time) const
// { return CTimeSpan(m_time - time.m_time); }
//inline CGoodTime CGoodTime::operator-(CTimeSpan timeSpan) const
// { return CGoodTime(m_time - timeSpan.m_timeSpan); }
//inline CGoodTime CGoodTime::operator+(CTimeSpan timeSpan) const
// { return CGoodTime(m_time + timeSpan.m_timeSpan); }
//inline const CGoodTime& CGoodTime::operator+=(CTimeSpan timeSpan)
// { m_time += timeSpan.m_timeSpan; return *this; }
//inline const CGoodTime& CGoodTime::operator-=(CTimeSpan timeSpan)
// { m_time -= timeSpan.m_timeSpan; return *this; }
#endif // !defined(AFX_GOODTIME_H__68A87820_90A1_11d2_BDF6_006097DB8C43__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -