So formatieren Sie eine TimeSpan für Stunden, nicht für Tage

8

Der folgende Code

%Vor%

erzeugt diese Ausgabe:

  

0 Stunden 0 Minuten

Was ich möchte, ist diese Ausgabe:

  

24 Stunden 0 Minuten

Was fehlt mir in dieser Formatzeichenkette?

P.S. Ich weiß, dass ich den TimeSpan manuell in Tage und Stunden zerlegen könnte, und multipliziere die beiden, würde aber lieber eine benutzerdefinierte Formatzeichenfolge verwenden, da diese Zeitspannen in einem silverlight Datagrid angezeigt werden und die Leute Horus sehen, nicht Tage / p>     

Ralph Shillington 18.04.2011, 14:00
quelle

2 Antworten

13

Laut MSDN wird %h Ihnen zeigen

  

Die Anzahl der ganzen Stunden im Zeitintervall, die nicht als Teil von Tagen gezählt werden .

Ich denke, Sie müssen die Eigenschaft TotalHours der Klasse TimeSpan wie:

verwenden %Vor%

Aktualisieren

Wenn Sie das angegebene Format unbedingt erreichen müssen, indem Sie benutzerdefinierte Formatierer an die Methode ToString übergeben, müssen Sie wahrscheinlich Ihre eigene CustomTimeSpan -Klasse erstellen. Leider können Sie nicht von struct erben, also müssen Sie es von Grund auf neu erstellen.

    
Chris Shouts 18.04.2011, 14:06
quelle
10

Es scheint keine Formatierungsoption zu geben, um die Gesamtstunden eines TimeSpan zu erhalten. Am besten verwenden Sie die TotalHours Eigenschaft stattdessen:

%Vor%

TotalHours gibt ein Double zurück, da es die Nachkommastellen enthält, also müssen Sie es auf nur den ganzzahligen Teil abschneiden.

    
ChrisF 18.04.2011 14:05
quelle