added code to bezahlen und rausfharen
parent
44eb1397d5
commit
167f156e38
|
@ -1,8 +1,31 @@
|
||||||
package org.example.optionen;
|
package org.example.optionen;
|
||||||
|
|
||||||
|
import org.example.ticketobjekt.parkticket;
|
||||||
|
|
||||||
|
import static org.example.Main.*;
|
||||||
|
|
||||||
public class ausfahren {
|
public class ausfahren {
|
||||||
|
|
||||||
public static void rausfahren(){
|
public static void rausfahren(){
|
||||||
|
|
||||||
|
System.out.println("Bitte wählen sie ihr kenzeichen:");
|
||||||
|
for (parkticket p : tiketliste) System.out.println((tiketliste.indexOf(p)+1)+": "+p.getNummerschild());
|
||||||
|
int ticket=scanner.nextInt()-1;
|
||||||
|
parkticket p = tiketliste.get(ticket);
|
||||||
|
|
||||||
|
System.out.println("Sind sie sicher das sie jetzt rausfahren wollen? Wenn sie ihr tiket nicht bezahlen wird das Konsequenesn habnen (y/n)");
|
||||||
|
String yn=scanner.nextLine();
|
||||||
|
|
||||||
|
switch (yn){
|
||||||
|
case "y":
|
||||||
|
System.out.println("Schande über sie, wenn sie zurückkommen wird das teuer!");
|
||||||
|
tiketliste.remove(p);
|
||||||
|
unbezahlteticketliste.add(p);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
System.out.println("Gute entscheidung");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package org.example.optionen;
|
||||||
import org.example.ticketobjekt.parkticket;
|
import org.example.ticketobjekt.parkticket;
|
||||||
|
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import static org.example.Main.*;
|
import static org.example.Main.*;
|
||||||
|
@ -18,14 +19,52 @@ public class bezahlen {
|
||||||
|
|
||||||
System.out.println("Sie haben "+p.getNummerschild()+" ausgewählt, bitte geben sie die ausfahrzeit ein (lehr für jetzt) (dd.MM.yyyy, HH:mm)");
|
System.out.println("Sie haben "+p.getNummerschild()+" ausgewählt, bitte geben sie die ausfahrzeit ein (lehr für jetzt) (dd.MM.yyyy, HH:mm)");
|
||||||
String zeitstempelEingabe=scanner.nextLine();
|
String zeitstempelEingabe=scanner.nextLine();
|
||||||
Date einfahrZeit = zeitstempelEingabe.isEmpty() ? new Date() : timeformat.parse(zeitstempelEingabe);
|
Date ausfartzeit = zeitstempelEingabe.isEmpty() ? new Date() : timeformat.parse(zeitstempelEingabe);
|
||||||
|
double gebuhren=gebühren(p.getEinfahtzeit(),ausfartzeit);
|
||||||
|
|
||||||
|
if(gebuhren<1){
|
||||||
|
System.out.println("Sie dürfen gratis rausfahren, viel spaß!");
|
||||||
|
tiketliste.remove(p);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("Parkgebühren: " + gebuhren + " Euro");
|
||||||
|
System.out.print("Kreditkartennummer (16-stellige VISA): ");
|
||||||
|
String kreditkarte = scanner.nextLine();
|
||||||
|
|
||||||
|
if (kreditkarte.matches("\\d{16}") && istVisaGueltig(kreditkarte)) {
|
||||||
|
System.out.println("Zahlung erfolgreich, sie dürfen rausfahren, viel spaß!");
|
||||||
|
tiketliste.remove(p);
|
||||||
|
} else {
|
||||||
|
System.out.println("Ungültige Kreditkarte. Zahlung fehlgeschlagen.");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public 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;
|
||||||
|
|
||||||
|
double geburen= (int) ((diffinmin-15)/60);
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
calendar.setTime(einfahrt);
|
||||||
|
|
||||||
|
if (calendar.get(Calendar.HOUR_OF_DAY) >= 20 || calendar.get(Calendar.HOUR_OF_DAY) < 6) {
|
||||||
|
geburen = Math.min(geburen, 5);
|
||||||
|
}
|
||||||
|
return geburen;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean istVisaGueltig(String kreditkarte) {
|
||||||
|
int sum = 0;
|
||||||
|
for (int i = 0; i < kreditkarte.length(); i++) {
|
||||||
|
int ziffer = Integer.parseInt(String.valueOf(kreditkarte.charAt(i)));
|
||||||
|
if (i % 2 == 0) {
|
||||||
|
ziffer *= 2;
|
||||||
|
if (ziffer > 9) ziffer -= 9;
|
||||||
|
}
|
||||||
|
sum += ziffer;
|
||||||
|
}
|
||||||
|
return sum % 10 == 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,15 @@ public class einfahren {
|
||||||
: randombuchstabe()+randombuchstabe() + "-" + randombuchstabe()+randombuchstabe() + " " + (rand.nextInt(9000) + 1000)
|
: randombuchstabe()+randombuchstabe() + "-" + randombuchstabe()+randombuchstabe() + " " + (rand.nextInt(9000) + 1000)
|
||||||
: kenzeichen;
|
: kenzeichen;
|
||||||
|
|
||||||
|
for (parkticket p : unbezahlteticketliste)if(kenzeichen.equals(p.getNummerschild())){
|
||||||
|
System.out.println("Wuste ichs doch das du wieder kommst, das wird tuer!");
|
||||||
|
tiketliste.add(p);
|
||||||
|
unbezahlteticketliste.remove(p);
|
||||||
|
System.out.println("Auto: "+p.getNummerschild());
|
||||||
|
System.out.println("Einfahtszeit: "+p.getEinfahtzeit());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
System.out.print("Bitte geben sie die einfahtszeit ein (dd.MM.yyyy, HH:mm) (leer für aktuelle Zeit): ");
|
System.out.print("Bitte geben sie die einfahtszeit ein (dd.MM.yyyy, HH:mm) (leer für aktuelle Zeit): ");
|
||||||
String zeitstempelEingabe = scanner.nextLine();
|
String zeitstempelEingabe = scanner.nextLine();
|
||||||
Date einfahrZeit = zeitstempelEingabe.isEmpty() ? new Date() : timeformat.parse(zeitstempelEingabe);
|
Date einfahrZeit = zeitstempelEingabe.isEmpty() ? new Date() : timeformat.parse(zeitstempelEingabe);
|
||||||
|
|
Loading…
Reference in New Issue