小编典典

检查两个日期段是否重叠

java

  • 我有两个日期范围,(start1,end1)::: >> date1 &&(start2,end2)::: >> date2。
  • 我想检查两个日期是否为OverLaped。

  • 我的流程图 假定“ <> =”运算符对于比较是有效的

    boolean isOverLaped(Date start1,Date end1,Date start2,Date end2) {
    if (start1>=end2 && end2>=start2 && start2>=end2) {
        return false;
    } else {
        return true;
    }
    

    }

  • 任何建议将不胜感激。


阅读 212

收藏
2020-09-28

共1个答案

小编典典

您可以为此使用Joda-Time

它提供Interval指定开始时刻和结束时刻的类,并可以检查与的重叠overlaps(Interval)

就像是

DateTime now = DateTime.now();

DateTime start1 = now;
DateTime end1 = now.plusMinutes(1);

DateTime start2 = now.plusSeconds(50);
DateTime end2 = now.plusMinutes(2);

Interval interval = new Interval( start1, end1 );
Interval interval2 = new Interval( start2, end2 );

System.out.println( interval.overlaps( interval2 ) );

版画

true

因为第一个间隔的末尾介于第二个间隔的末尾之间。

2020-09-28