关于判断时间段冲突的问题,求高手

speedfisherman 2010-08-19 10:17:04
我在做一个简单窗体,包括选时间段的功能。
有多行combobox,每行2个,分别用来选择开始时间和结束时间,里边都放入了可选时刻(7:00,8:00等等),这样用户就可以选择出多个时间段。
现在的问题是要判断时间段有没有冲突,比如
第一行7:00~8:00;
第二行7:00~9:00;
那么这样就算冲突了。

拜求代码!!
...全文
302 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
speedfisherman 2010-08-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyq11 的回复:]
DateTime dt=DateTime.Parse("7:00")
DateTime dt2=DateTime.Parse("7:00")
TimeSpan ts=dt1-dt2;
通过timespan判断时间差
[/Quote]

这种办法可以用,比如7:00到10:00中间一共有三个小时,而所有的timespan加起来超过3就算冲突。
可是小弟代码能力差,能帮我编一下吗?以7:00-10:00为例。
谢了!!
gxingmin 2010-08-19
  • 打赏
  • 举报
回复
如果还有第三行、第四行...
你用个循环,两两比较是否有交集


private bool HasJoin(int s11,int s12, int s21, int s22)
{
if((s12<s21) || (s12>s22))
{
//无交集,即不冲突
return false;
}
else
{
//有交集,即冲突
return true;
}
}
wuyq11 2010-08-19
  • 打赏
  • 举报
回复
DateTime dt=DateTime.Parse("7:00")
DateTime dt2=DateTime.Parse("7:00")
TimeSpan ts=dt1-dt2;
通过timespan判断时间差
gxingmin 2010-08-19
  • 打赏
  • 举报
回复
其实就是判断两个时间段有无交集呗

假设你四个事件分别保存在四个变量里(以秒为单位)
int s11=7*3600;
int s12=8*3600;
int s21=7*3600;
int s22=9*3600;

if((s12<s21) || (s12>s22))
{
//无交集,即不冲突
}
else
{
//有交集,即冲突
}

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧