c# 怎么判断一个时间区间在另一个时间区间?
如我现在list下添加了4个时间区间:8:00-12:0013:00-16:0017:30-20:00,20:00-2:00,2:00-3:00现在我需要新增一个区间:9...
如我现在list下添加了4个时间区间:8:00-12:00 13:00-16:00 17:30-20:00,20:00-2:00,2:00-3:00
现在我需要新增一个区间:9:00-12:30 但是这个时间区间在8:00-12:00中已经存在,则不允许添加。同样如果我想添加22:00-1:00,这个区间在20:00-2:00,同样也是不能添加,该怎么处理 展开
现在我需要新增一个区间:9:00-12:30 但是这个时间区间在8:00-12:00中已经存在,则不允许添加。同样如果我想添加22:00-1:00,这个区间在20:00-2:00,同样也是不能添加,该怎么处理 展开
展开全部
list<string> time=new list<string>
time[0]=8:00-12:00
time[1]=13:00-16:00
time[2]=17:30-20:00
time[3]=20:00-2:00
分别得到每个时间段的开始时间和结束时间
string t0S= time[0].Split ('-')[0];//得到time[0]的开始时间
string t0E= time[0].Split ('-')[1];//得到time[0]的结束时间
以此类推
string t1S= time[1].Split ('-')[0];
string t1E= time[1].Split ('-')[1];
string t2S= time[2].Split ('-')[0];
string t2E= time[2].Split ('-')[1];
string t3S= time[3].Split ('-')[0];
string t3E= time[3].Split ('-')[1];
然后把字符串转为时间格式
TimeSpan St0 = DateTime.Parse(t0S).TimeOfDay;
TimeSpan St1 = DateTime.Parse(t1S).TimeOfDay;
TimeSpan St2 = DateTime.Parse(t2S).TimeOfDay;
TimeSpan St3 = DateTime.Parse(t3S).TimeOfDay;
TimeSpan Et0 = DateTime.Parse(t0E).TimeOfDay;
TimeSpan Et1 = DateTime.Parse(t1E).TimeOfDay;
TimeSpan Et2 = DateTime.Parse(t2E).TimeOfDay;
TimeSpan Et3 = DateTime.Parse(t3E).TimeOfDay;
新增时区的开始时间 NewS="9:00"
新增时区的结束时间 NewE="12:30"
TimeSpan NewSt = DateTime.Parse(NewS).TimeOfDay;
TimeSpan NewEt = DateTime.Parse(NewE).TimeOfDay;
然后判断 新增时区的开始时间 是不是比 每个list的开始时间大和 新增时区的结束时间 是不是比 每个list的结束时间小
if((NewSt>=St0||NewSt>=St1NewSt>=St2NewSt>=St3)&&(NewEt<=Et0||NewEt<=Et1||NewEt<=Et2||NewEt<=Et3))
{
MessageBox ("老时间段已包含新增时间段")
}
else
{
....................
}
time[0]=8:00-12:00
time[1]=13:00-16:00
time[2]=17:30-20:00
time[3]=20:00-2:00
分别得到每个时间段的开始时间和结束时间
string t0S= time[0].Split ('-')[0];//得到time[0]的开始时间
string t0E= time[0].Split ('-')[1];//得到time[0]的结束时间
以此类推
string t1S= time[1].Split ('-')[0];
string t1E= time[1].Split ('-')[1];
string t2S= time[2].Split ('-')[0];
string t2E= time[2].Split ('-')[1];
string t3S= time[3].Split ('-')[0];
string t3E= time[3].Split ('-')[1];
然后把字符串转为时间格式
TimeSpan St0 = DateTime.Parse(t0S).TimeOfDay;
TimeSpan St1 = DateTime.Parse(t1S).TimeOfDay;
TimeSpan St2 = DateTime.Parse(t2S).TimeOfDay;
TimeSpan St3 = DateTime.Parse(t3S).TimeOfDay;
TimeSpan Et0 = DateTime.Parse(t0E).TimeOfDay;
TimeSpan Et1 = DateTime.Parse(t1E).TimeOfDay;
TimeSpan Et2 = DateTime.Parse(t2E).TimeOfDay;
TimeSpan Et3 = DateTime.Parse(t3E).TimeOfDay;
新增时区的开始时间 NewS="9:00"
新增时区的结束时间 NewE="12:30"
TimeSpan NewSt = DateTime.Parse(NewS).TimeOfDay;
TimeSpan NewEt = DateTime.Parse(NewE).TimeOfDay;
然后判断 新增时区的开始时间 是不是比 每个list的开始时间大和 新增时区的结束时间 是不是比 每个list的结束时间小
if((NewSt>=St0||NewSt>=St1NewSt>=St2NewSt>=St3)&&(NewEt<=Et0||NewEt<=Et1||NewEt<=Et2||NewEt<=Et3))
{
MessageBox ("老时间段已包含新增时间段")
}
else
{
....................
}
2019-12-05
展开全部
判断新增的区间最大值不在已有区间内,且最小值也不在已有区间内就可以添加就行了啊
追问
说是怎么说,我尝试过了,按照逻辑来写,不对啊,有具体代码么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
修改最新添加的时间区间
把 8:00-12:00 改成8:00-12:30,则2个都包含了,剩下也是
把 8:00-12:00 改成8:00-12:30,则2个都包含了,剩下也是
追问
这个本来就是智能判断是否在区间,上面时间只是举例,意思是不能在上面时间区间。。。你这还修改了。。。。
追答
那得看你list存的格式,然后if判断不就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询