.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);