首页 文章

VB.Net日期之间的日子

提问于
浏览
-1

我正在尝试使用以下代码计算今天和过去日期之间的日期:

CaseOpenDays.Text = (DateTime.Now.Subtract(CDate(DateReported.Text)))

其中 CaseOpenDays 是标签, DateReported.text 也是标签 .

我抛出了这个错误:

'System.TimeSpan'类型的值无法转换为'String'

我在这里错过了什么?

4 回答

  • 1

    你必须使用 TimeSpan.DaysTimeSpan.TotalDays

    Dim timeSinceReporting As TimeSpan = DateTime.Now - CDate(DateReported.Text)
    CaseOpenDays.Text = CInt(timeSinceReporting.TotalDays).ToString()
    

    另一种方式是TimeSpan.ToString

    CaseOpenDays.Text = timeSinceReporting.ToString("dd")
    
  • 1

    您忘记将TimeSpan结果转换为某些文本内容,例如在其上调用ToString

    CaseOpenDays.Text = DateTime.Now.Subtract(CDate(DateReported.Text)).ToString
    
  • 1

    (DateTime.Now.Subtract(CDate(DateReported.Text))) 返回一个时间 Span 而不是一个字符串:)

  • 1

    当您减去两个DateTime结构时,最终会得到TimeSpan结构 . 这很合乎逻辑 . 您的TimeSpan是一个具有方法的结构,不能直接转换为String ...

    在这里你可以做到:

    Dim ts As TimeSpan = DateTime.Now.Subtract(CDate(DateReported.Text))
    CaseOpenDays.Text = ts.Days.toString()
    

    您还可以使用TotalDays方法 . Here is the explanation of the difference.

相关问题