So formatieren Sie eine Zeitspanne für Stunden nicht Tage
Den folgenden code
Console.WriteLine("{0:%h} hours {0:%m} minutes",
new TimeSpan(TimeSpan.TicksPerDay));
erzeugt diese Ausgabe:
0 Stunden 0 Minuten
Was ich möchte, ist diese Ausgabe:
24 Stunden 0 Minuten
Was bin ich in diesem format-string?
P. S. ich weiß, dass ich könnte manuell Büste bis die Zeitspanne in Tagen und Stunden, und multiplizieren Sie die beiden aber lieber mit einem benutzerdefinierten format-string, wie diese Zeitspannen angezeigt werden in einem silverlight datagrid und die Leute erwarten, um zu sehen, horus, nicht in Tagen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laut MSDN, mit
%h
wird Ihnen zeigen,Ich denke, du musst die
TotalHours
Eigenschaft desTimeSpan
Klasse wie:Update
Wenn Sie unbedingt brauchen, um in der Lage, die zur Erreichung der genannten format übertragen von benutzerdefinierten formatter die
ToString
Methode, werden Sie wahrscheinlich benötigen, um erstellen Sie Ihr eigenesCustomTimeSpan
Klasse. Leider kann man nicht Erbenstruct
, so müssen Sie bauen es von Grund auf.Scheint es nicht zu sein, ein format-option für Sie immer die gesamten Stunden aus einem
TimeSpan
. Ihre beste Wette wäre, um dieTotalHours
Eigentum statt:TotalHours
gibt ein double zurück, wie es die gebrochene Stunden, so müssen Sie es abschneiden, um nur den ganzzahligen Teil.TimeSpan
aber es gibt keine Multiplikation benötigt.