2012-02-13 16 views
1

私は、カレンダーの日のビューを表示するアンドロイドアプリケーションを作成しています。開始時刻と終了時刻。イベントの開始時刻と終了時刻を他のイベントの開始時刻と終了時刻と比較するには

私はすべてを正しく行うことができましたが、同じ時間または重複した時間、または他のイベントの開始時間と終了時間の範囲内の開始時間または終了時間を持つイベントに基づいてイベントを並べ替える必要がありました。

開始時間と終了時間はミリ秒です。

startTimeListに開始時刻を、endTimeListに終了時刻を格納し、リストを反復して時刻を比較します。この目的のため

は、私は時間が私は上記の方法を介して第1のイベントのSTARTTIMEまたは終了時刻に入れて渡す

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

別のイベントの開始または終了の範囲内にある場合と比較この方法を書きました2番目と3番目のパラメータとして2番目のイベントの開始時刻と終了時刻を設定し、trueの場合はそれをチェックし、同様の開始時刻と終了時刻のカウントを保持するには変数countを使用します。しかし私のカウント値は間違っています。

他にも良いアプローチがありますか?

+0

正確に何をしたい説明:開始時間順にソートイベント(これは容易に行われるためではないと思います)、オーバーラップするイベントのグループ、完全に他のすべてのイベントに関連付けられているイベント2つのイベントにオーバーラップがあるかどうかチェックするだけですか? –

+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

ありがとう、私は期待された結果を得た:) –

関連する問題