我每天都有一个时间表:
8点30分至下午5:30
现在我有停机时间:
2017-03-01 10:00 AM至2017-03-02 1:00 PM
我想计算这两个日期之间的总停机时间,这些日期属于上面提供的时间表
答案 0 :(得分:1)
将此问题分解为单独的部分将使其易于解决。您可以总结第一天,最后一天和中间所有日子的停机时间。
a =计算第一天的停机时间是min(0,[schedule end time] - [max(停机时间,计划开始时间)]。)
b =最后一天是分钟(0,[分钟(停工结束时间,日程结束时间) - [日程安排开始时间])。
c =之间的所有日期都是:([停工结束日] - [停工开始日] -1)*([1天内的时间表])
a + b + c =计划中的停机时间