首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

急如果求两个系统时间(SYSTEMTIME)的时间差,或者两个DATE(double)的时间差?该如何处理

2012-04-11 
急!如果求两个系统时间(SYSTEMTIME)的时间差,或者两个DATE(double)的时间差?我现在存储了两个系统时间SYST

急!如果求两个系统时间(SYSTEMTIME)的时间差,或者两个DATE(double)的时间差?
我现在存储了两个系统时间SYSTEMTIME time1;SYSTEMTIME time2; 如何求这两个时间之间的差值?
如果将这两个系统时间使用SystemTimeToVariantTime转换成DATE(VS2005的定义:typedef DATE double)后又该如何求这两个时间的差值?
最后结果用秒或者毫秒表示都行

[解决办法]
一样的
时间本来就可以相加减的
如:

C/C++ code
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相减就可以了

热点排行