Winapi 获取两个SYSTEMTIME变量之间的差

Winapi 获取两个SYSTEMTIME变量之间的差,winapi,systemtime,Winapi,Systemtime,例如,我的代码如下 void main() { SYSTEMTIME LocalTime_Start = { 0 }; GetLocalTime( &LocalTime_Start ); SYSTEMTIME LocalTime_End = { 0 }; // Some program Statements GetLocalTime( &LocalTime_End );

例如,我的代码如下

void main()

{

       SYSTEMTIME LocalTime_Start = { 0 };

        GetLocalTime( &LocalTime_Start );

        SYSTEMTIME LocalTime_End = { 0 };
        // Some program Statements

         GetLocalTime( &LocalTime_End );

         // Now i want difference of two i.e.
         // can i do as following
         SYSTEMTIME localTime_diff = LocalTime_End - LocalTime_Start;
         // guys please let me know how to achieve that asap...thanks a lot in advance
}

使用将两个SYSTEMTIME结构转换为FILETIME

FILTETIME ft;
::SystemTimeToFileTime(&sysTime, &ft);
使用以下命令将FILETIME转换为ULONGLONG:

ULARGE_INTEGER uli;
uli.LowPart = ft.dwLowDateTime ;
uli.HighPart= ft.dwHighDateTime;
ULONGLONG uft= uli.QuadPart;

减去ULONGLONGs得到以Hectonanosc为单位的时间差

在这种情况下不适用,但如果输入SYSTEMTIME表示零时间(即其所有成员均为0),SystemTimeToFileTime将失败。