社区
数据结构与算法
帖子详情
求判断两个时间段有没有重叠的算法
Powertion
2011-01-11 11:33:21
假设时间段一为t1~t2,时间段二为t3~t4
有简便快捷的方法更好,比如SQL语句
我这个写法有问题,请指正
(t3<=t1 and t4>=t1) or
(t3<=t2 and t4>=t2) or
(t3>=t1 and t4<=t2) or
(t3<=t1 and t4>=t2)
...全文
2373
15
打赏
收藏
求判断两个时间段有没有重叠的算法
假设时间段一为t1~t2,时间段二为t3~t4 有简便快捷的方法更好,比如SQL语句 我这个写法有问题,请指正 (t3=t1) or (t3=t2) or (t3>=t1 and t4<=t2) or (t3=t2)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lz3771
2011-01-20
打赏
举报
回复
楼上的都很犀利
zzz9413
2011-01-17
打赏
举报
回复
2
不重叠比较容易写出来:只有2个可能
1,t3大于t2
2,t4小于t1
写出来就是
(t3>t2)or(t4<t1)
要是重叠来考虑,就够你头大的了。所以判断不重叠后反过来就好。
//这样就是判断如果重叠就执行的语句了
if(!不重叠)
{
}
sxq310
2011-01-14
打赏
举报
回复
如果你的时间t1~t2,t3~t4,本身存在t1<=t2 && t3<=t4 那么我觉得最大值小于最小值或者最小值大于最大值就可以判断时间没重复了。
判断应该是(t2<t3 || t4<t1 )不为真就没重复了;
martenyong
2011-01-14
打赏
举报
回复
只要不重合,
那么
(t3-t2)*(t4-t1)>=0
mp3com22
2011-01-13
打赏
举报
回复
反向思考
strike2368168
2011-01-13
打赏
举报
回复
!(t4<t1 || t3>t2)
就这个答案
static163
2011-01-12
打赏
举报
回复
t1~t2; t3~t4;
让p1指向这两段时间开始时间比较小的那个,p2指向另一段,即保证p1->t_start <= p2->t_start,这样只要比较p1->t_end和p2->t_start就行了.
if(p1->t_end > p2->t_start)
重叠;
else
不重叠;
yyfhz
2011-01-11
打赏
举报
回复
错了,应该是
(t1>=t3 and t1<=t4) or (t3>=t1 and t3<=t2)
yyfhz
2011-01-11
打赏
举报
回复
(t1>=t3 and t1<=t4) or (t3>=t1 and t3<=t4)
pmars
2011-01-11
打赏
举报
回复
就两个时间段!
牛海朋
2011-01-11
打赏
举报
回复
[Quote=引用 5 楼 dengsf 的回复:]
假设已有 t1<=t2, t3<=t4
不重叠: t2<=t3 || t4<=t1
重叠取反即可:t3<t2 && t4>t1
[/Quote]
该是这样
dengsf
2011-01-11
打赏
举报
回复
假设已有 t1<=t2, t3<=t4
不重叠: t2<=t3 || t4<=t1
重叠取反即可:t3<t2 && t4>t1
yui
2011-01-11
打赏
举报
回复
一般来说,t1<=t2,t3<=t4,判断重叠只要判断t2>t3就可以了
yuhang184602006
2011-01-11
打赏
举报
回复
只能路过了。。。。
判断
两个
时间段
是否
重叠
的
算法
判断
两个
时间段
是否
重叠
,如: startdate1 — enddate1 startdate2 — enddate2
两个
时间的
重叠
分4种情况,若你一一列出这四种情况来
判断
是否
重叠
那就弱爆了,最简单的方法: startdate1 =startdate2 若你无法理解上面这种方法,那我还有下面的方法提供给你: (startdate1 BETWEEN startda
判断
两个
时间段
是否
重叠
判断
两个
时间段
是否
重叠
,如: startdate1 — enddate1 startdate2 — enddate2
两个
时间的
重叠
分4种情况,若你一一列出这四种情况来
判断
是否
重叠
那就弱爆了,最简单的方法: startdate1 <=enddate2 and enddate1>=startdate2 若你无法理解上面这种方法,那我还有下面的方法提供给你: (startdate1 BETWEEN startdate2AND enddate2) or (enddate1 BETWE..
判断
两个
时间段
是否相交(精简写法)
伪代码:
时间段
1的开始时间小于
时间段
2的结束时间,并且
时间段
2的开始时间小于
时间段
1的结束时间。 代码形式:
时间段
1:a--b
时间段
2:c--d if (a<d &&c<b) { // 两段时间有重合 }
判断
两个
时间段
是否
重叠
的
算法
SQL版
判断
两个
时间段
是否
重叠
,如: startdate1 — enddate1 startdat...
c#检查
两个
时间段
是否
重叠
【代码】c#检查
两个
时间段
是否
重叠
。
二个
时间段
重叠
的
判断
逻辑
时间段
重叠
的逻辑: 默认跨天的处理逻辑为:
时间段
跨天时,结束时间点的日期+1天 ,如:23:00~01:00 ,为时间加上相同日期后,将结束点的日期+1天 输入值或参考值其中一个跨天时,可能(只有下边的1,2二种情况,才可能需要)要向左-1天后,再对二个
时间段
进行比较; (谁跨天,谁-1天,
判断
的依据是:完整地处在的左侧时,才需要-1天后,再
判断
,详细,见下边的1,2二种情况的描
数据结构与算法
33,028
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章