选择案例转换未正确显示,如何解决



我有一个可执行文件,当运行时,它会接受输入的日期,然后选择需要的日期后缀,但是它总是默认为其他情况。

当我将 02/04/2017 作为格式 DD/MM/YYYY 时,以下情况的结果是 4 月 2 日而不是 2 日......

谁能启发我这个问题。

    Dim Datewc As Date = Nothing
    If CheckBox1.Checked Then
        Datewc = TextBox1.Text
    End If
    'Determine date suffix
    Dim datsuff As String = ""
    Select Case CInt(Datewc.Day)
        Case 1 Or 21 Or 31
            datsuff = "st"
        Case 2 Or 22
            datsuff = "nd"
        Case 3 Or 23
            datsuff = "rd"
        Case Else
            datsuff = "th"
    End Select

解析你的日期

Dim dDate As DateTime = 
  DateTime.ParseExact(TextBox1.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture)

稍微更改一下代码,应该可以工作。Day 函数返回整数,无需使用 CInt 进行强制转换。

 'Determine date suffix
Dim datsuff As String = ""
Select Case Datewc.Day
    Case 1 , 21 , 31
        datsuff = "st"
    Case 2 , 22
        datsuff = "nd"
    Case 3 , 23
        datsuff = "rd"
    Case Else
        datsuff = "th"
End Select

解释

Case 2 Or 22的意思是Case ((2 Or 22) ==true),因此会是假的,因此去别的。

最新更新