C++簡單計時器類(修改自boost程序庫)

/*- ==========================================================
*     文件名  :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);
}
相關文章
相關標籤/搜索