0
点赞
收藏
分享

微信扫一扫

判断两个时间范围Date、Time、Datetime区间是否有重叠、交集


发现一个有一点趣味的小工具网页:

​​线上数学函数绘图器​​

判断两个时间范围Date、Time、Datetime区间是否有重叠、交集_时间范围重叠

思路
时间范围如同数值区间(刚好可以用时间戳数值表示为数值区间)
那么,这个问题就变成了
​​​数轴上,如何判断两个区间有没有交集?​

判断两个时间范围Date、Time、Datetime区间是否有重叠、交集_区间重叠_02


有交集的话,就是 ​​起点的max值​​​ < ​​终点的min值​

用代码表示就是(java)

  public static boolean ifHasIntersection(Date beginDate1, Date endDate1, Date beginDate2, Date endDate2) {
long begin1 = beginDate1.getTime();
long end1 = endDate1.getTime();
long begin2 = beginDate2.getTime();
long end2 = endDate2.getTime();

/**
*思路就是如果两个区间不相交,那么最大的开始端一定大于最小的结束端
**/

if (Math.max(begin1, begin2) < Math.min(end1, end2)) {
return true;
} else {
return false;
}
}

完毕。


举报

相关推荐

0 条评论