开发解决方案 ● 如何知道两个时间段是否重叠?
2018-11-24 本文已影响0人
SamTribiani
问题来源:
活动的创建,如活动A和活动B的开始结束时间,不能重叠在一起
问题描述:
A和B的开始结束时间,不能重叠
设A的时间段为 2018年9月1日 18:00:00 - 2018年9月10日 18:00:00
设B的时间段为 2018年9月5日 18:00:00 - 2018年9月15日 18:00:00
解决方案:
可以利用区间重叠算法
假设存在两个区间 A[A1,A2] , B[B2,B2], 如何判断区间A和B存在重叠?
算法
Begin = Max(A1 , B1) ;
End = Min(A2 , B2) ;
Len = End - Begin
只要 Len >= 0 , 那么AB区间重叠,Len为重叠的长度
所以以上的问题,可以把活动AB的开始以及结束时间,转换成时间戳带入,即可解决!