我怎样才能测试开始时间是否小于结束时间

时间:2015-08-10 01:46:13

标签: vb.net

我正在使用vb .net。

我有两个名为startTimeDDL和endTimeDDL的dropdownList。比我使用循环进入那些下拉列表中的时间。所以看下面,那将在那些dropdownList中。不过格式是hh:mm am / pm。

12:00 AM
12:30 AM
01:00 AM
01:30 AM
02:00 AM
...
11:30 PM

问题:

我想查看startTimeS(String)是否小于endTimeS(String). startTimeS >= endTimeS

由于某种原因我的代码没有检查AM或PM。它只检查数字。所以例如下面的行将工作正常bc 12:00小于12:30。这很好,它不会进入if语句。

12:00 AM >= 12:30 AM - works: doesnt goes inside if statment

但在线下方,此12:00大于1:00,它将进入if语句。这是错误的,因为你可以看到igone是am还是pm。它不应该进入if语句bc 12:00 AM小于凌晨1:00。

12:00 AM >= 01:00 AM - error: goes inside the if statment

如何修改我的代码以测试时间?

代码:

'Start time is less than end time
If "#" & StartTimeS & "#" >= "#" & EndTimeS & "#" Then
    ErrorS &= " - Start Time has to be less than End Time.<br/>"
End If

3 个答案:

答案 0 :(得分:2)

您的问题是您要比较字符串,而不是日期。将您的时间转换为正确的DateTime对象并进行比较。

Dim c, d as DateTime
c = Convert.ToDateTime(startTimeS)
d = Convert.ToDateTime(endTimeS)
return c >= d

答案 1 :(得分:0)

在比较之前将字符串转换为DateTime。截至目前,您只是比较字符串

If DateTime.Parse(StartTimeS) >= DateTime.Parse(EndTimeS) Then
            'do you stuff
        end if

Here is a working example : fiddle

答案 2 :(得分:0)

只要组合框以相同的顺序填充相同的数据,您就可以使用它们的索引位置来检查大于或小于。您可能希望startTime的selectedIndex小于或等于endTime。

If startTimeDDL.SelectedIndex <= endTimeDDL.SelectedIndex Then
    ' Do something
End If