var span = System.TimeSpan.FromMinutes(121);
var hours = ((int)span.TotalHours).ToString();
var minutes = span.Minutes.ToString();
Die ToString() ist, weil Sie für String-Wert gefragt ...
TotalHours die vollen Stunden in dem Timespan sind, können sie mehr als 24 (während der "Stunden" -Feld sein hat ein Maximum von 24)
Oh, und auf den zweiten Gedanken: Warum die TimeSpan verwenden und nicht selbst berechnen? Da TimeSpan bereits von Microsoft getestet wurde, verfügt es über eine nette, saubere Schnittstelle (mit Blick auf den Code, den Sie leicht sehen, was los ist, ohne eine Berechnung im Kopf zu haben) und es erstreckt sich leicht auf weitere Lösungen. (Haben Sie die Eingabe in Sekunden Verwenden Sie TimeSpan.FromSeconds() die Tage Willst du Verwenden span.TotalDays ...?.?)
Update:
Ich habe gerade bemerkt, Fehler in meiner Antwort: TotalHours Rückkehr ein Bruchwert aller Stunden, also müssen wir ihn auf eine ganze Zahl abschneiden, bevor wir ihn in eine Zeichenkette umwandeln.
Dadurch werden Minuten nicht mit Nullen aufgefüllt. Hinzufügen von ToString ("00") sollte es beheben. – Coincoin
@ Coincoin: Blick auf OP-Beispiel für 121 Minuten. Keine Auffüllung ist erforderlich. –
Mein Fehler. Danke, dass du es aufgezeigt hast. – Coincoin