如何查找c#中当前时间是否落在时间范围内

时间:2016-08-03 18:49:12

标签: c#

我是c#的新手,我使用的是Windows窗体。

任何人都知道如何在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");
 }

请帮帮我。谢谢

3 个答案:

答案 0 :(得分: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 :(得分: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");

答案 2 :(得分: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");
}