如何比较两个不同的时间值

时间:2013-11-01 18:40:27

标签: c++ visual-studio-2010 visual-c++ time mfc

我想检查系统时间是否为特定值。如果时间是上午11点15分,或者如果时间晚于上午11点我可以使用。

我尝试使用

   CTime CurrentTime = CTime::GetCurrentTime();

但无法弄清楚如何比较它。

由于

2 个答案:

答案 0 :(得分:1)

使用其他CTime对象(Here):

CTime CurrentTime=CTime::GetCurrentTime();

if(CurrentTime==CTime(2013,11,1,20,15,00))
{
    // Do that...
    Sleep(0);
}

但与时间跨度比较总是更安全:

if((CurrentTime>CTime(2013,11,1,20,15,00))&&(CurrentTime<CTime(2013,11,1,20,15,05)))
{
    // Do that...
    Sleep(0);
}

在那种情况下,我花了5秒钟。通常你永远不会达到准确的时间,所以第二个例子更安全。

至少,回答你的问题,如果你想知道它的过去11点何时

if(CurrentTime>CTime(CurrentTime.GetYear(),CurrentTime.GetMonth(),CurrentTime.GetDay(),11,00,00))
{
   // Uhh yeah, past 11:00
}

答案 1 :(得分:0)

我更喜欢COleDateTime。时间表示为双倍。 全数代表自以往的日子。分数表示一天中的时间,因此0.5中午0.75是下午6点......

易于计算且易于比较。还有一个COleDateTimeSpan助手类。