如
1,
A,2005-3至2005-7
B,2005-5至2005-8
2,
A,2005-5至2005-8
B,2005-6至2005-7
3,
A,2005-5至2005-8
B,2005-8至2005-9
等等
这些都是交集时间范围B只能在时间范围A的两侧,不能有交集请教下如何实现算法,谢谢了!
1,
A,2005-3至2005-7
B,2005-5至2005-8
2,
A,2005-5至2005-8
B,2005-6至2005-7
3,
A,2005-5至2005-8
B,2005-8至2005-9
等等
这些都是交集时间范围B只能在时间范围A的两侧,不能有交集请教下如何实现算法,谢谢了!
A=DateTime.Parse("2005-5-1");
B=DateTime.Parse("2005-8-1");
C=DateTime.Parse("2005-8-1");
D=DateTime.Parse("2005-9-1");
TimeSpan T1=B-A;
TimeSpan T2=D-C;
TimeSpan T3=D-A;
if(T1.TotalMilliseconds+T2.TotalMilliseconds<T3.TotalMilliseconds)
{
Response.Write("无");
}
else
Response.Write("有");
DateTime end1 = DateTime.Parse(TextBox2.Text);
DateTime start2 = DateTime.Parse(TextBox3.Text);
DateTime end2 = DateTime.Parse(TextBox4.Text);TimeSpan ts1 = start2 - start1;
TimeSpan ts2;
if (ts1.Ticks > 0)
{
ts2 = start2 - end1;
if (ts2.Ticks > 0)
Response.Write("不相交");
else
Response.Write("相交");
}
else
{
ts2 = start1 - end2;
if (ts2.Ticks > 0)
Response.Write("不相交");
else
Response.Write("相交");
}以上只是一般的处理过程,至于是否能转换等细节问题自己处理下
return 有交集
else
return 没有交集