我有Hours
和Minutes
的地图,用于定义必须发生的事情的时间。它们与系统时间有关(我使用GetLocalTime
函数获得系统时间)。
m_StartTimes
只是一个简单的std::map<int, int>
。
我可以添加几个不同的时间,如
m_StartTimes[10] = 0; // 10:00 AM
m_StartTimes[15] = 30; // 3:30 PM
m_StartTimes[22] = 0; // 10:00 PM
然后我使用此循环来查看m_Events
内的哪个事件将被触发。
for (size_t i = 0; i < m_Events.size(); i++)
{
for (auto const & c : m_Events[i].m_StartTimes)
{
// Time to start the event.
if (st.wHour == c.first && st.wMinute == c.second)
{
// Start the event code.
}
else
{
// Display time left of nearest time
}
}
}
我所有的麻烦都是在时间不对的时候,它必须检测它将在下一个小时执行的时间。例如:如果我的系统时间是上午11:00,那么它将在下午3:30开始。如果我的系统时间是晚上8点,它将在下一个晚上10点开始。