2012-02-13 108 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

相关问题