2016-08-03 13 views
0

で確認できます。私はC#を初めて使用しており、Windowsフォームを使用しています。現在時刻が時間範囲内にあるかどうかをC#

現在の時刻がC#で時間範囲内にあるかどうかを知る方法はありますか。

たとえば、現在の時刻が午前12時から午前4時の間であるかどうかをチェックします。

私は、次のコードを試してみましたが、現在の時刻が間違っていた午後6時であるとき、それは私に本当の声明を与える:

if (DateTime.Now >= DateTime.Today.AddHours(0) && 
    DateTime.Now <= DateTime.Today.AddHours(4)) 
{ 
    MessageBox.Show("time is between 12am and 4am"); 
} 

私を助けてください。ありがとうございます

+0

をテストしました。 – Jackdaw

答えて

2
TimeSpan start = new TimeSpan(00, 0, 0); //12 o'clock am 
    TimeSpan end = new TimeSpan(04, 0, 0); //4 o'clock am 
    TimeSpan now = DateTime.Now.TimeOfDay; 
    if ((now > start) && (now < end)) 
    { 
    MessageBox.Show("time is between 12am and 4am"); 
    } 
1

DateTime.Compareは2つのdatetimesを取り、それらを比較します。最初のものが2番目のものよりも後であるか、後のものであれば1を返します。秒より前の場合は-1を返します。それ以外の場合は0

if (DateTime.Compare(DateTime.Now, DateTime.Today.AddHours(0)) > 0 && DateTime.Compare(DateTime.Now, DateTime.Today.AddHours(4)) < 0) 
{ 
    MessageBox.Show("time is between 12am and 4am"); 
} 
2
if(DateTime.Now.Hour >= 0 & DateTime.Now.Hour < 4) 

を返すだけで、すべての使用_DateTime_パラメータが同じ日に関連している場合は実際にあなたのコードが正しい

Debug.WriteLine(DateTime.Now.Hour); 
if(DateTime.Now.Hour >= 0 & DateTime.Now.Hour < 4) 
    Debug.WriteLine("in"); 
else 
    Debug.WriteLine("out"); 
+0

私は試しましたが、間違った結果をもたらします。だから時間が今8時であれば、それでも真実のステートメントを与えます。 – Kate

+0

@Kate私はちょうどテストして、それは私のために働く – Paparazzi

関連する問題