2013-06-04 5 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. 카운터가 현재 0이면 현재 시간 소인과 이전 시간 소인의 차이를 누적기에 더하십시오.
  5. 현재 이벤트가 "오프라인 상태"인 경우 카운터가 증가합니다. 그렇지 않으면 카운터를 감소시킵니다.

누적기에 적절한 시간을 제공해야합니다.

관련 문제