在游戏服务器中经常要操作日期和时间用来为游戏中的任务模块和活动模块服务(指定某个任务或者某个活动在某个时间点打开或关闭),下面是个简单的例子用来获取两个标准日期间的秒数:
// time_test.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <sys/timeb.h>
#include<time.h>
#include <iostream>
#include <Windows.h>
using namespace std;
class CRealDateTime
{
public:
CRealDateTime(){ update();}
~CRealDateTime(){}
private:
struct tm *m_t;
time_t m_tb;
public:
void update()
{
::time(&m_tb);
m_t= ::localtime(&m_tb);
m_dif=mktime(m_t);
}
unsigned __int64 gettime()
{
return m_dif;
}
private:
unsigned __int64 m_dif;
};
class CTimerManager
{
public:
unsigned __int64 getDiffTime(CRealDateTime *last,CRealDateTime *now)
{
__int64 __diff = now->gettime()-last->gettime();
return __diff;
}
public:
static CTimerManager* instance()
{
static CTimerManager __inst;
return &__inst;
}
};
#define TIMERMANAGER() CTimerManager::instance()
int _tmain(int argc, _TCHAR* argv[])
{
CRealDateTime last;
Sleep(2000);
CRealDateTime now;
__int64 cost=TIMERMANAGER()->getDiffTime(&last,&now);
cout<<cost<<endl;
system("pause");
return 0;
}<strong>
</strong>