【问题标题】:DateDiff doesn’t work with nullablesDateDiff 不适用于可空值
【发布时间】:2013-08-17 20:53:28
【问题描述】:

我试图找出可空日期之间的区别。 DateDiff(DateInterval.Day, firstDate, secondDate) 适用于 Date,但不适用于 Nullable(Of Date)。我的两个日期都是可为空的字段。

这是错误信息:

重载解析失败,因为没有缩小转换就无法调用可访问的DateDiff

  • Public Function DateDiff(Interval As String, Date1 As Object, Date2 As Object, [DayOfWeek As Microsoft.VisualBasic.FirstDayOfWeek = FirstDayOfWeek.Sunday], [WeekOfYear As Microsoft.VisualBasic.FirstWeekOfYear = FirstWeekOfYear.Jan1]) As Long:自变量匹配参数IntervalMicrosoft.VisualBasic.DateInterval缩小到String

  • Public Function DateDiff(Interval As Microsoft.VisualBasic.DateInterval, Date1 As Date, Date2 As Date, [DayOfWeek As Microsoft.VisualBasic.FirstDayOfWeek = FirstDayOfWeek.Sunday], [WeekOfYear As Microsoft.VisualBasic.FirstWeekOfYear = FirstWeekOfYear.Jan1]) As Long:参数匹配参数Date1Date?缩小到Date

  • Public Function DateDiff(Interval As Microsoft.VisualBasic.DateInterval, Date1 As Date, Date2 As Date, [DayOfWeek As Microsoft.VisualBasic.FirstDayOfWeek = FirstDayOfWeek.Sunday], [WeekOfYear As Microsoft.VisualBasic.FirstWeekOfYear = FirstWeekOfYear.Jan1]) As Long:参数匹配参数Date2Date?缩小到Date

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    您必须在可空的Date 对象上调用.Value

    DateDiff(DateInterval.Day, firstDate.Value, secondDate.Value) 
    

    【讨论】:

      【解决方案2】:

      如果您知道他们不是 Nothing,请获取他们的值:

      DateDiff(DateInterval.Day, firstDate.Value, secondDate.Value)
      

      但您可以利用operator overloading,因为这不是 VB6:

      (secondDate.Value - firstDate.Value).Days
      

      【讨论】:

        【解决方案3】:

        迟到 2 年才回答这个问题.... :)

        上述错误可能是由数据类型未匹配引起的。 使用 DateValue 函数,例如

        DateDiff(DateInterval.Day, DateValue(stringwiDate.text), DateValue(string2witDate.text))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-07-30
          • 2017-08-11
          • 1970-01-01
          • 1970-01-01
          • 2021-09-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多