急!如果求两个系统时间(SYSTEMTIME)的时间差,或者两个DATE(double)的时间差?
我现在存储了两个系统时间SYSTEMTIME time1;SYSTEMTIME time2; 如何求这两个时间之间的差值?
如果将这两个系统时间使用SystemTimeToVariantTime转换成DATE(VS2005的定义:typedef DATE double)后又该如何求这两个时间的差值?
最后结果用秒或者毫秒表示都行
[解决办法]
一样的
时间本来就可以相加减的
如:
SYSTEMTIME time1;SYSTEMTIME time2;int a = time1.wSecond - time2.wSecond ;//相差秒int b = time1.wMinute - time2.wMinute ; //相差分
[解决办法]
时,分,秒分别相减,然后乘以相应的秒倍数,如小时乘以3600,分钟乘以60,然后再相加。
[解决办法]
可以参考一下VCL中DateUtils.pas单元中,SecondsBetween函数的实现。
[解决办法]
SystemTimeToFileTime
It is not recommended that you add and subtract values from the FILETIME structure to obtain relative times. Instead, you should
Copy the resulting FILETIME structure to a ULARGE_INTEGER structure.
Use normal 64-bit arithmetic on the ULARGE_INTEGER value.
用QuadPart相减就可以了