2012-02-13 3 views
1

캘린더 데이 뷰를 보여주는 안드로이드 앱을 만들고 있는데, 이벤트를 나타내는 색칠 된 블록이있는 목록처럼 보입니다. 시작 시간과 종료 시간.이벤트 시작 시간과 종료 시간을 다른 이벤트 시작 시간과 종료 시간과 비교하는 방법

나는 모든 것을 올바르게 할 수 있었지만, 같은 시간 또는 겹치는 시간이나 다른 이벤트의 시작 시간과 끝 시간의 범위 내에서 시작 시간 또는 종료 시간을 기준으로 이벤트를 정렬하려고했습니다.

시작 시간과 종료 시간은 밀리 초입니다.

startTimeList에 시작 시간을, endTimeList에 종료 시간을 저장하고 시간을 비교하기 위해 목록을 반복합니다. 이러한 목적

나는 시간 I는 상기 방법에 의해 첫 번째 이벤트의 STARTTIME 또는 종료 시각에 넣고에 전달

public boolean isInRange(long timeToBeCompared,long startTime,long endTime){ 
    if(timeToBeCompared>=startTime&&timeToBeCompared<=endTime){ 
    return true; 
    } 
    return false; 
    } 

다른 이벤트의 시작 또는 끝 부분의 범위 내에 있는지를 비교하여,이 방법을 썼다 두 번째 및 세 번째 매개 변수로 두 번째 이벤트의 시작 및 종료 시간을 확인하고 비슷한 시작 및 종료 시간의 개수를 유지하기 위해 변수 카운트를 사용하는지 확인합니다. 그러나 내 카운트 값이 잘못되었습니다.

다른 유용한 접근 방법이 있습니까?

+0

것은 당신이 원하는 정확하게 설명 : 시간을 시작으로 분류 이벤트 (이 쉽게 이루어집니다 때문에 알아 맞추기) 중복 이벤트, 그룹을 (를) 완전히 다른 모든 이벤트와 연관된 이벤트를 그것과 겹치거나 두 사건이 겹치는 지 여부 만 확인하면됩니까? –

+0

어떤 이벤트가 시작 시간 또는 종료 시간을 공통으로 갖고 있는지 확인하고 싶습니다. 전체 겹침이 있거나 시작 시간과 종료 시간이 같거나 시작 시간이 범위를 벗어나지 만 종료 시간은 다른 이벤트의 시작 시간과 종료 시간, 그 반대의 경우도 마찬가지입니다. –

답변

1

이 코드를 사용해보십시오 :

/** Checks whether two intervals overlap. */ 
boolean overlap(long startTime1, long endTime1, long startTime2, long endTime2) { 
    if (endTime1 < startTime2 || startTime1 > endTime2) { 
     return false; 
    return true; 
} 
+0

고마워, 내가 예상 한 결과가있어 :) –

관련 문제