Posts Tagged ‘CTimeSpan’

VC++怎么取得前几天或者后几天的时间

Posted by 机器人 on 23rd 七月 2007 in c/c++

在VC++时我们可能使用CTime类的GetCurrentTime()方法来取得当前的时间,那么我们怎么去取得昨天的时间,或者是明天的时间呢?

可能有些朋友会认为取得明天的时间不就当前时间减去24*3600吗?取得明天的时间只是把减号改成加号不就成了吗?

如果我们这样写.

 

CTime nowTime,preOneTime,nextOneTime;
nowTime = CTime::GetCurrentTime();
preOneTime = nowTime - 24 * 3600;
nextOneTime = nowTime + 24 * 3600;

我当初也是想当然的认为该这样写,编译器都是报一些不明确的操作符之类的错误信息.

正确的写法我们应该使用CTimeSpan这个类,它是描述一个时间间隔的类.同样完成上面的功能,我们正确的写法如下:

 

CTime nowTime,preOneTime,nextOneTime;
CTimeSpan spanTime(1,0,0,0);//间隔时间为一天
nowTime = CTime::GetCurrentTime();
preOneTime = nowTime - spanTime;//昨天的时间
nextOneTime = nowTime + spanTime;//明天的时间

这样就能正确的得到昨天和明天的时间了.

机器人 2007-7-23 于 北京