在Java中,可以使用Joda-Time库或者Java 8的新日期时间API来比较两个时间段是否有重叠。

使用Joda-Time库:

Joda-Time库提供了Interval类来表示时间段,可以使用其overlap方法来比较两个时间段是否有重叠。

示例代码:

import org.joda.time.Interval;
import org.joda.time.DateTime;

Interval interval1 = new Interval(new DateTime(2021, 6, 1, 10, 0), new DateTime(2021, 6, 1, 12, 0));
Interval interval2 = new Interval(new DateTime(2021, 6, 1, 11, 0), new DateTime(2021, 6, 1, 13, 0));

if (interval1.overlaps(interval2)) {
    System.out.println("时间段有重叠");
} else {
    System.out.println("时间段没有重叠");
}

使用Java 8的新日期时间API:

Java 8的新日期时间API提供了LocalDateTime和Period类来表示时间段,可以使用其isBefore、isAfter和overlaps方法来比较两个时间段是否有重叠。

示例代码:

import java.time.LocalDateTime;
import java.time.Period;

LocalDateTime start1 = LocalDateTime.of(2021, 6, 1, 10, 0);
LocalDateTime end1 = LocalDateTime.of(2021, 6, 1, 12, 0);
LocalDateTime start2 = LocalDateTime.of(2021, 6, 1, 11, 0);
LocalDateTime end2 = LocalDateTime.of(2021, 6, 1, 13, 0);

Period period1 = Period.between(start1.toLocalDate(), end1.toLocalDate());
Period period2 = Period.between(start2.toLocalDate(), end2.toLocalDate());

if (start1.isBefore(end2) && start2.isBefore(end1)) {
    System.out.println("时间段有重叠");
} else {
    System.out.println("时间段没有重叠");
}
``
java中比较两个时间段是否有重叠有好用的api推荐吗

原文地址: http://www.cveoy.top/t/topic/hurJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录