-1

我有一个应用程序,我每 30 分钟使用 Windows 调度程序运行一次,我还有一个配置文件,它是一个名为 config 的数据表。我正在浏览每一行,其中有一个时间表列,如果时间在 30 分钟窗口内,则程序应该运行整个程序。时间窗口是 12:00:00 和 12:30:00 等等,可以看出我正在检查当前时间和行时间,可以看出我将如何让它运行?

我尝试了下面的 if 语句,看看它是否运行只是当前时间,它没有任何想法为什么会这样

TimeSpan time = DateTime.Now.TimeOfDay;

TimeSpan runningTime = DateTime.Parse(dr["scheduledTime"].ToString()).TimeOfDay;

if (time == runningTime)
4

1 回答 1

1

如果时间不是整点或半点,则 if 语句中的代码将不会运行,请尝试以下操作

TimeSpan time = DateTime.Now.TimeOfDay;

TimeSpan runningTime = DateTime.Parse(dr["scheduledTime"].ToString()).TimeOfDay;

if (time >= runningTime && time <= (runningTime + new TimeSpan(0, 30, 0)))

当您的程序运行时,DateTime.Now.TimeOfDay将包含类似于 的13:27:37内容,显然不等于13:00:00。因此,您要做的就是检查当前时间是否在 30 分钟窗口内。我们通过检查自午夜以来经过的当前时间(这是.TimeOfDayaDateTime给您的时间)大于或等于TimeSpan您从您的 检索到的自午夜以来经过的时间DataTable,并且它也小于或等于同一时间段加上 30 分钟。

于 2013-08-30T12:23:04.573 回答