From 9ca10f362e6bcfd487bf1749b06f78e35cc020db Mon Sep 17 00:00:00 2001 From: Marc3308 Date: Tue, 8 Oct 2024 09:12:15 +0200 Subject: [PATCH] tryed math faild very mutch but finished code hopfully --- src/main/java/org/example/flow.txt | 3 ++ .../java/org/example/optionen/bezahlen.java | 42 +++++++++++++++---- 2 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 src/main/java/org/example/flow.txt diff --git a/src/main/java/org/example/flow.txt b/src/main/java/org/example/flow.txt new file mode 100644 index 0000000..aad96a7 --- /dev/null +++ b/src/main/java/org/example/flow.txt @@ -0,0 +1,3 @@ +1. Ui schreiben mit auswahlmöglichkeiten zum reinfahren, bezahlen rausfahren und beenden +2. Einzelne unterclassen erstellen um die optionen zu ermöglichen +3. Unterclassen classen erstellen um einzelne funktionen zu vereinfachen und abzukürzen \ No newline at end of file diff --git a/src/main/java/org/example/optionen/bezahlen.java b/src/main/java/org/example/optionen/bezahlen.java index 969f59b..18892dc 100644 --- a/src/main/java/org/example/optionen/bezahlen.java +++ b/src/main/java/org/example/optionen/bezahlen.java @@ -2,6 +2,7 @@ package org.example.optionen; import org.example.ticketobjekt.parkticket; +import java.sql.Time; import java.text.ParseException; import java.util.Calendar; import java.util.Date; @@ -22,6 +23,10 @@ public class bezahlen { Date ausfartzeit = zeitstempelEingabe.isEmpty() ? new Date() : timeformat.parse(zeitstempelEingabe); double gebuhren=gebühren(p.getEinfahtzeit(),ausfartzeit); + //nachgabe + if (p.getNummerschild().endsWith("E"))gebuhren*=0.80; + + //gratis if(gebuhren<1){ System.out.println("Sie dürfen gratis rausfahren, viel spaß!"); tiketliste.remove(p); @@ -43,16 +48,39 @@ public class bezahlen { public static double gebühren(Date einfahrt, Date ausfahrt){ long diffinmin= (ausfahrt.getTime()- einfahrt.getTime())/(1000*60); - if(diffinmin<=15)return 0.0; + if(diffinmin<=15)return 0; + diffinmin-=15; + int Stundendiff= (int) (diffinmin/60); + double kosten=0; + int Stunden=einfahrt.getHours(); - double geburen= (int) ((diffinmin-15)/60); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(einfahrt); + while (Stundendiff > 0) { - if (calendar.get(Calendar.HOUR_OF_DAY) >= 20 || calendar.get(Calendar.HOUR_OF_DAY) < 6) { - geburen = Math.min(geburen, 5); + if(Stunden<20 || Stunden>6){ + if(Stundendiff>=10){ + Stundendiff-=10; + Stunden=6; + kosten+=5; + } else { + kosten+= Stundendiff>5 ? 5 : Stundendiff; + Stundendiff=0; + } + } else { + Stundendiff--; + kosten++; + Stunden++; + } } - return geburen; + + int tage=1; + Stundendiff=((int) (diffinmin/60))-24; + while (Stundendiff>24){ + Stundendiff-=24; + tage++; + } + kosten=Math.min(kosten, 15*(tage)); + + return kosten; } private static boolean istVisaGueltig(String kreditkarte) {