C# MessageBox.Show(TimeSpan)

C# MessageBox.Show(TimeSpan),c#,.net,messagebox,timespan,C#,.net,Messagebox,Timespan,我想在MessageBox中显示TimeSpan,但出现错误: DateTime date1 = new DateTime(byear, bmonth, bday, 0, 0, 0); DateTime datenow = DateTime.Now; TimeSpan age = datenow - date1; MessageBox.Show(ToString(age)); 错误1方法“ToString”没有重载接受“1”个参数 如何输出带有TimeSpan的messagebox 虽然你可

我想在MessageBox中显示TimeSpan,但出现错误:

DateTime date1 = new DateTime(byear, bmonth, bday, 0, 0, 0);
DateTime datenow =  DateTime.Now;
TimeSpan age = datenow - date1;
MessageBox.Show(ToString(age));
错误1方法“ToString”没有重载接受“1”个参数

如何输出带有TimeSpan的messagebox


虽然你可能不喜欢这个结果。如果您想要一种特定的格式,您必须自己实现它。

您必须使用age.ToString

或者您可以使用Convert.ToString来保持现有的格式

这看起来不太好,TimeSpan在.NET3.5及更早版本上缺少一个像样的ToString覆盖。使用DateTime.ToString方法解决此问题:

  string txt = new DateTime(Math.Abs(age.Ticks)).ToString("h:mm:ss");
  if (age.Ticks < 0) txt = "-" + txt;
  MessageBox.Show(txt);

MessageBox.Showage.ToString;
  string txt = new DateTime(Math.Abs(age.Ticks)).ToString("h:mm:ss");
  if (age.Ticks < 0) txt = "-" + txt;
  MessageBox.Show(txt);