检查两个时间段是否有时间重叠(允许重叠一部分时间不算重叠)
/*** 从 hu tool工具复制来改的* 参考 <a href="https://github.com/dromara/hutool/pull/2210">...</a>* 检查两个时间段是否有时间重叠<br>* 重叠指两个时间段是否有交集** @param realStartTime 第一个时间段的开始时间* @param realEndTime 第一个时间段的结束时间* @param startTime 第二个时间段的开始时间* @param endTime 第二个时间段的结束时间* @param allowOverlayTime 允许重叠的时间,秒* @return true 表示时间有重合*/public static boolean isOverlap(ChronoLocalDateTime<?> realStartTime,ChronoLocalDateTime<?> realEndTime,ChronoLocalDateTime<?> startTime,ChronoLocalDateTime<?> endTime,Integer allowOverlayTime) {// x>b-allowOverlayTime || a>y-allowOverlayTime 无交集// 则有交集的逻辑为 !(x>b-allowOverlayTime||a>y-allowOverlayTime)// 可化简为 x<=b-allowOverlayTime && a<=y-allowOverlayTimereturn startTime.isBefore(realEndTime.minus(allowOverlayTime, ChronoUnit.SECONDS))&& endTime.isAfter(realStartTime.plus(allowOverlayTime, ChronoUnit.SECONDS));}
总有一些比较特殊的需求场景,做个备忘。
新增一个参数接收允许重叠的时间(这个重叠不算重叠),
设置0和等于原算法保持一致
允许重叠的时间, 负数这里没校验,自己用, 正常需要加一个。
检查两个时间段是否有时间重叠(允许重叠一部分时间不算重叠)相关推荐
- 判断两个时间段交集、时间重叠问题
判断两个时间段范围是否有交集(时间重叠)问题经常遇到,比如预约会议室开会,活动的开始结束等,本文做此分析. 前提:本文时间传参已做限制,结束时间必须大于开始时间 1.正向思维 代码如下 (oneSta ...
- java方法,返回两个日期内的所有date集合,根据开始时间、结束时间得到两个时间段内所有的日期...
在最近的项目中,有这么一个需求,根据开始时间.结束时间得到两个时间段内所有的日期,以下分享我的代码给大家. 1.以下的这个方法适用于jdk1.5以上的版本 /** * 根据开始时间和结束时间返回时间段 ...
- 检查两个列表在Java中是否相等
介绍: Java中的列表是按自然顺序排列的. 因此,如果两个列表包含相同顺序的完全相同的元素,则认为它们是相等的. 在本教程中,我们将看到如何在Java中比较两个列表是否相等. 我们还将介绍仅比较两个 ...
- 二叉树题目----2 检查两颗树是否相同 和 对称二叉树的判定
检查两颗树是否相同 思路 根要相等 p->val == q->val 左子树相等 isSameTree(p->left,q->left) 右子树也要相等 isSameTree( ...
- perl 哈希数组的哈希_使用哈希检查两个数组是否相似
perl 哈希数组的哈希 Prerequisite: Hashing data structure 先决条件: 哈希数据结构 Problem statement: 问题陈述: Check whethe ...
- 判断两个时间段是否重叠的算法
判断两个时间段是否重叠,如: startdate1 - enddate1 startdate2 - enddate2 两个时间的重叠分4种情况,若你一一列出这四种情况来判断是否重叠那就弱爆了,最简单的 ...
- java计算两个时间段的重合天数
由于我要计算一个合同在当月的分摊的金额,所以就要知道这个合同的有效期在本月有多少天,这就要进行两个时间段重合天数的计算. 两个时间段四个时间点,相当于时间轴上的两条线段(b代表起点,e代表端点,b&l ...
- QT学习笔记之MySql如何计算两个时间段相隔的天数
写在前面 博主目前正在做毕设,已经快将前台用户预定的部分做完了,但是现在遇到了一个问题,那就是我如何去计算两个时间段之间隔了多少天呢?不然不好按日收费啊!(哦吼吼吼吼!!!) 解决办法 这个不需要我们 ...
- 校验两个时间段是否重合
文章目录 前言 一.校验两个时间段是否重合 二.code 2.调用示例 总结 前言 一.校验两个时间段是否重合 二.code public class DateUtil {/*** 判断两个时间段是否 ...
最新文章
- 一个学术 导航网站----科塔学术
- weboffice 应用
- 单片机利用蜂鸣器如何输出音乐
- .NET疯狂架构经验分享系列之(七)WCF支持(转)
- centos7下使用yum安装pip
- 30-- 返回倒数第 k 个节点
- 阿里P8架构师谈:MySQL有哪些存储引擎,各自的优缺点,应用场景
- 腾讯花85亿买岛;微信发原图或泄露位置信息?高通逼因特尔把Modem芯片业务卖给苹果?小米9官网正式下架……...
- laravel 自带的用户登录视图路径_Laravel实现找回密码及密码重置,详细操作
- 香橼做空跟谁学发第三枪 跟谁学股价盘后下跌1.37%
- Linux内存调试工具初探-MEMWATCH
- Matlab出错向量长度必须相同,代码已贴。错误使用plot3,向量长度必须相同
- 锁定计算机和睡眠有什么区别,电脑系统待机、睡眠和休眠的区别有哪些
- 一些个人感觉很不错的特效
- VS code Markdown Preview Enhanced 预览白色改为黑色
- 10套精美而实用的CSS3按钮
- UWB测距原理详细解答
- uniapp 生成商品海报并分享保存
- 梯度类算法原理:最速下降法、牛顿法和拟牛顿法
- C语言判断完全平方数(经典代码)