【问题标题】:How do I compare event start times and end times with other events start time and end time如何将活动开始时间和结束时间与其他活动开始时间和结束时间进行比较
【发布时间】:2012-02-13 09:16:26
【问题描述】:

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

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

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

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

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

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

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

还有其他好的方法吗?

【问题讨论】:

  • 解释你到底想要什么:按开始时间排序的事件(猜不是因为这很容易做到)、重叠事件组、与所有其他完全重叠的事件相关联的事件或只是一个检查两个事件是否有重叠?
  • 我想检查任何事件是否有共同的开始时间或结束时间,这可能是完全重叠的,或者它们可能在开始和结束时间上相等,或者开始时间可能已经结束范围但结束时间将在其他事件开始时间和结束时间的范围内,反之亦然。

标签: java android datetime android-calendar


【解决方案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;
}

【讨论】:

  • 非常感谢,我得到了预期的结果:)
猜你喜欢
  • 2016-09-24
  • 1970-01-01
  • 2012-06-29
  • 1970-01-01
  • 2015-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多