2012-02-13 75 views
1

我正在製作一個顯示日曆日視圖的Android應用程序,它看起來像一個列表,其中包含浮動在其上方的代表事件的彩色塊開始時間和結束時間。如何將事件開始時間和結束時間與其他事件的開始時間和結束時間進行比較

我能夠正確地做所有事情,但是我想根據相同的時間或重疊的時間或事件的開始時間或結束時間在其他事件的開始時間和結束時間範圍內對事件進行排序。

開始時間和結束時間以毫秒爲單位。

我在startTimeList中存儲開始時間,並在endTimeList中存儲結束時間,並遍歷列表來比較時間。

爲了這個目的,我寫這個方法,其比較,如果時間是

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

我把第一事件的開始時間或結束時間通過上述方法,並通過在另一個事件的開始或結束的範圍內第二個事件的開始和結束時間作爲第二個和第三個參數,我檢查它是否爲真,並使用變量計數來保存類似的開始和結束時間的計數。但是我的計數值是錯誤的。

有沒有其他的好方法?

+0

解釋你想要什麼:通過啓動時間排序的事件(想不會,因爲這是很容易做到)重疊的事件,羣體,與所有其他事件完全關聯的事件與它重疊還是隻檢查兩個事件是否有重疊? – 2012-02-13 09:37:51

+0

我想檢查是否有任何事件具有共同的開始時間或結束時間,它可能是完全重疊的,或者它們在開始和結束時間可能是相等的,或者開始時間可能超出範圍,但結束時間將是在其他事件的開始時間和結束時間的範圍內,反之亦然。 – 2012-02-13 09:41:34

回答

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

非常感謝,我得到了預期的結果:) – 2012-02-13 12:24:44

相關問題