我想比较与String值比较。
Dim tod As String = "04/02/2016_01:20"
Dim DBookTo As String = "08/02/2014_01:30"
If tod = DBookTo
'do something
If tod<DBookTo
'do something
If tod>DBookTo
'dosomething
endif
理想情况下,我想在这里执行第3个条件,因为“08/02 / 2014_01:30”小于“04/02 / 2016_01:20”。 但第二个条件正在执行。请帮帮我。
答案 0 :(得分:2)
那是因为你正在进行字符串比较,这意味着你的输入将被char比较,直到找到第一个差异。
第一个区别在于4
和8
之间的第二个字符。因为4
低于8
,所以tod
低于DBookTo
。
要使其工作并真正比较值,而不是字符串表示,您必须使用正确的类型,在您的情况下是DateTime
:
Dim tod As DateTime = New DateTime(2016, 2, 4, 1, 20, 0)
Dim DBookTo As DateTime = New DateTime(2014, 2, 8, 1, 30, 0)
您还可以使用DateTime
方法从字符串中获取DateTime.ParseExact
个实例:
Dim todString As String = "04/02/2016_01:20"
Dim DBookToString As String = "08/02/2014_01:30"
Dim tod As DateTime = DateTime.ParseExact(todString, "MM/dd/yyyy_hh:mm", System.Globalization.DateTimeFormatInfo.InvariantInfo)
Dim DBookTo As DateTime = DateTime.ParseExact(DBookToString, "MM/dd/yyyy_hh:mm", System.Globalization.DateTimeFormatInfo.InvariantInfo)
答案 1 :(得分:0)
看起来你想要比较日期。因此,您可以使用日期变量而不是字符串。
例如:
Dim dt1 as Date=#15/2/2014 8:00:00#
Dim dt2 as Date=#14/3/2012 6:00:00#
if dt1>dt2
'when dt1 comes later in the calender than dt2 (which is the case here)
elseIf dt1<dt2
'when dt1 comes before dt2
else
'when both are same
end if