2013-06-04 6 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

Интервал как '16hr 15min' –

ответ

2
  1. Сортировка временных меток;
  2. поддерживать «общий автономный автономный аккумулятор» и целочисленный счетчик;
  3. перейдите по списку событий по одному;
  4. если счетчик в настоящее время равен нулю, добавьте разницу между текущей меткой времени и предыдущей временной меткой к аккумулятору;
  5. если текущее событие «отключено», счетчик приращений; иначе уменьшите счетчик.

Это должно дать вам соответствующее время в аккумуляторе.