Java判断时间段是否重叠
需求
当前有个核酸自助下单项目,要控制设置时间段内下单数量,每个时间段不能重叠
解决方法
如果要想当前时间段不与比较多时间段重复那么应该满足:
- 当前开始时间大于要比较时间段的结束时间或者当前结束时间小于要比较时间段的开始时间。
代码
/**
* @param s1
* @param e1
* @param s2
* @param e2
* @param isStrict 是否严格遵守不能重叠,例如如果为true 那么8:00-8:30 和8:30-9:00 时间段比较为true
* @return true重叠。false不重叠
*/
public static boolean isOverlap(LocalTime s1, LocalTime e1, LocalTime s2, LocalTime e2, boolean isStrict) {
if (s1.isAfter(e1) || s2.isAfter(e2)) {
throw new DateTimeException("endDate不能小于startDate");
}
if (isStrict) {
if (!(s1.compareTo(e2) >0 || e1.compareTo(s2) < 0)) {
return true;
}
} else {
if (!(s1.compareTo(e2) >=0 || e1.compareTo(s2) <= 0)) {
return true;
}
}
return false;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具