The GetLocalTime function retrieves the current local date and time.void GetLocalTime( LPSYSTEMTIME lpSystemTime );typedef struct _SYSTEMTIME { WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute; WORD wSecond; WORD wMilliseconds; } SYSTEMTIME, *PSYSTEMTIME;
GetTickCount()
还有相关的函数和使用方法请查MSDN
也可以在网上自己搜一下
只能用来计算时间差的还是ctime最好拉
QueryPerformanceCount
用cpu计算时间
LARGE_INTEGER * lpFrequency );BOOL QueryPerformanceCounter(
LARGE_INTEGER * lpPerformanceCount );
LPSYSTEMTIME lpSystemTime
);typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME;
GetLocalTime(&CurTime);
CurTime.wMilliseconds不过毫秒不是很准,大约是以10毫秒为单位的
SYSTEMTIME stOld, stNew ;
::GetLocalTime (&stOld) ; //首先取得目前的本地时间 stNew.wYear = 1900 ;
stNew.wMonth = 1 ;
stNew.wDay = 1 ;
stNew.wHour = 0 ;
stNew.wMinute = 0 ;
stNew.wSecond = 0 ;
stNew.wMilliseconds = 0 ;
::SystemTimeToFileTime (&stNew, &ftNew); /* 将SYSTEMTIME结构设定为1900年1月1日午夜(0时)。
并将这个SYSTEMTIME结构传递给SystemTimeToFileTime,将此结构转化为FILETIME结构。
FILETIME实际上只是由两个32位元的DWORD一起组成64位元的整数,
用来表示从1601年1月1日至今间隔为100奈秒(nanosecond)的间隔数。 */ LARGE_INTEGER li ; //64位大整数
li = * (LARGE_INTEGER *) &ftNew;
li.QuadPart += (LONGLONG) 10000000 * m_ulTime;
ftNew = * (FILETIME *) &li;
::FileTimeToSystemTime (&ftNew, &stNew);
下面一些常用的时间函数,你自已看看吧CompareFileTime 比较两文件时间
GetFileTime 得文件建立,最后访问,修改时间
GetLocalTime 得当前本地时间
GetSystemTime 得当前系统时间
GetTickCount 得windows启动至现时毫秒
SetFileTime 设置文件时间
SetLocalTime 设置本地时间
SetSystemTime 设置系统时间 在一些计算机硬件系统中,包含有高精度运行计数器,利用它可以获得高精度定时间隔,其精度与 CPU 的时钟频率有关。采用这种方法的步骤如下: 1、首先调用 QueryPerformanceFrequency 函数取得高精度运行计数器的频率f。单位是每秒多少次(n/s),此数一般很大。
2、在需要定时的代码的两端分别调用 QueryPerformanceCounter 以取得高精度运行计数器的数值n1,n2。两次数值的差值通过f换算成时间间隔,t=(n2-n1)/f。