2012-06-13 8 views
9

szukam roztwór w .NET 3.5 I napisał następujący Roztwór roboczy:Format TimeSpan do mm: ss pozytywnych i negatywnych TimeSpans

private string FormatTimeSpan(TimeSpan time) 
{ 
    return String.Format("{0}{1:00}:{2:00}", time < TimeSpan.Zero ? "-" : "", Math.Abs(time.Minutes), Math.Abs(time.Seconds)); 
} 

ale moje pytanie brzmi: Czy jest jakiś lepszy sposób? Może coś krótszego, gdy nie potrzebuję funkcji pomocnika.

Odpowiedz

21

Nieco krótsze, używając Custom TimeSpan Format Strings:

private string FormatTimeSpan(TimeSpan time) 
{ 
    return ((time < TimeSpan.Zero) ? "-" : "") + time.ToString(@"mm\:ss"); 
} 
+0

nie powinien pojawić się znak ujemny automatycznie z time.ToString ()? – Tisho

+4

@Tisho - Nie, nie z niestandardowym łańcuchem formatu. I nie ma dla niego specyfikatora formatu niestandardowego. – Oded

+1

Och, racja. Działa tylko dla "c", "g" .. Dzięki. – Tisho

2

na poniższym .Net 4.0

Można użyć:

get { return Time.ToString().Substring(3); } 
+0

Myślę, że to sprytny hack. – Infrid

Powiązane problemy