2013-06-04 174 views
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. 

所有我有時間戳。我用盡了所有的解決方案。我想知道有沒有人可以指導我。或者可以建議我是否有其他解決方法。

謝謝。

+0

你需要輸出什麼? –

+0

「16小時15分鐘」的時間間隔 –

回答

2
  1. 暫時排序時間戳;
  2. 保持「總離線時間」累加器和一個整數計數器;
  3. 一一瀏覽事件列表;
  4. 如果計數器當前爲零,則將當前時間戳和先前時間戳的差值添加到累加器;
  5. 如果當前事件是「脫機」,則增加計數器;否則減少計數器。

這應該給你在累加器的適當時間。