给定开始时间和以分钟为单位的间隔,确定当前时间是否是间隔

时间:2015-06-24 17:58:28

标签: c# vb.net datetime intervals

我在VB.NET工作,但只是寻找能给我以下内容的公式:

假设我有一个需要在开始时间和结束时间之间每隔x分钟启动一个进程。每一分钟我都需要确定是否需要启动流程。

所以,如果我有以下内容:

StartTime = 8:00:00 AM
EndTime = 11:00:00 PM
IntervalMinutes = 7

我有一个定时器设置为每1分钟发射一次。我需要确定当前时间是否是启动流程的时间。

目前我只使用一个循环,将IntervalMinutes添加到StartTime并将其与当前时间和EndTime进行比较。如果StartTime = CurrentTime则启动。如果StartTime>结束时间然后退出循环。我知道它很笨重但是有效。然而,当它在当天晚些时候到来时,它必须迭代更多的时间。我知道必须有一个公式,但我的大脑已经死于搜索和思考。

2 个答案:

答案 0 :(得分:1)

我的伪模数操作:

float tolerance = 0.0001f;

if((CurTime - StartTime) % IntervalMinutes <= tolerance)
{
    // Do something
}

答案 1 :(得分:0)

您可以预先计算应用程序启动时StartTime和EndTime之间的所有启动时间,将它们放入List中,然后每次计时器触发时您只需检查当前时间== launchList [0]。如果它确实启动并从列表中删除该条目。