1 /*- ==========================================================
2 * 文件名 :CTimer.h
3 * 开发人员:袁培荣
4 * 当前版本:1.0.0.2595
5 * 创建时间:2012-05-15
6 * 修改时间:2012-05-15
7 * 功能说明:简单计时器类(修改自boost程序库)
8 * 版权说明:版权所有 袁培荣 YuanPeirong
9 * 编译环境:Windows 7(x64) SP1 简体中文专业版
10 * 编译器: Visual Studio 2010 SP1(中文旗舰版)
11 MinGW 20111108
12 Visual C++ 6.0 SP6(中文企业版)
13 - ==========================================================*/
14
15 #ifndef CTimer_H_TYCppStdLib
16 #define CTimer_H_TYCppStdLib
17
18 #ifdef CTimer_DLL_API
19 #else
20 #define CTimer_DLL_API _declspec(dllimport)
21 #endif
22
23 #include <ctime>
24
25 using std::clock_t;
26 using std::clock;
27
28 namespace TYCppStdLib
29 {
30 class CTimer_DLL_API CTimer
31 {
32 private:
33 std::clock_t startTime;
34 public:
35 CTimer(); //构造函数,启动计时
36 virtual ~CTimer(); //析构函数,为扩展预留,为空函数
37 virtual void Restart(); //重新开始计时
38 virtual double Elapsed() const; //返回计时时长,单位为秒
39 virtual double ElapsedMax() const; //返回最大可计时间
40 virtual double ElapsedMin() const; //返回最小可计时间(计时精度)
41 };
42 }
43
44 #endif
1 /*- ==========================================================
2 * 文件名 :CTimer.cpp
3 * 开发人员:袁培荣
4 * 当前版本:1.0.0.2595
5 * 创建时间:2012-05-15
6 * 修改时间:2012-05-15
7 * 功能说明:简单计时器类(修改自boost程序库)
8 * 版权说明:版权所有 袁培荣 YuanPeirong
9 * 编译环境:Windows 7(x64) SP1 简体中文专业版
10 * 编译器: Visual Studio 2010 SP1(中文旗舰版)
11 MinGW 20111108
12 Visual C++ 6.0 SP6(中文企业版)
13 - ==========================================================*/
14
15 #ifndef CTimer_DLL_ForAPI
16 #define CTimer_DLL_ForAPI
17
18 #define CTimer_DLL_API _declspec(dllexport)
19
20 #endif
21
22 #include <limits>
23 #include "http://www.cnblogs.com/Include/DateAndTime/CTimer.h"
24
25
26
27 //构造函数,启动计时
28 TYCppStdLib::CTimer::CTimer()
29 {
30 startTime = std::clock();
31 }
32
33 //析构函数,为扩展预留,为空函数
34 TYCppStdLib::CTimer::~CTimer()
35 {
36 //空函数
37 }
38
39 //重新开始计时
40 void TYCppStdLib::CTimer::Restart()
41 {
42 startTime = std::clock();
43 }
44
45 //返回计时时长,单位为秒
46 double TYCppStdLib::CTimer::Elapsed() const
47 {
48 return double(std::clock()-startTime)/CLOCKS_PER_SEC;
49 }
50
51 //返回最大可计时间
52 double TYCppStdLib::CTimer::ElapsedMax() const
53 {
54 return (double((std::numeric_limits<std::clock_t>::max)())
55 - double(startTime))/double(CLOCKS_PER_SEC);
56 }
57
58 //返回最小可计时间(计时精度)
59 double TYCppStdLib::CTimer::ElapsedMin() const
60 {
61 return double(1)/double(CLOCKS_PER_SEC);
62 }