您的位置:首页 > 其它

windows下如何获取当前时间

2014-12-26 10:50 330 查看
1 使用time_t time( time_t * timer ) 精确到秒

2 使用clock_t clock() 得到的是CPU时间 精确到1/CLOCKS_PER_SEC秒

3 计算时间差使用double difftime( time_t timer1, time_t timer0 )

4 使用DWORD GetTickCount() 精确到毫秒

5 如果使用MFC的CTime类,可以用CTime::GetCurrentTime() 精确到秒

6 要获取高精度时间,可以使用

BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency)

获取系统的计数器的频率

BOOL QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount)

获取计数器的值

然后用两次计数器的差除以Frequency就得到时间。
例子:

取得时钟频率

LARGE_INTEGER litmp ;

QueryPerformanceFrequency(&litmp);

LARGE_INTEGER start;

QueryPerformanceCounter(&start) ;

//do something

LARGE_INTEGER end;

QueryPerformanceCounter(&end) ;

double dTotalTime = (double)(end.QuadPart-start.QuadPart) / (double)litmp.QuadPart;

参考:http://topic.csdn.net/t/20031204/22/2528934.html

http://www.cppblog.com/humanchao/archive/2008/02/27/43322.html

time_t time_now = time(NULL);

if(m_last_tim_time==0)

{

m_last_tim_time = time_now;

}

if ( (time_now-m_last_tim_time)>=1)

{

m_last_tim_time=time_now;

//将当前时间转换成日历时间

tm* tm_now = localtime((const time_t*)&time_now);

char str_time[64] = {0};

sprintf_s(str_time,"%d-%2d-%2d %2d:%2d:% 2d",tm_now->tm_year+1900,tm_now->tm_mon+1,tm_now->tm_mday,tm_now->tm_hour,tm_now->tm_min,tm_now->tm_sec);

m_tim_file.write(str_time,strlen(str_time));

unsigned int file_size=m_save_file.tellp();

m_tim_file.write((const char *)&file_size,sizeof(file_size));

m_tim_file.flush();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: