C#判断时间段重叠冲突的问题

MYSQL ,表字段,id,type,START_TIME,END_TIME
数据,1,1,09:00:00,09:00:00
2,1,19:00:00,09:00:00
等于布满了一天,我要插入的时候判断下时间是否重叠,重叠的话不让添加

  List<tbl_a> list=  EF.tbl_a.Where(s => s.type == 2).ToList();
    foreach (tbl_a item in list)
    {
     DateTime t1 = Convert.ToDateTime(model.START_TIME.ToString());
                DateTime t2 = Convert.ToDateTime(model.END_TIME.ToString());
                DateTime t3 = Convert.ToDateTime(item.START_TIME.ToString());
                DateTime t4 = Convert.ToDateTime(item.END_TIME.ToString());
    }
    if (DateTime.Compare(t2, t3) < 0 || DateTime.Compare(t2, t4) > 0)
                {
                  //没有重叠
                }
                else
                {
                  //有重叠
                                    }

这样写好像不行

1个回答

重叠分为4中情况
第一个时间周期的后半部分和第二个前半部分重叠
第一个时间周期的前半部分和第二个后半部分重叠
第一个时间周期在第二个之内
第二个时间周期在第一个之内
分别判断下。
另外如果结束时间<开始时间,那么拆分成0:00~结束时间和开始时间~24:00
对于多个时间段,两两判断。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
判断多个时间段是否重叠,并取出重叠时间段
问题是这样的,有多个时间段被查出来,要判断这几个时间段里面是不是有重叠,有的话要把重叠时间段返回。rn比如:2010-01-01 到 2011-01-01rn 2010-05-01 到 2013-05-01rn 2010-01-01 到 2012-06-01rn 2008-07-01 到 2015-09-01rn多个时间段是有重复时间的,应该返回重复时间为2010-05-01 到2011-01-01
二个时间段重叠的判断逻辑
时间段重叠的逻辑: 默认跨天的处理逻辑为:时间段跨天时,结束时间点的日期+1天  ,如:23:00~01:00  ,为时间加上相同日期后,将结束点的日期+1天 输入值或参考值其中一个跨天时,可能(只有下边的1,2二种情况,才可能需要)要向左-1天后,再对二个时间段进行比较; (谁跨天,谁-1天,判断的依据是:完整地处在的左侧时,才需要-1天后,再判断,详细,见下边的1,2二种情况的描
oracle:sql 判断时间段重叠
oracle数据库的时间段重叠求和
散分,并如何判断时间段上有重叠冲突。
首先,感谢大家的支持。rn终于得到了一颗钻石。已经比 大版 十豆三 老师预计了晚了近一个星期的时间才收获到。rnrnCSDN比去年来说,MYSQL版出现了许多新的声音,新的面孔,特别是很多来自MS SQL SERVER, ORACLE的数据库方面的专家朋友的积极参与。使用我们在共同的讨论,争论,辩论中不断提高。 在这儿再一次感谢大家的参考和支持。rnrn原本应该在拿到钻的当时就应该按CSDN的惯例放分的,可是一直想不出放个什么小问题。所以拖了好几天,今天刚巧看到这个经常出现的问题。所以提出来以供大家分享参考。rnrn===============================================================================rnrn[b]比如某个会议室的预订信息表 roomBookInfo(id,title,beginTime,endTime), 现在有一个新的预订请求 @bTime, @eTIme 分别 代表 开始、结束时间。rnrn请检查下表中的记录,查看是否有时间上的冲突。[/b]rnrncreate table roomBookInfo (id int auto_increment primary key, title varchar(10), beginTime datetime not null , endTime datetime not null);rnrn===============================================================================rnrn最后预祝 zuoxingyu 升星rn
检查时间段重叠问题?
插入一条数据时,检验原有记录是否存在有时间段重叠的?rnrn我现在的语句是:(kssj 开始时间,jzsj 截止时间)rn ( kssj < :ldt_kssj and jzzj > :ldt_jzsj ) //包含rn or ( kssj > :ldt_kssj and jzzj < :ldt_jzsj ) //被包含rn or ( kssj < :ldt_kssj and jzzj < :ldt_jzsj ) //左包含rn or ( kssj > :ldt_kssj and jzzj > :ldt_jzsj ) //右包含rnrnrn我觉得可以简练该条件的,但是....rnrn求帮助!rn
关于判断时间段冲突的问题,求高手
我在做一个简单窗体,包括选时间段的功能。rn有多行combobox,每行2个,分别用来选择开始时间和结束时间,里边都放入了可选时刻(7:00,8:00等等),这样用户就可以选择出多个时间段。rn现在的问题是要判断时间段有没有冲突,比如rn第一行7:00~8:00;rn第二行7:00~9:00;rn那么这样就算冲突了。rnrn拜求代码!!
时间段冲突问题???
假设表order中有两列rnstime etimern07:00 08:00rn08:12 09:11rn12:15 13:13rn .... ....rnstime是开始时间,etime是结束时间,组成一时间段,譬如:07:00-08:00,现在我有一组数据stime:07:15,etime:08:10,即时间段为:07:15-08:10,如何判断与表中stime与etime组成的时间段冲突的问题???(stime,etime都是datetime类型),请高手指教啊。。[b]最好能示例一段代码,用c#+sql编写[/b]
时间段不能冲突的问题
时间段不能冲突的问题rnrn比如某人计划以下时间要参加的项目(三个字段)rnrnid starttime endtimern1 2005-04-01 2005-04-08rnrn2 2005-04-10 2005-04-20 rn...............rn这是从数据取出来的数据,当然这里的时间段是不会冲突的rnrn当加入用户输入 2005-04-02 到 2005-04-10,这样就返回错误,rnrn如果输入的时间段 (2005-05-04-2005 到 200506-06)这样就返回正确
怎样判断两个时间段是否重叠
数据库有4列rnid、Title、StareTime、EndTimern怎样在添加数据时判断要增加数据的起始时间和结束时间不在已有数据的起始时间和结束时间内rn就是时间段不能有交叉rnrn分成两次运行也行
求判断两个时间段有没有重叠的算法
假设时间段一为t1~t2,时间段二为t3~t4rnrnSQL解决不了,程序语言算法也可,也可以考虑下跨日问题rnrn我这个写法有问题[code=SQL](t3<=t1 and t4>=t1) orrn(t3<=t2 and t4>=t2) orrn(t3>=t1 and t4<=t2) orrn(t3<=t1 and t4>=t2) [/code]
sql server 判断时间段是否重叠
--判断 加班 时间段 是否重叠 --工号0100993 加班 加班日期 2016-01-09 起始时间08:30 结束时间17:30 select count(*) tcount from ( select case when ( ('08:30''08:30') --在原有时间段之前 or ('08:30'>=tendtime and '17:30'>'08:30')) --在
Java判断多个时间段是否重叠
因为项目需求会用到,但考虑到这个数据量一般情况也不会太多,所以匆忙写了一个方法来实现;网上搜索看到都是针对固定几个时间段,一个个判断的不够灵活 所以发出来分享看能否帮助有需要的朋友; 代码很初级 可能也没有什么效率 存在Bug的可能性也不排除 哈哈 大家有更好的方法也可以分享 谢谢 package com.xr.common.utils; import java.util.ArrayList;
Java 判断多个时间段是否重叠
业务需求:新加入的时间段不能与已存在的时间段重叠 /** * 验证插入的时间段是否存在重叠 * @param startHour 插入的开始时间 小时 * @param startMinute 插入的开始时间 分钟 * @param endHour 插入的结束时间 小时 * @param endMinute 插入的结束时间 分钟 * @param periods 已存在的时间段集合 * @...
Oracle判断两个时间段是否有重叠
判断两个时间段是否有重叠(a,b),(c,d)判断两段时间是否有重叠 方法一select 'yes' from dual where d&amp;gt;a  and c&amp;lt;b;方法二select 'yes' from dual where (a, b) overlaps (c,d);方法三select 'yes' from dual where a between c and d or d betwe...
求算法(重叠时间段)
StartTime EndTimern11.01 11.11rn11.02 11.08rn11.03 11.15rn11.06 11.09rn11.13 11.18rn11.20 11.25rn总时间段为rnStartTime EndTimern11.01 11.02rn11.02 11.11rn11.11 11.13rn11.13 11.15 rn11.15 11.18rn11.18 11.20rn11.20 11.25
如何判断一个时间段是否与在另一个时间段冲突
如:rn字段名分别为 startime、endtimernA时间段:startime = 07:00 endtime = 10:00rnB时间段: startime = 08:00 endtime = 11:00rnC时间段: startime = 04:00 endtime = 07:00rnrn上面3个时间段,B时间段与A时间段冲突,而C时间段则不会与A时间段冲突rnrn请问有sql语句怎么写?rn
如何判断一个时间段是否和另一个时间段冲突?
案例:预订会议室时判断提交预订的时间段是否与已经预订的时间段冲突 CREATE TABLE roombookinfo(   id int NOT NULL,   title nvarchar(10) NOT NULL,   beginTime datetime NOT NULL,   endTime datetime NOT NULL ) select
SQL如何判断一个时间段是否和另一个时间段冲突?
SQL如何判断一个时间段是否和另一个时间段冲突?rnrn比如要预订 2008-02-03 至2008-02-13 的房子 数据库里已经有个2008-02-01 到 2008-02-07 的房子了 查询时怎么能跳过这条数据?
用C#判断排班的时间段
各位师兄 师姐们 请教个问题 现在做个排班系统 一个排班有多个时间段 比如(8:00-12:00 13:00-17:00 20:00-7:00)时间段可以多个 但不能重复在已定义过的时间段内 这个困扰我很久啊 希望好心的师兄师姐解答下 坐等答案!!谢谢
C#判断某一时间在时间段内
如题,判断某一时间在时间段内,是用时间格式还是string来判断呢?有没有比较好的方法推荐下?谢谢
判断时间段的问题
用PL/SQL Developer查询某个时间段的数据rnWHERE tDate >= to_date('2011-02-01', 'yyyy-MM-dd') AND tDate <= to_date('2011-02-28', 'yyyy-MM-dd')rn和用 WHERE tDate >= to_date('2011-02-01', 'yyyy-MM-dd') AND tDate < to_date('2011-03-01', 'yyyy-MM-dd')rn是要查询2月份数据,可查询出来不一样,第一个查不出2-28那天数据,为什么日期不能“等于”呢?原因是什么?还是就这么规定的?
安卓开发时间段判断的问题
大家好!rn我在我们的项目开发遇到一个问题,就是时间判断的问题。rn这个条件是当某个时间点开始,当以后随便满足连续延时10分钟,就促发某个条件,但是如果当中有任何时刻发生了其他的变化情况,那么前面累计的时间也就是小于10分钟,那么从发生变化的这个时刻重新开始计算,只有满足了延时10分钟那么就触发那个条件。rn请问用安卓来做怎么做呢?rn谢谢!
时间段冲突的比较
假如有张数据表registerrnsid etime stimern111 2013-3-7 7:12:00 2013-3-7 8:13:00rn222 2013-3-7 9:00:00 2013-3-7 10:10:00rn333 2013-3-7 11:14:00 2013-3-7 12:11:00rn... ......... .........rnetime,stime是数据库中datetime类型,现在我在asp.net前台网页中有textbox1,和textbox2,分别输入起始时间,与结束时间,如8:00,9:10,即时间段为8:00-9:10([b]注:只有小时和分钟),[/b]现在我通过怎么样的方法实现,与sql数据库中etime-stime时间段的比较(如:数据表第一条记录为:7:12-8:13)[b]数据表中秒全部是零[/b],检验时间段有没有冲突,我是新手请大神指教,最好示例完整的程序。。
求一个关于时间段的算法, 关于时间段不能重叠的问题
比如某个房间,已经被预定了下面的时间段:rn2014-03-16至2014-04-16rn2014-06-25至2014-8-25rn2014-11-01至2014-12-01rn... (其它已预定的时间段)rnrn如果有人再预定,时间段不能和上面的时间段重叠,例如2014-04-10至2014-05-10是不允许的(和第一行的时间段部分重叠),而2014-04-17至2014-05-17是可以的...rnrn请问怎么写? 伪代码也可以rn
求合并重叠时间段的算法
同一天中的一连串不连续时间段,合并其中重叠时间,如:rnStartTime EndTimern06:10:58 08:15:28rn07:38:56 10:34:45rn10:55:00 11:34:00rn13:09:34 17:45:23rn14:23:12 15:24:14rn16:14:25 17:52:15rn...rn合并后为:rnStartTime EndTimern06:10:58 10:34:45rn10:55:00 11:34:00rn13:09:34 17:52:15rn...rn用SQL或C#代码都可以,SQL的话因为数据库是SQL Compact,不支持存储过程,编程能力差,所以用C#相对简单一点,数据放在DataTable或List中都可以,其实任意语言均可,我只是想要一个好点的算法,rn我现在想出的算法是先按开始时间排序,排序后遍历所有元素,使每个时间段跟它下一个时间段比较,合并重叠时间段,然后递归再次比较,直到每个时间段都与它下一个时间段没有重叠为止,这个算法一是效率太低,而且我觉得好像也有点问题。rn这个算法应该在HR系统的考勤记录中应用比较多,不知那位兄台有比较好的算法?
数据库查询时间段是否存在重叠
SELECT COUNT(1) FROM SS WHERE NOT ((END_DATE &lt; ?1 ) OR (START_DATE &gt; ?2 )
时间段判断
1.时间差String yuyue = dingdan.getO_WashTime(); long yuyueshijian = getDateFromStr(yuyue); String xiadan = dingdan.getO_Time(); String shijian1 = xiadan.replace(&quot;T&quot;, &quot; &quot;); String shijian2 = shijian1.subs...
js 判断多个时间段是否存在重叠的部分
一排序二判断
C# 时间段问题
在界面新增时间段 如 2010-01-01 - 2010-01-12 一条rn当我加第二条的时候 时间断不能是 2010-01-01 - 2010-01-12 之间的 rn当我加第三条的时候 时间断不能是 第一条和第二条之间的 就是没有交集rn怎么判断 rn 各位大侠 代码支持rn
求助:SQL检测时间段冲突问题?
我现在做一个会议室安排的东东,数据库中StartTime代表开始使用时间,EndTime代表结束使用时间。rn我的SQL语句该怎么写,才可以把所有情况都判断进去。rnrn
c# 判断当前时间是否在特定时间段
c# 判断当前时间是否在特定时间段rn比如我现在有rnstring Strtime1begin = "8:00";rnstring Strtime1end = "9:00";rn我如何判断当前时间在这个时间段内rn谢谢
C# 判断时间是否在 某一时间段内
1、写一个方法,设置两个时间段protected bool getTimeSpan(string timeStr) { //判断当前时间是否在工作时间段内 string _strWorkingDayAM = &quot;08:30&quot;;//工作时间上午08:30 string _strWorkingDayPM = &quot;17:...
js判断两个时间段是否有重合部分(是否冲突)
时间段的比较分为两种: 1:带日期的两个具体的时间段比较,如比较2018-01-01 12:00~14:00和2018-01-01 15:00~17:00 2:忽略日期,只比较时分秒,如比较每天的 12:00~14:00 和 18:00和22:00 两种的主要区别是第二种会涉及到跨天的问题,稍微麻烦一点,下面分开讨论。 第一种: 其实逻辑很简单,画图分情况讨论就可以了。 以下a
判断一个时间段是否与另一时间段相冲突
下面判断的是 前两个参数段是否与后两个参数段重复 判断时间,如果是24小时制,就直接将这个时间段转换成分钟。 int 的参数实际就是我将小时分钟一起转化成了分钟 private boolean isNotInclude(int nowFrom, int nowTo, int oldFrom, int oldTo) { if ((nowFrom oldFrom) { Toast
计算2个时间段的重叠天数
最近做一个需求,是计算查询日期范围内产生的费用,需要将查询日期范围跟实际产生费用日期范围计算重叠天数,然后重叠天数*每天费用=查询日期范围内的费用。一个时间段跟另一个时间段,有如下三种情况: 1. 没有重叠 2. 部分重叠 3. 包含式重叠。即一个时间段被另一个时间段包含。
如何判断时间段?
我想问关于判断时间段的问题:rnrn比如有三个时间段,这些数据在数据库里rnid cdate edaternaa 2003/02/03 2003/03/12rnbb 2003/04/30 2003/05/05rncc 2003/05/20 2003/05/30rnrn如何写程序判断某一个时间段不在此三个时间段?rn如:rn2003/03/13-2003/04/10 不在此三个时间段rn2003/04/27-2003/05/07 在此三个时间段rnrn
如何判断每天的时间段
有两个日期字段 StartDate EndDatern 2008-03-01 08:30:00 2008-12- 12 19:30:30rnrnrnrnrn意思是自2008-03-01 08:30:00 至 2008-12- 12 19:30:30 每天8:30-19:30 之间合法 rnrn怎么判断2008 06 21 18:30 是不是合法?
php判断时间段
//目的,2019年起,我们商城上面,早上4到8时禁止云购,实现方式 date_default_timezone_set(&quot;Asia/Shanghai&quot;);//规定时区 $j=date(&quot;H:i&quot;); $now=strtotime($j);//获得当前小时和分钟的时间时间戳 $start=strtotime('04:00');//获得指定分钟时间戳 $end=strtotime('08:00');...
sql时间段判断
请求各位大神,一个sql时间段判断问题:rn 如:数据库中定义, 07:00--17:00为白班 17:00--07:00 为夜班 现在一条记录时间为:2013-08-21 17:54:44.780 我如何判断这条记录是哪个班别?如给出解决,小弟感激不尽!
安卓界面元素重叠判断
如何实现安卓界面元素位置重叠时层次的改变??
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法