我要檢查,如果系統時間爲特定值。如果時間是早上11:15,或者如果時間晚於上午11:00,我可以使用。如何比較兩個不同的時間值
我試圖用
CTime CurrentTime = CTime::GetCurrentTime();
但無法弄清楚如何進行比較。
感謝
我要檢查,如果系統時間爲特定值。如果時間是早上11:15,或者如果時間晚於上午11:00,我可以使用。如何比較兩個不同的時間值
我試圖用
CTime CurrentTime = CTime::GetCurrentTime();
但無法弄清楚如何進行比較。
感謝
使用一個額外的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秒的「epsilon」,仍然有機會在這段時間內處理掉處理器(例如等待軟盤上的I/O操作)。沒有「epsilon」值保證足夠大,因此只需檢測從「之前」標記到「之後」的轉換。 – franji1
謝謝@Martin,是這種24小時格式還是應該單獨檢查am/pm? – user2937812
@ franji1你是完全正確的,我添加了一個樣本。我試圖貼近問題。 –
我喜歡的COleDateTime。時間表示爲雙倍。 完整的數字代表了自那以來的日子。分數代表了一天的時間,所以0.5北京時間中午0.75是下午6點...
便於計算和易於比較。還有一個COleDateTimeSpan輔助類。
的CTime具有比較運營商。 http://msdn.microsoft.com/en-us/library/fww7f4h3%28v=vs.90%29.aspx – drescherjm
@drescherjm感謝,我看到了,但我怎麼能解釋,如果時間是上午11點?那麼我想我可以比較當前時間和上午11點。 – user2937812