对超过 60 分钟的值使用时间跨度

Using timespan for values above 60 minutes

我在 C# 中使用时间跨度将小数转换为时间

TimeSpan.FromMinutes(59.42).ToString("mm\:ss");输出 59:25。但是我想处理 60 以上的分钟,例如:

TimeSpan.FromMinutes(62.87).ToString("mm\:ss") 我想输出为 62:52 但我得到的是 02.52.

.Net 有办法解决这个问题吗?

您正在创建所需的 TimeSpan,只是没有正确显示它。

格式字符串中的 "mm" 项给出分钟数 属性(始终在 0-59 范围内)而不是总分钟数 属性(总分钟数时间跨度)。

TimeSpan ts = TimeSpan.FromMinutes(62.8);
string output = string.Format("{0}:{1}", 
     // Display the total minutes, throwing away the fractional portion.
     (int) ts.TotalMinutes, 
     // Display the seconds component (0-59) as two digits with a leading
     // zero if necessary.
     ts.Seconds.ToString("D2"));