VB.Net日期之间的日子

时间:2016-07-28 12:16:36

标签: vb.net

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

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

CaseOpenDays是标签,DateReported.text也是标签。

我抛出了这个错误:

  

类型的价值' System.TimeSpan'无法转换为'字符串'

我在这里缺少什么?

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

答案 2 :(得分: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.

答案 3 :(得分: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")