システム時刻が特定の値になっているかどうかを確認したい。時刻が午前 11 時 15 分かどうか、または時刻が午前 11 時より遅い場合に使用できます。
使ってみた
CTime CurrentTime = CTime::GetCurrentTime();
しかし、それを比較する方法を理解できませんでした。
ありがとう
システム時刻が特定の値になっているかどうかを確認したい。時刻が午前 11 時 15 分かどうか、または時刻が午前 11 時より遅い場合に使用できます。
使ってみた
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秒のスパンを取りました。通常、正確な時間に到達することはないため、2 番目の例の方が安全です。
少なくとも、11:00 を過ぎた時刻を知りたい場合は、質問に答えるために
if(CurrentTime>CTime(CurrentTime.GetYear(),CurrentTime.GetMonth(),CurrentTime.GetDay(),11,00,00))
{
// Uhh yeah, past 11:00
}
COleDateTime の方が好きです。時間は double として表されます。完全な数字は、それ以降の日数を表します。分数は時刻を表すため、0.5 は正午、0.75 は午後 6 時です...
計算しやすく、比較しやすい。COleDateTimeSpan ヘルパー クラスもあります。