如何计算时间间隔

时间:2013-06-04 08:15:54

标签: java time jodatime

我需要以这样的方式获得时间间隔,以排除离线模式的时间间隔。让我按时间顺序解释一下。

示例:

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.

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

感谢。

1 个答案:

答案 0 :(得分:2)

  1. 暂时对时间戳进行排序;
  2. 维持“总离线时间”累加器和整数计数器;
  3. 逐个查看事件列表;
  4. 如果计数器当前为零,则将当前时间戳和上一个时间戳的差值添加到累加器;
  5. 如果当前事件“离线”,则递增计数器;否则减少柜台。
  6. 这应该在累加器中给你适当的时间。