`
hanyezhiyu8
  • 浏览: 154108 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

对SYSTEMTIME加减操作

阅读更多
#define _SECOND ((ULONGLONG) 10000000)
#define _MINUTE (60 * _SECOND)
#define _HOUR   (60 * _MINUTE)
#define _DAY    (24 * _HOUR)

void CTestClass::ChangeTime(SYSTEMTIME& sysTime)
{ 
    GetLocalTime(&sysTime);

    FILETIME ft={0}; 
    SystemTimeToFileTime(&sysTime, &ft); 

    ULONGLONG qwResult;
    // Copy the time into a quadword.
    qwResult = (((ULONGLONG) ft.dwHighDateTime) << 32) + ft.dwLowDateTime;
    // minus 2 hours.
    qwResult -= 2 * _HOUR;
    // Copy the result back into the FILETIME structure.
    ft.dwLowDateTime  = (DWORD) (qwResult & 0xFFFFFFFF );
    ft.dwHighDateTime = (DWORD) (qwResult >> 32 );

    FileTimeToSystemTime(&ft, &sysTime);
} 

 

参考网址:http://support.microsoft.com/kb/188768

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics