ich: passe die folgende Methode so an, sodass bei eine leere Eingabe die aktuelle Zeit genommen wird, ansonsten soll eine schon festgelegte Einfahrts und Ausfahrtszeit gelten zum Testzwecken: // Methode zum Ausfahren eines PKWs anhand des Kennzeichens public void ausfahren(String kennzeichen) { PKW zuEntfernen = null; //PKW, der rausfahren will // Überprüfen, ob das Auto mit demselben Kennzeichen bereits existiert und setze das als zuEntfernen for (PKW pkw : parkendePkws) { if (pkw.getKennzeichen().equals(kennzeichen)) { zuEntfernen = pkw; break; } } // Falls Auto zum Entfernen gibt if (zuEntfernen != null) { // Berechnung der Gebühren double gebuehren = berechneGebuehren(kennzeichen, new Date()); // Nimmt die aktuelle Zeit an // Gebührenkonto aktualisieren zuEntfernen.setGebuehrenkonto(gebuehren); // Schulden für unbezahlte Gebühren hinzufügen // Falls Gebühren vorhanden sind if (gebuehren > 0) { Date ausfahrt = new Date(); //aktuelle Zeit für Ausfahrt System.out.println("Parkdauer in Minuten: " + berechneParkdauer(kennzeichen, ausfahrt)); System.out.println("Parkgebühren in Cent: " + zuEntfernen.getGebuehrenkonto()); // Kreditkartenvalidierung vor Ausfahrt Scanner scanner = new Scanner(System.in); System.out.println("Bitte geben Sie Ihre 16-stellige VISA-Kreditkartennummer ein:"); String kreditkartenNummer = scanner.nextLine(); if (pruefeKreditkarte(kreditkartenNummer)) { System.out.println("Zahlung erfolgreich. Sie dürfen ausfahren."); zuEntfernen.setGebuehrenkonto(0); // Gebühren auf 0 setzen System.out.println("Bezahlte Summe: " + zuEntfernen.getGebuehrenkonto()); // PKW aus der Liste entfernen parkendePkws.remove(zuEntfernen); // Hier wird der PKW endgültig entfernt System.out.println("PKW mit Kennzeichen " + kennzeichen + " hat die Gebühren bezahlt und darf rausfahren.\n"); } else { System.out.println("Ungültige Kreditkartennummer. Zahlung fehlgeschlagen."); System.out.println("Offenes Gebührenkonto: " + zuEntfernen.getGebuehrenkonto()); } } else { // Gebührenfrei (unter 15 Minuten oder andere Ausnahme) Date ausfahrt = new Date(); System.out.println("Parkdauer in Minuten: " + berechneParkdauer(kennzeichen, ausfahrt)); System.out.println("Parkgebühren in Cent: " + zuEntfernen.getGebuehrenkonto()); System.out.println("PKW mit Kennzeichen " + kennzeichen + " darf gebührenfrei ausfahren."); } // PKW aus der Liste nicht entfernen und Kapazität aktualisieren this.kapazitaetVerfuegbar++; this.belegt--; System.out.println("PKW mit Kennzeichen " + kennzeichen + " hat die Ausfahrt durchgeführt.\n"); } else { System.out.println("Kein PKW mit diesem Kennzeichen gefunden.\n"); } } KI:Um die Methode so anzupassen, dass sie entweder die aktuelle Zeit oder manuell eingegebene Einfahrts- und Ausfahrtszeiten für Debuggingzwecke nutzen, müssen wir die Zeit bei leerer Eingabe dynamisch übernehmen, aber die Möglichkeit offen lassen, manuelle Zeiten für Testzwecke zu verwenden. Hier ist die angepasste Version: Angepasste Methode ausfahren: public void ausfahren(String kennzeichen) { PKW zuEntfernen = null; // PKW, der rausfahren will // Überprüfen, ob das Auto mit demselben Kennzeichen existiert for (PKW pkw : parkendePkws) { if (pkw.getKennzeichen().equals(kennzeichen)) { zuEntfernen = pkw; break; } } // Falls Auto zum Entfernen gefunden wurde if (zuEntfernen != null) { Scanner scanner = new Scanner(System.in); System.out.println("Bitte geben Sie die Ausfahrtszeit ein (leer lassen für aktuelle Zeit, Format: dd.MM.yyyy, HH:mm):"); String ausfahrtInput = scanner.nextLine(); Date ausfahrt; if (ausfahrtInput.isEmpty()) { ausfahrt = new Date(); // Aktuelle Zeit nehmen } else { try { SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm"); ausfahrt = sdf.parse(ausfahrtInput); // Manuelle Eingabe verarbeiten } catch (ParseException e) { System.out.println("Ungültiges Datum, benutze aktuelle Zeit."); ausfahrt = new Date(); } } // Berechnung der Gebühren double gebuehren = berechneGebuehren(kennzeichen, ausfahrt); zuEntfernen.setGebuehrenkonto(gebuehren); // Gebührenkonto aktualisieren // Falls Gebühren vorhanden sind if (gebuehren > 0) { System.out.println("Parkdauer in Minuten: " + berechneParkdauer(kennzeichen, ausfahrt)); System.out.println("Parkgebühren in Cent: " + zuEntfernen.getGebuehrenkonto()); // Kreditkartenvalidierung vor Ausfahrt System.out.println("Bitte geben Sie Ihre 16-stellige VISA-Kreditkartennummer ein:"); String kreditkartenNummer = scanner.nextLine(); if (pruefeKreditkarte(kreditkartenNummer)) { System.out.println("Zahlung erfolgreich. Sie dürfen ausfahren."); zuEntfernen.setGebuehrenkonto(0); // Gebühren auf 0 setzen parkendePkws.remove(zuEntfernen); // PKW entfernen } else { System.out.println("Ungültige Kreditkartennummer. Zahlung fehlgeschlagen."); } } else { // Gebührenfrei System.out.println("PKW mit Kennzeichen " + kennzeichen + " darf gebührenfrei ausfahren."); } // Kapazität aktualisieren this.kapazitaetVerfuegbar++; this.belegt--; System.out.println("PKW mit Kennzeichen " + kennzeichen + " hat die Ausfahrt durchgeführt.\n"); } else { System.out.println("Kein PKW mit diesem Kennzeichen gefunden.\n"); } }