当前位置: 首页 > 面试题库 >

检查两个日期段是否重叠

子车雅珺
2023-03-14
问题内容
  • 我有两个日期范围,(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;
    }
    

    }

  • 任何建议将不胜感激。


问题答案:

您可以为此使用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

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



 类似资料:
  • 问题内容: 我需要检查数据库中是否还有两个日期和另外两个日期。 我的数据库看起来像这样 在我的查询中,我指定范围:开始日期和结束日期让我们对其进行如下分配: 上面应该归还我所有的记录,因为所有的时间都超过了时间跨度。 但是我无法使查询工作:/ 我已经尝试了以下查询,但是没有运气: 这将返回两个结果: 1和3 我究竟做错了什么? 问题答案: 我相信以下条件会匹配所有可能的重叠情况。 除非您声明了非逻

  • 问题内容: 我想看看我从数据库读取的时间是否与用户提供的时间重叠。 我的数据库如下所示: 我的代码如下所示: 如果我故意输入两次重叠的时间,则不会回显错误。我究竟做错了什么? 问题答案: 当且仅当以下条件中的至少一个成立时,两个时间段P1和P2重叠: P1在P2的开始和结束之间开始() P2在P1的开始和结束之间开始() 这将捕获部分重叠的期间以及一个完全覆盖另一个期间的期间。如果两个周期重叠,则

  • 问题内容: 我有这段代码将字符串转换为日期对象 我想知道如果当前日期落在2天我的阵列中得到之间和 问题答案: 迅捷2 你已经在你的日期字符串转换的代码来。假设您在和中都有两个日期,那么您要做的就是检查当前日期是否在以下日期之间: 编辑: 如果要执行 包含 范围检查,请使用以下条件:

  • 以下是场景: 我有一个日期和一个不同的日期格式。示例: 日期:2016-10-19 日期格式:“DD-MM-YYYY”。 我需要检查这个日期是否有效。 我尝试过跟踪事情 d.isValid()每次返回false。Moment.js解析给定格式的日期吗? 然后我尝试先在中格式化日期,然后将其传递给矩。js: 现在<代码>日期。isValid()给了我想要的结果,但现在是时候了。js日期对象创建两次。

  • 问题内容: 我从Stackoverflow那里获得了这段代码,并对其进行了少许更改以适应今天的日期。 我想检查今天是否适合两个日期之间。但这是行不通的。我想念什么? 问题答案: 编辑: 使用<=或> =来计算今天的日期 这是您的代码的正确答案。只需使用strtotime()php函数

  • 我有一个动态的日期列表,比如说他们相隔3个月,但是这些日期可能会变为相隔5个月、2个月等等 然后我有一个相隔一个月的日期列表。我需要做的是检查相隔1个月的列表中的哪个日期介于动态列表中的哪个月之间。 例如: 动态列表 2012年6月1日 静态列表 2012年6月1日 2012年7月1日 2012年8月1日 2012年9月1日 2012年10月1日 2012年12月1日 2013年1月1日 2013