Метод TimeSpan.ToString () в .NET 4.0 имеет перегрузку, позволяющую указать формат.
Для отображения минут и секунд:
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);