发现一个有一点趣味的小工具网页:
线上数学函数绘图器
思路:
时间范围如同数值区间(刚好可以用时间戳数值表示为数值区间)
那么,这个问题就变成了
数轴上,如何判断两个区间有没有交集?
有交集的话,就是 起点的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;
}
}
完毕。