如何从超过 24 小时的时间跨度显示小时和分钟

Rob*_*ski 1 c# formatting timespan

我的时间跨度是例如:

Timespan span = new Timespan(40,24,34);
Run Code Online (Sandbox Code Playgroud)

我有这条线

FormClock.Text = TimeToInstall.ToString(@"hh\:mm\:ss");
Run Code Online (Sandbox Code Playgroud)

我想像这样在文本中显示它:

40:24:34

这该怎么做?

Nik*_*nte 5

看看MSDN,你不能用标准的 .ToString() 格式来做。时间跨度的TotalHours属性似乎是您需要从几天到几小时的内容。

来自 MSDN:

TimeSpan 间隔 = new TimeSpan(1, 15, 42, 45, 750); Console.WriteLine("TimeSpan 的值:{0}", interval);

  Console.WriteLine("{0:N5} hours, as follows:", interval.TotalHours);
  Console.WriteLine("   Hours:        {0,3}", 
                    interval.Days * 24 + interval.Hours);
  Console.WriteLine("   Minutes:      {0,3}", interval.Minutes);
  Console.WriteLine("   Seconds:      {0,3}", interval.Seconds);
  Console.WriteLine("   Milliseconds: {0,3}", interval.Milliseconds);
Run Code Online (Sandbox Code Playgroud)

所以在你的情况下:

FormClock.Text = string.Format("{0}:{1}:{2}". TimeToInstall.Days * 24 + TimeToInstall.Hours, TimeToInstall.Minutes, TimeToInstall.Seconds); 
Run Code Online (Sandbox Code Playgroud)

如果它是您要经常使用的东西,您可以考虑将它滚动到某种扩展方法中。