日期时间检查特定时间

时间:2012-07-08 07:47:18

标签: c#

我有一个Windows服务,我想插入一个计时器。如何检查当前时间是否为9:00 AM? 我希望我的服务每天检查一下。非常感谢你

我的尝试:

Datetime dt=Datetime.parse("09:00:00 everyday");
if(datetime.now -dt ==0)
{
   //fire event
}
但是,这对我有点狡猾。

4 个答案:

答案 0 :(得分:0)

您需要制作一个计时器并将其间隔设置为从现在到明天9:00 AM之间的时间间隔。下次计时器滴答时,再次以相同方式设置间隔。 你应该使用这个Timer类: http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx

答案 1 :(得分:0)

请使用DateTime.UtcNow.Hour查看当前时间

通过使用UtcNow,您将获得一个DateTime对象,该对象设置为计算机上的当前日期和时间,表示为协调世界时(UTC)。

答案 2 :(得分:0)

var now = DateTime.Now;
var today = now.Date;
var nineAm = today.AddHours(9);

TimeSpan ts = nineAm - now;

var timeInMillisecondsTill9Am = ts.Milliseconds;

If(timeInMillisecondsTill9Am==0)
{
 //your code goes here
}

答案 3 :(得分:0)

由于您不知道有人可能会关闭或重启您的计算机或服务,因此您需要确保使用足够强大的方法来处理这些类型的中断。

如果 > > > 。如果是这样,您将上次运行日期更新为日期(可能在简单的文本文件中),然后运行“上午9:00”任务。通过这种方式,您的任务每天只运行一次,相当接近上午9点,并且在重新启动时非常强大。

你需要使用一个标准的.NET计时器来触发检查 - 如果你足够聪明,你可以在上午9点之后点火。

如果这是一个很好的解决方案,请告诉我。