Benutzereingabe ist 555 Ich möchte es 05:55:00 (TimeSpan). Wie konvertiert man es in TimeSpan? Welches Format verwenden?Parsing 3-stellige Eingabe als TimeSpan
edit: In Details möchte ich Benutzer String Intput auf Stunden und Minuten formatieren hh: mm. ZB Benutzereingabestring:
- "5" 05:00
- "12" zu sein 12:00
- "1111" sein zu 11:11
- "0.12" zu seine 12:12
- "4.44" sein 4:44
- und man nicht "555" Arbeits 5.55 zu sein (wirft Ausnahme)
jetzt verwende ich:
private static string[] _foramts = {"%hmm", "hmm", "hhmm","%h", "hh\\:mm", "%h\\:mm" };
return TimeSpan.ParseExact((string)value, _foramts, CultureInfo.InvariantCulture).ToString("hh\\:mm");
mit PadLeft, jetzt gibt es keine Ausnahme, aber ....
var d = TimeSpan.ParseExact(((string)value).PadLeft(4, '0'), new string[] { "%hmm", "hmm", "hhmm", "%h", "hh\\:mm", "%h\\:mm" }, CultureInfo.InvariantCulture).ToString("hh\\:mm");
"5" ist jetzt 00.05 Uhr und ich möchte es 05:00
Ich denke, Sie müssen es von Hand entweder tun, erhalten Sie die Eingabe als 'String' und tun Sie * Teilstring * oder verwenden Sie als' int' und tun einige '%' und '/' zu bekommen die Ziffern, die Sie benötigen. – Luiso
Es ist bereits Zeichenfolge. Ich habe gerade eine Lösung gefunden, aber nicht nach Format. Machen Sie einfach: '.PadLeft (4, '0')' mit Benutzer-String-Eingabe. – gurth
Das ist wirklich eine schlechte Methode, aber funktioniert: TimeSpan ts = TimeSpan.FromSeconds ((60 * (int) (int.Parse (Eingabe)/100)) + (int.Parse (Eingabe)% 100)); – jdweng