/*- ==========================================================
* 文件名 :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);
}