请问两个SYSTEMTIME如何相减? 自己写函数来分析的话,那效率也太低了.MSDN查了半天也没有结果,请教各位了!PS:只需年月日即可 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CTime time1(CTime::GetCurrentTime());CTime time2(CTime::GetCurrentTime());CSpanTime spantime = time1 - time2; 把SYSTEMTIME类型转成CTime,然后在减。SYSTEMTIME sysTime1,sysTime2;sysTime1 = ....;sysTime2 = ....;CTime time1(sysTime1);CTime time2(sysTime2);CSpanTime spantime = time1 - time2; 用GetLocalTimer()吧,或者GetCurrentTime()得到的值再用localtime()转换一下。如果你要研究转换的源码,那就debug进去吧,比自己写省力多了。 靠,没有注意看题,被第一个回答的家伙误导了。SYSTEMTIME是个结构,减相应的项就可以了WORD result_year = systime1.mYear - systime2.mYear;... 谢谢各位,不用MFC的话,有没有办法? long find;CString ss;CTime t; ss.Format("%d",t); find = atol(ss);这样转化为整型,那就爱做什么都可以了 声明两个SYSTEMTIME 变量,st1,st2;分别赋予值后,直接比较其年份st1.wYear;再判断其是否闰年,最后在根据各自的wMonth就自然知道st1.wDay-st2.wDay 的值了。 去看看SYSTEMTIME 结构吧,就什么都明白了。 我知道你不想用MFCSYSTEMTIME的相减问题我也遇到过,曾经自己写了一个函数,但显然你自己还要花精力测试它的正确性。还有一个方法不用自己写,就是不用SYSTEMTIME,用标准c库的time_t和struct tm,SYSTEMTIME和struct tm基本是一样的,所以说微软是个恶毒小人方法如下例:time_t sys_time , ret_time;struct tm *local_time ;//系统时刻取得time( &sys_time ); local_time = localtime( &sys_time );//1000天以前的时刻取得local_time->tm_mday = local_time->tm_mday - 1000;ret_time = mktime( local_time );//注意struct tm结构里年,月,日,小时,分,秒是mktime时的有效值,其他如星期几等不起作用 求高手指点,如何设置选中区域颜色变成蓝色并且还能看见区域中的字 最简单的多线程程序调试起来诡异 关机函数为什么不行呢? 用CFormView创建拆分窗口的问题 求VC6的MSDN下载地址 如何直接获得鼠标的移动? 简单的循环退出的问题,在线等待..... 关于打印机监控的问题 如何让程序自己复制自己? 在VC中如何实现全屏幕程序,像游戏一样,没有标题栏等等 求求大家了,对话框上有两个按扭,正常时是一种状态,鼠标移上去时是一种状态,要贴图,怎么实现呀,有简单例子吗,能告诉我吗,做不出我 指针的问题,请高手指教...
CTime time2(CTime::GetCurrentTime());
CSpanTime spantime = time1 - time2;
sysTime1 = ....;
sysTime2 = ....;CTime time1(sysTime1);
CTime time2(sysTime2);
CSpanTime spantime = time1 - time2;
如果你要研究转换的源码,那就debug进去吧,比自己写省力多了。
SYSTEMTIME是个结构,减相应的项就可以了
WORD result_year = systime1.mYear - systime2.mYear;
...
CString ss;
CTime t;
ss.Format("%d",t);
find = atol(ss);这样转化为整型,那就爱做什么都可以了
声明两个SYSTEMTIME 变量,st1,st2;分别赋予值后,直接比较其年份
st1.wYear;再判断其是否闰年,最后在根据各自的wMonth就自然知道
st1.wDay-st2.wDay 的值了。
去看看SYSTEMTIME 结构吧,就什么都明白了。
SYSTEMTIME的相减问题我也遇到过,曾经自己写了一个函数,但显然你自己还要花精力测试它的正确性。还有一个方法不用自己写,就是不用SYSTEMTIME,用标准c库的time_t和struct tm,SYSTEMTIME和struct tm基本是一样的,所以说微软是个恶毒小人方法如下例:time_t sys_time , ret_time;
struct tm *local_time ;//系统时刻取得
time( &sys_time );
local_time = localtime( &sys_time );//1000天以前的时刻取得
local_time->tm_mday = local_time->tm_mday - 1000;
ret_time = mktime( local_time );//注意struct tm结构里年,月,日,小时,分,秒是mktime时的有效值,其他如星期几等不起作用