【问题标题】:How to ensure a date is valid?如何确保日期有效?
【发布时间】:2017-12-14 23:16:22
【问题描述】:

我下面的代码将文件名的某些部分分配给变量。这里重要的是变量“yearandmonth”,它是一个格式为“yyyy-mm”的字符串

Dim fileparts() As String
            Dim delimiter As String = " - "
            Dim company As String
            Dim type As String
            Dim bank As String
            Dim bankaccount As String
            Dim yearandmonth As String 
            Dim fileyear As String
            Dim filemonth As String

            fileparts = Split(localFileName, delimiter)
            company = fileparts(0)
            type = fileparts(1)
            bank = fileparts(2)
            bankaccount = fileparts(3)
            yearandmonth = Left(fileparts(4), 7) ' RESULTS IN A STRING THAT WILL LOOK LIKE "yyyy-mm"
            fileyear = Left(yearandmonth, 4) ' results in "yyyy"
            filemonth = Right(yearandmonth, 2) ' results in "mm"

如何确保“yearandmonth”的输出是有效的年、月并且包含“-”?

【问题讨论】:

    标签: .net vb.net date datetime


    【解决方案1】:

    您可以使用 DateTime.TryParse 方法来验证日期字符串是否是有效的日期格式,如下面的代码:

    Dim dateStrings() As String = {"yyyy-mm"}
    Dim dateValue As Date
    
    If DateTime.TryParseExact(mystring, dateStrings, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateValue) Then
        'Do for Valid Date
    Else
        'Do for Invalid Date
    End If
    

    【讨论】:

    • 这个检查格式是否正确,对吧?我想检查年份和月份是否有效。例如:2017/13。 “13”是MM,但只有12个月。我想检查一下
    • 检查应该验证传入的年份和月份是否有效。如果您想对该特定月份值本身进行手动检查,我想您应该创建一个简单的验证方法。 If month 12 Then 'Do for valid month Else 'Do for invalid month End If 这只是一个粗略的想法,你应该把它转换成 vb.net 语法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 2011-10-20
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 2019-06-25
    • 2013-06-23
    相关资源
    最近更新 更多