我想检查系统时间是否处于特定值。比如时间是不是上午 11:15,或者如果时间晚于上午 11:00,我可以使用。
我试着用
CTime CurrentTime = CTime::GetCurrentTime();
但无法弄清楚如何比较它。
谢谢
我想检查系统时间是否处于特定值。比如时间是不是上午 11:15,或者如果时间晚于上午 11:00,我可以使用。
我试着用
CTime CurrentTime = CTime::GetCurrentTime();
但无法弄清楚如何比较它。
谢谢
使用额外的 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
}
我更喜欢 COleDateTime。时间以双精度表示。完整的数字代表从什么时候开始的天数。分数代表一天中的时间,所以 0.5 ist noon 0.75 是 6pm...
易于计算且易于比较。还有一个 COleDateTimeSpan 助手类。