您可以将值强制为“日期”类型吗?

shm*_*ink 1 vb.net date leap-year

我遇到了一个错误,在该错误中,权宜之计是将某些值强制Date输入类型。

这将包括能够执行以下操作Dim myDate As Date = New Date(1900, 2, 29)

2月29日是a日,但1900年不是a年,因此,这不是有效日期,甚至不允许创建。有没有办法用这些值创建它?

小智 5

您不能将无效日期强制输入System.DateTime。在这里看看:https : //docs.microsoft.com/zh-cn/dotnet/api/system.datetime?view=netframework-4.8

为什么不使用Date.IsLeapYear(1900)检查应设置哪个日期值?

这里有两个例子:

    Dim myDate As Date
    Dim myYear As Integer = 1900
    If Date.IsLeapYear(myYear) Then
        myDate = New Date(1900, 2, 28)
    Else
        myDate = New Date(1900, 2, 29)
    End If

    Dim myDate2 As Date
    Dim myYear2 As Integer = 1900
    If Date.IsLeapYear(myYear2) Then
        myDate2 = New Date(1900, 3, 1)
    Else
        myDate2 = New Date(1900, 2, 29)
    End If
Run Code Online (Sandbox Code Playgroud)