计算在某些时间段内暂停的超时

时间:2014-02-21 15:42:04

标签: c# .net datetime methods

我的任务是编写一个方法,在给定开始日期时间和超时(以分钟为单位)的情况下计算超时应该发生的日期时间。

但是,超时只能在特定日期的某些时间“打勾”,这取决于非刻度开始日期时间,非刻度停止日期时间和开放日期列表。

例如,给出以下内容:

  • 开始日期时间:星期五21/02/2014 15:00
  • 超时:720分钟(12小时)
  • 营业日:周一,周二,周三,周四,周五
  • 非勾选开始时间:09:00
  • 非刻度停留时间:18:30

计算的超时日期时间应为2014年2月24日星期一17:30(因为周六和周日不会打勾)。

我是用C#编写的,但它在技术上与语言无关。

有这种'优雅'的方式吗?或者仅仅是循环并添加额外时间的情况,其中确定超时应该停止滴答?

1 个答案:

答案 0 :(得分:0)

如果你设置一个计时器来勾选每个句点(例如每秒),你可以在计时器的回调处理程序中增加一些刻度。

我会采用以下方式之一。无论如何我都可以每秒运行回调,并且在回调中我可以检查我是否要增加或跳过此期间的增量(在非滴答时间段内)。

否则,无论什么时候我都可以递增,然后检查非滴答时段是否接近,如果是,则调整定时器的回调时间以运行下一个回调 < / em>非滴答时间段已过。