如何将事件开始时间和结束时间与其他事件的开始时间和结束时间进行比较

时间:2012-02-13 09:16:26

标签: java android datetime android-calendar

我正在创建一个显示日历日视图的Android应用程序,它看起来像一个浮动在其顶部的彩色块的列表,它代表事件的开始时间和结束时间。

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

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

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

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

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

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

还有其他好方法吗?

1 个答案:

答案 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;
}