0

我想检查系统时间是否处于特定值。比如时间是不是上午 11:15,或者如果时间晚于上午 11:00,我可以使用。

我试着用

   CTime CurrentTime = CTime::GetCurrentTime();

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

谢谢

4

2 回答 2

1

使用额外的 CTime 对象(此处):

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:00

if(CurrentTime>CTime(CurrentTime.GetYear(),CurrentTime.GetMonth(),CurrentTime.GetDay(),11,00,00))
{
   // Uhh yeah, past 11:00
}
于 2013-11-01T18:50:35.110 回答
0

我更喜欢 COleDateTime。时间以双精度表示。完整的数字代表从什么时候开始的天数。分数代表一天中的时间,所以 0.5 ist noon 0.75 是 6pm...

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

于 2013-11-02T15:30:14.213 回答