A. 开发解决方案 ● 如何知道两个时间段是否重叠
活动的创建,如活动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的开始以及结束时间,转换成时间戳带入,即可解决!
B. 求助,在excel中,如何计算,两个时间段的重复天数
在EXCEL中,求重合时间的话,公式=MAX(0,(MIN(时段2结束,时段1结束)-MAX(时段2开始,时段1开始))) ,
求重合天数的话,公式=MAX(0,(MIN(时段2结束,时段1结束)-MAX(时段2开始,时段1开始)+1))
C. Excel 时间段重叠,该用什么来判断
在G2单元格输入以下公式,然后向下填充公式
=IF(SUMPRODUCT((C$2:C$11=C2)*(D$2:D$11=D2)*(E$2:E$11<E2)*(F$2:F$11>E2))>0,"重叠","")
公式表示:如果同时满足“C列等于C2”且“D列等于D2”且“E列小于E2”且“F列大于E2”的条件数大于0,则返回“重叠”,否则留空。
详见附图
D. 两个时间段重合怎么自动调整编程
使用递归算法。两个时间段重合需要使用递归算法来进行调整,递归算法在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。如不喜欢递归,可以使用whie代替。
E. 求时间段重复算法
假设时间段[a,b]
预约时间段[c,d]
将时间的分钟的部分转成小时,统一小时为单位。比如10:30 可以是10.5小时
if b=<c or a>=d:
true
else:
false
先看看你举得例子:
9:00-10:00的最大值是10:00 比预约时间10:00-13:00的最小值小 所以肯定是不重复的了
13:00-14:00的最小值是13:00 比预约时间10:00-13:00的最大值大 也是不重复的