打印本文 打印本文  关闭窗口 关闭窗口  
C++每日一问:如何获取时间?精度如何?
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 14:39:52  文章录入:杜斌  责任编辑:杜斌

Q:如何获取时间?精度如何?                                                                                             
A: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就得到时间。
  7 还有David的文章中提到的方法:
    Multimedia Timer Functions
    The following functions are used with multimedia timers.
    timeBeginPeriod/timeEndPeriod/timeGetDevCaps/timeGetSystemTime

打印本文 打印本文  关闭窗口 关闭窗口