⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 goodtime.h

📁 这是VC++控制计算机时钟的一个例子
💻 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 + -