2016-08-03 61 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

其实你的代码是正确的,如果所有使用_DateTime_参数与同一天。 – 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需要两个日期时间并比较它们。如果第一个在第二个之后或之后返回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) 

只是测试

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

相关问题