如果将这两个系统时间使用SystemTimeToVariantTime转换成DATE(VS2005的定义:typedef DATE double)后又该如何求这两个时间的差值?
最后结果用秒或者毫秒表示都行
10 个解决方案
#1
直接用TDateTime 去加减
#2
我忘了说了,我是在VS2005下做COM组件开发,不是在C++Builder下
#3
一样的
时间本来就可以相加减的
如:
时间本来就可以相加减的
如:
SYSTEMTIME time1;
SYSTEMTIME time2;
int a = time1.wSecond - time2.wSecond ;//相差秒
int b = time1.wMinute - time2.wMinute ; //相差分
#4
VS2005一样可以直接加减
#5
呃。。。
如果这样计算的话太麻烦了,这还涉及到年份,月份,时间差值算起来有点麻烦的,有没有更简单一点的呢?
如果这样计算的话太麻烦了,这还涉及到年份,月份,时间差值算起来有点麻烦的,有没有更简单一点的呢?
#6
时,分,秒分别相减,然后乘以相应的秒倍数,如小时乘以3600,分钟乘以60,然后再相加。
#7
我现在就是按照妖哥的说的方法搞的,暂时顶一阵子,就是感觉不是很精确,万一时间要是跨月份,甚至不巧刚好还跨个年份了呢,这个就不能这么算了,所以现在想找个比较简单准确的计算方法。
用SystemTimeToVariantTime转换成double后两个相减,不知道能不能有什么办法换算成秒的?
用SystemTimeToVariantTime转换成double后两个相减,不知道能不能有什么办法换算成秒的?
#8
可以参考一下VCL中DateUtils.pas单元中,SecondsBetween函数的实现。
#9
学习了,顶
#10
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相减就可以了
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相减就可以了
#1
直接用TDateTime 去加减
#2
我忘了说了,我是在VS2005下做COM组件开发,不是在C++Builder下
#3
一样的
时间本来就可以相加减的
如:
时间本来就可以相加减的
如:
SYSTEMTIME time1;
SYSTEMTIME time2;
int a = time1.wSecond - time2.wSecond ;//相差秒
int b = time1.wMinute - time2.wMinute ; //相差分
#4
VS2005一样可以直接加减
#5
呃。。。
如果这样计算的话太麻烦了,这还涉及到年份,月份,时间差值算起来有点麻烦的,有没有更简单一点的呢?
如果这样计算的话太麻烦了,这还涉及到年份,月份,时间差值算起来有点麻烦的,有没有更简单一点的呢?
#6
时,分,秒分别相减,然后乘以相应的秒倍数,如小时乘以3600,分钟乘以60,然后再相加。
#7
我现在就是按照妖哥的说的方法搞的,暂时顶一阵子,就是感觉不是很精确,万一时间要是跨月份,甚至不巧刚好还跨个年份了呢,这个就不能这么算了,所以现在想找个比较简单准确的计算方法。
用SystemTimeToVariantTime转换成double后两个相减,不知道能不能有什么办法换算成秒的?
用SystemTimeToVariantTime转换成double后两个相减,不知道能不能有什么办法换算成秒的?
#8
可以参考一下VCL中DateUtils.pas单元中,SecondsBetween函数的实现。
#9
学习了,顶
#10
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相减就可以了
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相减就可以了