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

Given a start time and an interval in minutes, determine if current time is an interval

我在 VB.NET 工作,但我只是在寻找一个可以提供以下内容的公式:

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

所以如果我有以下内容:

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

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

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

我的伪模运算:

float tolerance = 0.0001f;

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

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