1

我正在制作一个显示日历日视图的 android 应用程序,它看起来像一个列表,上面漂浮着彩色块,代表事件开始时间和结束时间。

我能够正确地做所有事情,但是我想根据相同时间或重叠时间或开始时间或结束时间在其他事件的开始时间和结束时间范围内的事件对事件进行排序。

开始时间和结束时间以毫秒为单位。

我将开始时间存储在 startTimeList 中,将结束时间存储在 endTimeList 中,并遍历列表以比较时间。

为此,我编写了这个方法来比较时间是否在另一个事件的开始或结束范围内

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

我通过上述方法输入了第一个事件的开始时间或结束时间,并将第二个事件的开始和结束时间作为第二个和第三个参数传递,我检查它是否为真,并使用变量计数来保存相似的开始和结束时间的计数。但是我的计数值是错误的。

还有其他好的方法吗?

4

1 回答 1

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;
}
于 2012-02-13T09:54:29.447 回答