我正在使用算法编写调度程序。在算法的最后阶段,我需要查看时间表(创建的时间表),以查看学生当时是否已被分配到班级。确定两个时间范围是否重叠
因此,我们有:
Current Class Start Time: (2017, 02, 09, 10, 00, 00)
Current Class Finish Time: (2017, 02, 09, 11, 00, 00)
在这个时刻,我们将搜索到的时间表,看看有什么其他类学生A被分配到:
例如,让我们在同一天说,他们已分配给:
Class 'Z' Start Time: (2017, 02, 09, 09, 00, 00)
Class 'Z' Finish Time: (2017, 02, 09, 12, 00, 00)
现在我想找到类“Z”的时间范围,并将其与当前类的时间范围进行比较。
DateTime startClassZ = new DateTime(2017, 02, 09, 09, 00, 00);
DateTime endClassZ = new DateTime(2017, 02, 09, 12, 00, 00);
DateTime StartCurrent = new DateTime(2017, 02, 09, 10, 00, 00);
DateTime StartCurrent = new DateTime(2017, 02, 09, 11, 00, 00);
if (They do not clash)
{
Assign
}
if (Clash)
{
Select Another Student
}
任何人都可以请我帮助我的'IF声明',以及如何解决这个问题。
,我想它的方式,有三种可能性:
- 如果“当前类”(开始和结束时间),“Z类”(冲突1)
- 如果之间的土地“开始时间”'当前类的土地的在“级Z”(冲突2)
- 之间。如果在“级Z”(冲突3)
谢谢
“的方式,我我在想,有三种可能性:“你是否尝试过实现这一点,看看会发生什么?你已经尝试了什么? http://stackoverflow.com/help/how-to-ask – AndyJ
由于班级的长度不尽相同,因此有三种以上的可能性。因此,您有四个变量:开始A,结束A,开始B,结束B.组合为:1)A在B开始前开始和结束2)A在B之前开始并在B之前结束3)A开始于B之前并在B 4)A在B之后开始,B在B之前结束5)A在B之后开始并在B之后结束6)A在B结束之后开始 – jdweng
不,因为我想知道是否会有一个解决方案, 09:00:00到12:00:00然后我可以使用if语句来查看开始时间结束时间或新变量(10:00:00到11:00:00)是否会落在Z类变量之间( 09:00:00到12:00:00) –