String vb.NET的比较

时间:2014-02-06 05:34:31

标签: vb.net

我想比较与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”。 但第二个条件正在执行。请帮帮我。

2 个答案:

答案 0 :(得分:2)

那是因为你正在进行字符串比较,这意味着你的输入将被char比较,直到找到第一个差异。

第一个区别在于48之间的第二个字符。因为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