
计算时间差使用double difftime( time_t timer1, time_t timer0 )2 使用clock_t clock()得到的是CPU时间精确到1/CLOCKS_PER_SEC秒3 使用DWORD GetTickCount() 得到的是系统运行的时间 精确到毫秒4 如果使用MFC的CTime类,可以用CTime::GetCurrentTime() 精确到秒5 要获取高精度时间,可以使用BOOLQueryPerformanceFrequency(LARGE_INTEGERlpFrequency)获取系统的计数器的频率BOOLQueryPerformanceCounter(LARGE_INTEGERlpPerformanceCount)获取计数器的值然后用两次计数器的差除以Frequency就得到时间。6 还有David的文章中提到的方法:MultimediaTimer FunctionsThefollowing functions are used with multimedia timerstimeBeginPeriod/timeEndPeriod/timeGetDevCaps/timeGetSystemTimetimeGetTime/timeKillEvent/TimeProc/timeSetEvent精度很高Q:GetTickCount()函数,说是毫秒记数,是真的吗,还是精确到55毫秒?A:GetTickCount()和GetCurrentTime()都只精确到55ms(1个tick就是55ms)。如果要精确到毫秒,应该使用timeGetTime函数或QueryPerformanceCounter函数。具体例子可以参考QA001022"timeGetTime函数延时不准"。GetSystemTime返回的是格林威志标准时间GetLocalTime,和上面用法一样,返回的是你所在地区的时间,中国返回的是北京时间VOID GetSystemTime(LPSYSTEMTIME lpSystemTime // address of system time structure);函数就可以获得了,其中LPSYSTEMTIME 是个结构体含:年,月,日,周几,小时,分,秒,毫秒。
在调试、日志输出、代码优化时,我们常常需要获得系统的时间。在一些性能要求高的代码优化时,对时间的精确度还比较高。在网上找不高质量的代码,便自己研究了一下,代码如下(能满足跨平台的要求,单位精确到微秒):
#ifdef _WIN32#include <windowsh>#else#include <timeh>#endif // _WIND32// 定义64位整形#if defined(_WIN32) && !defined(CYGWIN)
typedef __int64 int64_t;#else
typedef long long int64t;#endif // _WIN32// 获取系统的当前时间,单位微秒(us)
int64_t GetSysTimeMicros()
{#ifdef _WIN32// 从1601年1月1日0:0:0:000到1970年1月1日0:0:0:000的时间(单位100ns)#define EPOCHFILETIME (116444736000000000UL) FILETIME ft; LARGE_INTEGER li;
int64_t tt = 0;
GetSystemTimeAsFileTime(&ft);
liLowPart = ftdwLowDateTime;
liHighPart = ftdwHighDateTime; // 从1970年1月1日0:0:0:000到现在的微秒数(UTC时间)
tt = (liQuadPart - EPOCHFILETIME) /10; return tt;#else
timeval tv;
gettimeofday(&tv, 0); return (int64_t)tvtv_sec 1000000 + (int64_t)tvtv_usec;#endif // _WIN32 return 0;
}
@echo off
set "ps_cmd=powershell -c "[Timespan]::FromMilliseconds([Environment]::TickCount)totalseconds""
for /f %%i in ('%ps_cmd%') do echo,开机到目前共:%%i秒
pause
以上就是关于用VC++获取系统时间几种方法全部的内容,包括:用VC++获取系统时间几种方法、windows 如何获得当前系统时间,精确到微秒、使用bat脚本,获取从系统启动到当前,这个时间段,而且返回的是秒数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)