这应该是微不足道的,但今晚我的大脑遇到了障碍。
我有一个将运行一次的进程,然后每小时偏移的每 n
分钟。
EG,15 分钟表示按小时(例如 1)运行,然后是 1:15、1:30、1:45 等。
如果执行间隔为15,则初始执行时间为1:07,运行至1:11,等待下一次执行时间为4分钟。
如果执行间隔为15,则初始执行时间为1:07,运行至1:16,等待下一次执行时间为14分钟(执行时间不重叠)。
那么,在每次运行(长度不同)之后,我们如何计算等待下一次执行的分钟数?
我不会在这里放任何示例代码,因为我没有任何东西可以通过我的单元测试(我不是脑残到不能写那些 !)。
我已将其标记为 C#
,因为这是我编写代码的内容,但我希望该解决方案与语言无关。
最佳答案
好吧,就在我点击提交问题时,我顿悟了。
给定 currentMinute
>= 0 和 executionInterval
>= 1
绝对值((currentMinute modulo executionInterval)- executionInterval)
或者,在 C# 中
return Math.Abs((currentMinute % executionInterval) - executionInterval);
到目前为止,我的单元测试通过了这个。所以,要么它是正确的,要么我没有足够的测试....
关于c# - 计算下一次运行前的分钟数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5494793/