Korrektur des Codes. Berechnung nach mehreren Tests nun möglich. Muss noch auf korrektheit geprüft werden

main
Leon Maximilian Löhle 2024-10-03 13:46:58 +02:00
parent a0da70b766
commit 76141da3f1
2 changed files with 25 additions and 13 deletions

View File

@ -20,10 +20,12 @@ public class Main {
System.out.println("3. Bezahlen und ausfahren"); System.out.println("3. Bezahlen und ausfahren");
System.out.println("4. Beenden"); System.out.println("4. Beenden");
int auswahl = sc.nextInt(); int auswahl = sc.nextInt();
sc.nextLine();
if (auswahl == 4) { if (auswahl == 4) {
System.out.println("Das Programm wird nun beendet."); System.out.println("Das Programm wird nun beendet.");
System.out.println("Wir wünschen Ihnen noch einen schönen Tag"); System.out.println("Wir wünschen Ihnen noch einen schönen Tag");
break;
} }
@ -47,11 +49,12 @@ public class Main {
System.out.println("Keine Auto gefunden mit diesem Kennzeichen gefunden."); System.out.println("Keine Auto gefunden mit diesem Kennzeichen gefunden.");
} }
else { else {
System.out.println("Zu welcher Uhrzeit wurde ausgefahren? :"); System.out.println("Wann sind Sie aus dem Parkhaus ausgefahren. Bitte im Format TT.MM.JJJJ SS:MM");
String ausfahrtEingabe = sc.nextLine(); String ausfahrtEingabe = sc.nextLine();
Date ausfahrtZeit = sdf.parse(ausfahrtEingabe); Date ausfahrtZeit = sdf.parse(ausfahrtEingabe);
parkhaus.berechneParkKosten(auto); double kosten = parkhaus.berechneParkKosten(auto, ausfahrtZeit);
parkhaus.ausfahrt(auto , ausfahrtZeit); auto.setSchulden(auto.getSchulden() + kosten);
parkhaus.ausfahrt(kennzeichenAusfahrt , ausfahrtZeit);
} }
break; break;
@ -63,11 +66,12 @@ public class Main {
System.out.println("Keine Auto gefunden mit diesem Kennzeichen gefunden."); System.out.println("Keine Auto gefunden mit diesem Kennzeichen gefunden.");
} }
else { else {
System.out.println("Was ist die aktuelle Uhrzeit zu der Sie bezahlen"); System.out.println("Wann bezahlen Sie? Bitte im Format TT.MM.JJJJ SS:MM ");
String bezahltEingabe = sc.nextLine(); String bezahltEingabe = sc.nextLine();
Date bezahltZeit = sdf.parse(bezahltEingabe); Date bezahltZeit = sdf.parse(bezahltEingabe);
System.out.println(parkhaus.berechneParkKosten(auto)); System.out.println(parkhaus.berechneParkKosten(auto, bezahltZeit));
parkhaus.ausfahrt(auto , bezahltZeit); parkhaus.ausfahrt(kennzeichenBezahlt , bezahltZeit);
auto.setSchulden(0);
} }
break; break;
@ -77,5 +81,6 @@ public class Main {
break; break;
} }
} }
sc.close();
} }
} }

View File

@ -72,22 +72,29 @@ public class Parkhaus {
return; return;
} }
auto.setAusfahrtZeit(ausfahrtZeit); auto.setAusfahrtZeit(ausfahrtZeit);
double kosten = berechneParkKosten(auto); double kosten = berechneParkKosten(auto, ausfahrtZeit);
System.out.println("Die Koste für das Fahrzeug mit dem eingegebenen Kennzeichen " + kennzeichen + "betragen:"); System.out.println("Die Koste für das Fahrzeug mit dem eingegebenen Kennzeichen " + kennzeichen + "betragen:");
System.out.println(kosten); System.out.println(kosten);
autos.remove(auto); autos.remove(auto);
platz += 1; platz += 1;
} }
public double berechneParkKosten(Auto auto) { public double berechneParkKosten(Auto auto, Date ausfahrtZeit) {
Date einfahrtZeit = auto.getEinfahrtZeit(); Date einfahrtZeit = auto.getEinfahrtZeit();
Date ausfahrtZeit = auto.getAusfahrtZeit(); if(einfahrtZeit == null || ausfahrtZeit == null) {
int einFahrtStunde = auto.getEinfahrtZeit().getHours(); System.out.println("Es wurde keine Ein- oder ausfahrtzeit gesetzt");
int ausFahrtStunde = auto.getAusfahrtZeit().getHours(); }
long parkDauerMinuten = (auto.getAusfahrtZeit().getTime() - auto.getEinfahrtZeit().getTime()); long parkDauerMinuten = (ausfahrtZeit.getTime() - einfahrtZeit.getTime())/(1000*60);
double kosten = 0; double kosten = 0;
if (einFahrtStunde >= 20 || ausFahrtStunde <= 06) { if(parkDauerMinuten < 0){
System.out.println("Diese Eingaben sind nicht möglich");
}
int einFahrtStunde = einfahrtZeit.getHours();
int ausFahrtStunde = ausfahrtZeit.getHours();
if (einFahrtStunde >= 20 || ausFahrtStunde <= 6) {
if (parkDauerMinuten <= 15) { if (parkDauerMinuten <= 15) {
return 0; return 0;
} }