如何转换文本框年份日期值以检查它是否只有2位数?

时间:2017-04-24 14:46:57

标签: vb.net winforms

我遇到的问题与只能在字段year上插入2位数有关,我想知道是否可以使用值为2017的字符串并且只有在按下按钮时才插入17

我尝试使用CONTAINS属性来检查它是否只有数字,但现在我有点卡住了。

3 个答案:

答案 0 :(得分:1)

您可以使用字符串/子字符串概念;

Module DateSplit
    Sub Main()
      Dim literal As String = "2017"
      Dim substring As String = literal.Substring(2)
      Console.WriteLine("Substring: {0}", substring)
   End Sub
End Module

我没有测试此代码,但应输出17

另一种方法是将日期转换为字符串并创建一个char数组,然后您可以访问该元素并将其转换回数字(如果您愿意)

Dim dateToSplit As Integer = 2017
Dim strDate As String = dateToSplit.ToString()

Dim charArr() AS Char = strDate.ToCharArray()

答案 1 :(得分:1)

假设您的用户在文本框中输入如下日期:01/01/2017

dim dateFromTextbox = yourTextbox.Text ' ==> 01/01/2017
dim lastTwoDigits = Right(dateFromTextbox, 2)  ' ==> 17

答案 2 :(得分:1)

你可以使用正则表达式。

Private Function returnLastTwo(input As Integer) As Integer
    Dim matchYearString As String = "(?:(\d\d)(?:(\d\d))?)"
    Dim output As Integer
    If CStr(input).Length = 4 Then
        output = Text.RegularExpressions.Regex.Match(CStr(input), matchYearString).Groups(2).Value
    ElseIf CStr(input).Length = 2 Then
        output = Text.RegularExpressions.Regex.Match(CStr(input), matchYearString).Groups(1).Value
    Else
        Throw New Exception("Check input")
    End If
    Return output
End Function