<span style="font-size:18px;">// localtime_test.cpp : 定义控制台应用程序的入口点。
//
/************************************************************************/
/*
author:郑金玮
time:2014/07/08
desc:impl timeb test
*/
/************************************************************************/
#include "stdafx.h"
#include <sys/timeb.h>
#include <time.h>
#include <stdlib.h>
#include <iostream>
#include <Windows.h>
using namespace std;
typedef unsigned __int64 uint64;
class CTimeProcess
{
public:
CTimeProcess(){}
~CTimeProcess(){}
private:
void __init(){
LARGE_INTEGER nFreq;
QueryPerformanceFrequency(&nFreq);
m_millsecondsPerTick = 1000.0f / nFreq.QuadPart;
}
public:
uint64 gettime(){
static bool _bIsInit = false;
if (_bIsInit==false) {
__init();
_bIsInit = true;
}
LARGE_INTEGER nFreq;
QueryPerformanceCounter(&nFreq);
return (uint64)(nFreq.QuadPart * m_millsecondsPerTick);
}
public:
static CTimeProcess* instance();
private:
double m_millsecondsPerTick;
};
CTimeProcess* CTimeProcess::instance()
{
static CTimeProcess tp;
return &tp;
}
#define CURTIME() CTimeProcess::instance()
int _tmain(int argc, _TCHAR* argv[])
{
uint64 _startTime = CURTIME()->gettime();
_timeb tb;
::_ftime(&tb);
struct tm *t = ::localtime(&tb.time);
char szTime[256];
memset(szTime,0,sizeof(szTime));
cout<<"year:"<<t->tm_year+1900<<endl;
cout<<"month:"<<t->tm_mon+1<<endl;
cout<<"day:"<<t->tm_mday<<endl;
cout<<"hour:"<<t->tm_hour<<endl;
cout<<"minute:"<<t->tm_min<<endl;
cout<<"secs:"<<t->tm_sec<<endl;
cout<<"星期:"<<t->tm_wday<<endl;
Sleep(3000);
uint64 _endTime = CURTIME()->gettime();
cout<<"all code execute cost "<<_endTime-_startTime<<" millsecs"<<endl;
cout<<endl<<endl;
system("pause");
return 0;
}</span>