在個人命名空間TYCppStdLib中對於日期和時間的操做很是豐富。 共有六個類和一組全局函數。 六個類分別是: CDate CTime CDateAndTime CMyDate CMyTime CMyDateAndTime 前三個類不帶類的成員變量,直接操做用戶給定的數據。 前三個類的成員函數與全局函數一一對應。 後三個類帶類的成員變量,成員函數操做類的成員變量。 如今發佈的是CTime類(基類,完成基本功能,待更新)。 源代碼以下:
/*- ========================================================== * 文件名 :CTime.h * 開發人員:袁培榮 * 當前版本:1.0.0.2595 * 建立時間:2012-04-23 * 修改時間:2012-05-01 * 功能說明:時間類(基類) * 版權說明:版權全部 袁培榮 YuanPeirong * 編譯環境:Windows 7(x64) SP1 簡體中文專業版 * 編譯器: Visual Studio 2010 SP1(中文旗艦版) MinGW 2011118 Visual C++ 6.0 SP6(中文企業版) - ==========================================================*/ #ifndef CTime_H_TYCppStdLib #define CTime_H_TYCppStdLib #ifdef CTime_DLL_API #else #define CTime_DLL_API _declspec(dllimport) #endif #include <string> #include "Windows.h" using namespace std; namespace TYCppStdLib { class CTime_DLL_API CTime { public: CTime(); virtual ~CTime(); virtual int GetHour(); // 獲取時 virtual int GetMinute(); // 獲取分 virtual int GetSecond(); // 獲取秒 virtual bool SetHour(int hour); // 設置時 virtual bool SetMinute(int minute); // 設置分 virtual bool SetSecond(int second); // 設置秒 // 獲取時間 virtual void GetTime(int &hour,int &minute,int &second); //virtual string GetTime(const string strDivide="-"); //virtual void GetTime(char *times,char *divide=":"); // 設置時間 virtual bool SetTime(int hour,int minute,int second); //virtual bool SetTime(char *times); // 檢查時間是否合法 virtual bool TimeIsValid(int hour,int minute,int second); }; } #endif
/*- ========================================================== * 文件名 :CTime.cpp * 開發人員:袁培榮 * 當前版本:1.0.0.2595 * 建立時間:2012-04-23 * 修改時間:2012-05-01 * 功能說明:時間類(基類) * 版權說明:版權全部 袁培榮 YuanPeirong * 編譯環境:Windows 7(x64) SP1 簡體中文專業版 * 編譯器: Visual Studio 2010 SP1(中文旗艦版) MinGW 2011118 Visual C++ 6.0 SP6(中文企業版) - ==========================================================*/ #ifndef CTime_DLL_ForAPI #define CTime_DLL_ForAPI #define CTime_DLL_API _declspec(dllexport) #endif #include "../../Include/DateAndTime/CTime.h" /* typedef struct _SYSTEMTIME { // st WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute; WORD wSecond; WORD wMilliseconds; } SYSTEMTIME; */ //構造函數 TYCppStdLib::CDate::CTime() { //空函數 } //析構函數 TYCppStdLib::CDate::~CTime() { //空函數 } // 獲取時 int TYCppStdLib::CTime::GetHour() { SYSTEMTIME st; GetLocalTime(&st); return st.wHour; } // 獲取分 int TYCppStdLib::CTime::GetMinute() { SYSTEMTIME st; GetLocalTime(&st); return st.wMinute; } // 獲取秒 int TYCppStdLib::CTime::GetSecond() { SYSTEMTIME st; GetLocalTime(&st); return st.wSecond; } // 設置時 bool TYCppStdLib::CTime::SetHour(int hour) { SYSTEMTIME st; if(hour<0 || hour>23) return false; GetLocalTime(&st); st.wHour=hour; if(SetLocalTime(&st)) return true; return false; } // 設置分 bool TYCppStdLib::CTime::SetMinute(int minute) { SYSTEMTIME st; if(minute<0 || minute>59) return false; GetLocalTime(&st); st.wMinute=minute; if(SetLocalTime(&st)) return true; return false; } // 設置秒 bool TYCppStdLib::CTime::SetSecond(int second) { SYSTEMTIME st; if(second<0 || second>59) return false; GetLocalTime(&st); st.wSecond=second; if(SetLocalTime(&st)) return true; return false; } // 獲取時間 void TYCppStdLib::CTime::GetTime(int &hour,int &minute,int &second) { hour=GetHour(); minute=GetMinute(); second=GetSecond(); } // void TYCppStdLib::CTime::GetTime(char *times,char *divide=":") // { // } // 設置時間 bool TYCppStdLib::CTime::SetTime(int hour,int minute,int second) { if(!SetHour(hour)) return false; if(!SetMinute(minute)) return false; return SetSecond(second); } // bool TYCppStdLib::CTime::SetTime(char *times) // { // } // 檢查時間是否合法 bool TYCppStdLib::CDateAndTime::TimeIsValid(int hour,int minute,int second) { if(hour<0 || hour>23) return false; if(minute<0 || minute>59) return false; if(second<0 || second>59) return false; return true; }