Benutzer mit den meisten Antworten
Korrekte Usereingabe für DATETIME erforderlich

Frage
-
Hallo Leute,
muß für die Ausbildung eine Konsolenanwendung in C# schreiben,welche Flüge verwaltet. Dazu ist es erforderlich,dass der User eine Startzeit des Fluges eingibt. die Starzeit hat den Datentyp DATETIME. Egal,wie ich das Format eingebe, es wird immer die Exception ausgelöst.Weiß jemand Rat?
case "fH"://Flug hinzufügen bool wiederholen = true; int number=0; while (wiederholen) { Console.Write("Bitte geben Sie die Flug-Id ein:"); number = Convert.ToInt32(Console.ReadLine()); wiederholen = flug_.Nummer_vorhanden(number); //rufe die Methode auf und weise das Resultat 'wiederholen' zu if (wiederholen) Console.WriteLine("Flug-Id bereits vergeben"); } try { Properties flug_Objekt = new Properties(); flug_Objekt.Nummer = number; //weise die Usereingabe der entsprechenden Property der Klasse 'Properties' zu Console.Write("Bitte geben Sie den Startflughafen ein:"); string Ort = Console.ReadLine(); flug_Objekt.Startort = Ort; Console.Write("Bitte geben Sie den Zielflughafen ein:"); string Ziel = Console.ReadLine(); flug_Objekt.Zielort = Ziel; Console.Write("Bitte geben Sie die Flugdauer ein:"); int dauer = Convert.ToInt32(Console.ReadLine()); flug_Objekt.Flugzeit = dauer; Console.Write("Bitte geben Sie die Passagierkapazität ein:"); int anzahl = Convert.ToInt32(Console.ReadLine()); flug_Objekt.Passagiere_Anzahl = anzahl; Console.Write("Bitte geben Sie die Startzeit ein:"); DateTime startzeit = Convert.ToDateTime(Console.ReadLine()); //DateTime startzeit_ = new DateTime(startzeit); flug_Objekt.Startzeit = startzeit; flug_.hinzufuegen(flug_Objekt); //rufe die Methode der Klasse 'Flugverwaltung' auf }catch(Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine("\nBitte beachten Sie,dass der Starttermin wie folgt eingegegeben werden muß:\nFür z.B. 23.09.2017/13.43 Uhr -->2017,09,23,13,43"); } break;
Antworten
-
Hallo,
versuche es mal mit DateTime.Parse oder DateTime.TryParse (keine Exception).
Ich würde aber alle Wert einzeln abfragen Tag, Monat, Jahr, Stunde, Minute diese auf Gültigkeit prüfen und an den Konstruktor übergeben.
var dt = new DateTime(int year, int month, int day, int minute, int second)
Da man sonst noch prüfen müsste in welche kulturellen Form die Eingabe erfolgt und das lässt sich mit 100% Sicherheit nicht feststellen
Gruß, Thomas
Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!
- Bearbeitet Thomas Wycichowski Mittwoch, 26. April 2017 23:18
- Als Antwort vorgeschlagen Guido Franzke Donnerstag, 27. April 2017 05:51
- Als Antwort markiert tklustig Donnerstag, 27. April 2017 07:01
Alle Antworten
-
Hallo,
versuche es mal mit DateTime.Parse oder DateTime.TryParse (keine Exception).
Ich würde aber alle Wert einzeln abfragen Tag, Monat, Jahr, Stunde, Minute diese auf Gültigkeit prüfen und an den Konstruktor übergeben.
var dt = new DateTime(int year, int month, int day, int minute, int second)
Da man sonst noch prüfen müsste in welche kulturellen Form die Eingabe erfolgt und das lässt sich mit 100% Sicherheit nicht feststellen
Gruß, Thomas
Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!
- Bearbeitet Thomas Wycichowski Mittwoch, 26. April 2017 23:18
- Als Antwort vorgeschlagen Guido Franzke Donnerstag, 27. April 2017 05:51
- Als Antwort markiert tklustig Donnerstag, 27. April 2017 07:01