.NET 4.0 中的TimeSpan.ToString()方法有一个允许您指定格式的重载。
显示分钟和秒:
TimeSpan elapsed = GetElapsedTime(); // however you get the amount of time elapsed
string tsOut = elapsed.ToString(@"m\:ss");
要包括毫秒,您将编写:
string tsOut = elapsed.ToString(@"m\:ss\.ff");
但是请注意,如果总时间跨度超过 60 分钟,这将不会达到您的预期。显示的“分钟”值为elapsed.Minutes
,与 基本相同((int)elapsed.TotalMinutes) % 60)
。所以如果总时间是 70 分钟,上面会显示10:00
。
如果你想可靠地显示总分钟和秒,你必须自己做数学。
int minutes = (int)elapsed.TotalMinutes;
double fsec = 60 * (elapsed.TotalMinutes - minutes);
int sec = (int)fsec;
int ms = 1000 * (fsec - sec);
string tsOut = String.Format("{0}:{1:D2}.{2}", minutes, sec, ms);