tryed math faild very mutch but finished code hopfully

master
Marc3308 2024-10-08 09:12:15 +02:00
parent 167f156e38
commit 9ca10f362e
2 changed files with 38 additions and 7 deletions

View File

@ -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

View File

@ -2,6 +2,7 @@ package org.example.optionen;
import org.example.ticketobjekt.parkticket; import org.example.ticketobjekt.parkticket;
import java.sql.Time;
import java.text.ParseException; import java.text.ParseException;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
@ -22,6 +23,10 @@ public class bezahlen {
Date ausfartzeit = zeitstempelEingabe.isEmpty() ? new Date() : timeformat.parse(zeitstempelEingabe); Date ausfartzeit = zeitstempelEingabe.isEmpty() ? new Date() : timeformat.parse(zeitstempelEingabe);
double gebuhren=gebühren(p.getEinfahtzeit(),ausfartzeit); double gebuhren=gebühren(p.getEinfahtzeit(),ausfartzeit);
//nachgabe
if (p.getNummerschild().endsWith("E"))gebuhren*=0.80;
//gratis
if(gebuhren<1){ if(gebuhren<1){
System.out.println("Sie dürfen gratis rausfahren, viel spaß!"); System.out.println("Sie dürfen gratis rausfahren, viel spaß!");
tiketliste.remove(p); tiketliste.remove(p);
@ -43,16 +48,39 @@ public class bezahlen {
public static double gebühren(Date einfahrt, Date ausfahrt){ public static double gebühren(Date einfahrt, Date ausfahrt){
long diffinmin= (ausfahrt.getTime()- einfahrt.getTime())/(1000*60); 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); while (Stundendiff > 0) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(einfahrt);
if (calendar.get(Calendar.HOUR_OF_DAY) >= 20 || calendar.get(Calendar.HOUR_OF_DAY) < 6) { if(Stunden<20 || Stunden>6){
geburen = Math.min(geburen, 5); 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) { private static boolean istVisaGueltig(String kreditkarte) {