我有这个样本表格,用于设置和比较两个时间表。
如果在第一个时间表(时间开始和时间结束)之间,我想要捕获第二个时间表无法设置的时间。
例如: 第一个Sched: 上午8:00:00至10:00:00 我想捕获第二个时间表,以便它不能在第一个时间表之间设置,如8:30:00 AM,9:00:00 AM,9:30:00等。 .it将设置为上午10:00:00或以上。我怎么可能这样做?
我已经完成了某些代码,但想办法如何做到这一点对我来说很难。有人可以帮忙吗?
这是我的示例代码:
Private Sub Test_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
If timeStart.EditValue > timeEnd.EditValue Then
XtraMessageBox.Show("Time end must higher than time start", "", MessageBoxButtons.OK, MessageBoxIcon.Hand)
Exit Sub
ElseIf timeStart.EditValue = timeEnd.EditValue Then
XtraMessageBox.Show("Time start must not be equal to time end", "", MessageBoxButtons.OK, MessageBoxIcon.Hand)
Exit Sub
ElseIf timeStart1.EditValue < timeEnd.EditValue Then
XtraMessageBox.Show("Invalid", "", MessageBoxButtons.OK, MessageBoxIcon.Hand)
Exit Sub
ElseIf timeEnd1.EditValue < timeEnd.EditValue Then
XtraMessageBox.Show("Invalid", "", MessageBoxButtons.OK, MessageBoxIcon.Hand)
Exit Sub
End If
End Sub
答案 0 :(得分:1)
Dim t1Start = timeStart.EditValue
Dim t1End = timeEnd.EditValue
Dim t2Start = timeStart1.EditValue
Dim t2End = timeEnd1.EditValue
If (t2Start >= t1Start And t2Start <= t1End) Or _
(t2End >= t1Start And t2End <= t1End) Or _
(t1Start >= t2Start And t1Start <= t2End) Then
XtraMessageBox.Show("The times should not overlap", "", MessageBoxButtons.OK, MessageBoxIcon.Hand)
End If
有四种情况可能:
1st range <-------> <-------> <-------> <------->
2nd range <-----> <-----> <-----> <--------->
这可以处理重叠范围的所有情况。