如何比较Firsttime endTime和当前时间之间的两个时间?

时间:2015-01-06 09:10:42

标签: c# datetime timespan

任何人都可以形容我如何将两个给定时间与当前时间进行比较吗?

我的开始时间是上午11点,结束时间是下午1点。我有计时器只在每天上午11点到下午1点之间的时间点打勾。

我有以下代码,但它不能正常工作请检查。

TimeSpan StartHit = new TimeSpan(11, 0, 0);
TimeSpan EndHit = new TimeSpan(1, 0, 0);
if (DateTime.Now.TimeOfDay >= StartHit && DateTime.Now.TimeOfDay <= EndHit)
{
     //my task here
}

3 个答案:

答案 0 :(得分:3)

您需要在13中使用1作为一小时,而不是EndHit

TimeSpan StartHit = new TimeSpan(11, 0, 0);
TimeSpan EndHit = new TimeSpan(13, 0, 0);
if (DateTime.Now.TimeOfDay >= StartHit && DateTime.Now.TimeOfDay <= EndHit)
{
   //my task here
}

TimeOfDay property表示自午夜以来过去的时间间隔。如果您使用1作为一小时,则1 AM不是1 PM

当然,TimeSpan并未将这些值保留为1 AM1 PM,这些只是它们的字符串表示形式。它将它们保存为113的整数值。

答案 1 :(得分:2)

使用

TimeSpan EndHit = new TimeSpan(13, 0, 0);

TimeSpan(1,0,0)是凌晨1点

答案 2 :(得分:1)

此代码应该可以正常工作:

 DateTime time1 = DateTime.Now;
 DateTime time2 = Convert.ToDateTime("11:00:00 AM");
 DateTime time3 = Convert.ToDateTime("1:00:00 PM");

 if (DateTime.Compare(time1, time3) < 0 && DateTime.Compare(time1, time2) > 0)
 {
 }

例如,对于DateTime.Compare(time1,time3),如果Time1&gt; time3它返回1,如果time1&lt; time3返回-1,如果time1 = time3则返回0。 我希望这有用。