Timespan.TotalDays - 无法将double转换为字符串

时间:2018-05-30 16:46:05

标签: c# .net datetime timespan subtraction

我在谷歌和这里寻找解决方案但是找不到任何相关信息。我试图在日期之间产生分歧。我写了像

这样的东西
TimeSpan difference = timealarm.Subtract(DateTime.Now);

其中timealarm为DateTime.Now + 3 hours。这条线似乎很好。我正在尝试使用

MessageBox.Show(difference.TotalMinutes);

然后我收到标题中提到的错误:

  

无法将'double'类型转换为'string'。 Visual Studio显示错误   这里 - difference.TotalMinutes。

我是.net和c#的新手,我想这很简单。

2 个答案:

答案 0 :(得分:4)

MessageBox.Show接受一个字符串。 difference.TotalMinutes的类型为double。没有从doublestring的隐式转换,但您可以调用ToString方法:

MessageBox.Show(difference.TotalMinutes.ToString());

这将只使用您正在运行的默认文化来转换价值。 (例如,它是否使用逗号或句点作为小数分隔符将取决于您的系统。)

通常,当您收到这样的错误时,您应该检查:

  • 是你的"来源"键入(在这种情况下为double)您期望它是什么?如果没有,也许你应该改变你正在计算的东西。
  • 是你的目标"键入(在这种情况下为string)您期望它是什么?如果没有,也许你应该改变你打电话的方式,或者你如何使用这个价值。

如果这些类型都有意义,那么您需要考虑如何转换来自"来源"键入" target"类型 - 这将取决于上下文。

答案 1 :(得分:0)

MessageBox需要一个字符串,你的值是一个double 你只需将double转换为字符串就像这样

MessageBox.Show(difference.TotalMinutes.ToString());