我正在使用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
答案 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
答案 2 :(得分:0)
只要组合框以相同的顺序填充相同的数据,您就可以使用它们的索引位置来检查大于或小于。您可能希望startTime的selectedIndex小于或等于endTime。
If startTimeDDL.SelectedIndex <= endTimeDDL.SelectedIndex Then
' Do something
End If