如何比较网络表单中下拉列表中的2个时间



我正在尝试比较开始时间和结束时间值,以确保结束时间永远不会早于开始时间。如果时间较早,则会显示一条错误消息。但我永远无法让它发挥作用。如果可能的话,请帮忙。非常感谢。

下面是我的vb.net代码:

Private Sub TimeChk(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim Time1 As Integer
Time1 = bkDDlist_strTime.SelectedItem.Value
Dim Time2 As Integer
Time2 = bkDDlist_endTime.SelectedItem.Value
Dim msg As String
If (Time2 < Time1) Then
msg = "Invalid End Time"
End If
End Sub

下拉列表HTML代码。开始时间标签是"0";bkDDlistrongtrTime";并且结束时间是"0";bkDDlist_endTime";

下拉列表代码


按照建议更改代码后。

Sub TimeChk()
Dim Time1 = Convert.ToDouble(bkDDlist_strTime.SelectedItem.Value)
Dim Time2 = Convert.ToDouble(bkDDlist_endTime.SelectedItem.Value)
If (Time2 < Time1) Then
MessageBox.Show("Invalid End Time")
End If
End Sub

<asp:CompareValidator runat="server" ID="CompareValidator1" 
ControlToCompare="bkDDlist_strTime" ControlToValidate="bkDDlist_endTime" 
Display="Dynamic" Operator="GreaterThan" Type="Double" Text="Invalid End 
Time"></asp:CompareValidator>

VB代码:

Sub TimeChk()
CompareValidator1.ValueToCompare = bkDDlist_endTime.SelectedItem.Value
End Sub

只有一个项实际具有Value。使用值作为小时数,使用文本作为时间的漂亮表示,如下图所示:

<asp:ListItem Value="8"  >08:00</asp:ListItem>
<asp:ListItem Value="8.5">08:30</asp:ListItem> 
...

并将您的Time1Time2作为Double

使用Time1 = Convert.ToDouble(bkDDlist_strTime.SelectedItem.Value),因为现在。Value是字符串

然后,你不仅可以用Time2 < Time1来计算出时间是错误的(如果是,只需交换它们,不要给用户错误。试着编程对用户有帮助,而不是一直给用户错误消息(,而且你还可以通过Time2 - Time1:来计算出林特瓦尔有多长

17 - 9.5 = 7.5 hours
1700 - 930 = 770 <-- it's not anything, not minutes, not hours, no sense to use it

最新更新