/*- ========================================================== * 文件名 :CTimer.h * 開發人員:袁培榮 * 當前版本:1.0.0.2595 * 建立時間:2012-05-15 * 修改時間:2012-05-15 * 功能說明:簡單計時器類(修改自boost程序庫) * 版權說明:版權全部 袁培榮 YuanPeirong * 編譯環境:Windows 7(x64) SP1 簡體中文專業版 * 編譯器: Visual Studio 2010 SP1(中文旗艦版) MinGW 20111108 Visual C++ 6.0 SP6(中文企業版) - ==========================================================*/ #ifndef CTimer_H_TYCppStdLib #define CTimer_H_TYCppStdLib #ifdef CTimer_DLL_API #else #define CTimer_DLL_API _declspec(dllimport) #endif #include <ctime> using std::clock_t; using std::clock; namespace TYCppStdLib { class CTimer_DLL_API CTimer { private: std::clock_t startTime; public: CTimer(); //構造函數,啓動計時 virtual ~CTimer(); //析構函數,爲擴展預留,爲空函數 virtual void Restart(); //從新開始計時 virtual double Elapsed() const; //返回計時時長,單位爲秒 virtual double ElapsedMax() const; //返回最大可計時間 virtual double ElapsedMin() const; //返回最小可計時間(計時精度) }; } #endif
/*- ========================================================== * 文件名 :CTimer.cpp * 開發人員:袁培榮 * 當前版本:1.0.0.2595 * 建立時間:2012-05-15 * 修改時間:2012-05-15 * 功能說明:簡單計時器類(修改自boost程序庫) * 版權說明:版權全部 袁培榮 YuanPeirong * 編譯環境:Windows 7(x64) SP1 簡體中文專業版 * 編譯器: Visual Studio 2010 SP1(中文旗艦版) MinGW 20111108 Visual C++ 6.0 SP6(中文企業版) - ==========================================================*/ #ifndef CTimer_DLL_ForAPI #define CTimer_DLL_ForAPI #define CTimer_DLL_API _declspec(dllexport) #endif #include <limits> #include "../../Include/DateAndTime/CTimer.h" //構造函數,啓動計時 TYCppStdLib::CTimer::CTimer() { startTime = std::clock(); } //析構函數,爲擴展預留,爲空函數 TYCppStdLib::CTimer::~CTimer() { //空函數 } //從新開始計時 void TYCppStdLib::CTimer::Restart() { startTime = std::clock(); } //返回計時時長,單位爲秒 double TYCppStdLib::CTimer::Elapsed() const { return double(std::clock()-startTime)/CLOCKS_PER_SEC; } //返回最大可計時間 double TYCppStdLib::CTimer::ElapsedMax() const { return (double((std::numeric_limits<std::clock_t>::max)()) - double(startTime))/double(CLOCKS_PER_SEC); } //返回最小可計時間(計時精度) double TYCppStdLib::CTimer::ElapsedMin() const { return double(1)/double(CLOCKS_PER_SEC); }