2

我需要以排除离线模式的时间间隔的方式获取时间间隔。让我在时间轴上为您解释一下。

例子:

A: |---------------------------------------------------------------------------|
B:     |----|                    |-------------|
C:                                         |--------------|
D: |===|    |====================|                        |====================|

`A` is the time line.
`B` is a offline time of `B`
`C` is a offline time of `C` notice that they are overlapping with `B`
`D` is the time to be billed.

我只有时间戳。我用完了所有的解决方案。我想知道是否有人可以指导我是否有出路。或者如果有其他方法可以建议我。

谢谢。

4

1 回答 1

3
  1. 对时间戳进行时间排序;
  2. 维护“总离线时间”累加器和一个整数计数器;
  3. 一一浏览事件列表;
  4. 如果计数器当前为零,则将当前时间戳和前一个时间戳的差添加到累加器中;
  5. 如果当前事件是“离线”,则增加计数器;否则递减计数器。

这应该会给您在累加器中的适当时间。

于 2013-06-04T08:20:31.403 回答