diff --git a/Qualifier Parkhaus/src/Auto.java b/Qualifier Parkhaus/src/Auto.java index 33b7dd6..8a3b9e4 100644 --- a/Qualifier Parkhaus/src/Auto.java +++ b/Qualifier Parkhaus/src/Auto.java @@ -4,23 +4,31 @@ public class Auto { private String kennzeichen; private Date einfahrtZeit; - private Date bezahlZeit; private Date ausfahrtZeit; private boolean eAuto; - public Auto(String kennzeichen, Date einfahrtZeit, Date bezahlZeit, Date ausfahrtZeit, boolean eAuto) { + public Auto(String kennzeichen, Date einfahrtZeit) { this.kennzeichen = kennzeichen; this.einfahrtZeit = einfahrtZeit; - this.bezahlZeit = bezahlZeit; this.ausfahrtZeit = ausfahrtZeit; this.eAuto = eAuto; } - public String getKennzeichen() {return kennzeichen;} - public Date getEinfahrtZeit() {return einfahrtZeit;} - public Date getBezahlZeit() {return bezahlZeit;} - public Date getAusfahrtZeit() {return ausfahrtZeit;} - public boolean getEAuto() {return eAuto;} + public String getKennzeichen() { + return kennzeichen; + } + + public Date getEinfahrtZeit() { + return einfahrtZeit; + } + + public Date getAusfahrtZeit() { + return ausfahrtZeit; + } + + public boolean getEAuto() { + return eAuto; + } public void setKennzeichen(String kennzeichen) { this.kennzeichen = kennzeichen; @@ -30,10 +38,6 @@ public class Auto { this.einfahrtZeit = einfahrtZeit; } - public void setBezahlZeit(Date bezahlZeit) { - this.bezahlZeit = bezahlZeit; - } - public void setAusfahrtZeit(Date ausfahrtZeit) { this.ausfahrtZeit = ausfahrtZeit; } @@ -41,4 +45,10 @@ public class Auto { public void setEAuto(boolean eAuto) { this.eAuto = eAuto; } + + + private boolean iseAuto() { + String letztesSymbol = kennzeichen.charAt(kennzeichen.length() - 1) + ""; + return (letztesSymbol.equals("E") || letztesSymbol.equals("e")); + } } diff --git a/Qualifier Parkhaus/src/Main.java b/Qualifier Parkhaus/src/Main.java index 7046417..794cda6 100644 --- a/Qualifier Parkhaus/src/Main.java +++ b/Qualifier Parkhaus/src/Main.java @@ -1,2 +1,32 @@ +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Scanner; + + public class Main { + public static void main(String[] args) throws ParseException { + Scanner sc = new Scanner(System.in); + Parkhaus parkhaus = new Parkhaus(1.0); + SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm"); + System.out.println("Willkommen im Parkhaus der Hochschule Mannheim"); + System.out.println("Bitte geben Sie ihr Kennzeichen ein:"); + String kennzeichenEinfahrt = sc.nextLine(); + System.out.println("Wann sind Sie in das Parkhaus eingefahren. Bitte im Format TT.MM.JJJJ SS:MM"); + String einfahrtEingabe = sc.nextLine(); + Date einfahrtZeit = sdf.parse(einfahrtEingabe); + Auto auto = new Auto(kennzeichenEinfahrt, einfahrtZeit); + System.out.println(""); + System.out.println(""); + System.out.println(""); + System.out.println(""); + System.out.println(""); + System.out.println(""); + + System.out.println("Bitte geben Sie das Kennzeichen des Fahrzeugs ein, welches ausfahren soll :"); + String kennzeichenAusfahrt = sc.nextLine(); + + + System.out.println(parkhaus.berechneParkKosten(auto)); + } } diff --git a/Qualifier Parkhaus/src/Parkhaus.java b/Qualifier Parkhaus/src/Parkhaus.java index 76f17be..40ca425 100644 --- a/Qualifier Parkhaus/src/Parkhaus.java +++ b/Qualifier Parkhaus/src/Parkhaus.java @@ -1,11 +1,12 @@ +import java.util.ArrayList; import java.util.Date; +import java.util.List; + public class Parkhaus { private double maxNachtPreis; private double preis; private double maxTagesPreis; - private int maxParkPlatz; - private Auto[] parkendeAutos; - private int anzahlParkendeAutos; + private List autos; public double getMaxNachtPreis() { return maxNachtPreis; @@ -15,55 +16,54 @@ public class Parkhaus { return maxTagesPreis; } - public int getMaxParkPlatz() { - return maxParkPlatz; + + public Parkhaus(double preis) { + this.preis = 1.0; + this.maxNachtPreis = 5; + this.maxTagesPreis = 15; + this.autos = new ArrayList(); } - public Parkhaus(double preis){ - this.preis = 1.0; - this.maxNachtPreis = 5; - this.maxTagesPreis = 15; - this.maxParkPlatz = 100; - this.parkendeAutos = new Auto[maxParkPlatz]; - this.anzahlParkendeAutos = 0; + public void addAuto(Auto auto) { + autos.add(auto); } - public double getPreis() {return preis;} + public double getPreis() { + return preis; + } public void setPreis(double preis) { this.preis = preis; } - public double berechneParkKosten (Auto auto){ + public double berechneParkKosten(Auto auto) { + Date einfahrtZeit = auto.getEinfahrtZeit(); + Date ausfahrtZeit = auto.getAusfahrtZeit(); int einFahrtStunde = auto.getEinfahrtZeit().getHours(); int ausFahrtStunde = auto.getAusfahrtZeit().getHours(); + long parkDauerMinuten = (auto.getAusfahrtZeit().getTime() - auto.getEinfahrtZeit().getTime()); + double kosten = 0; - double kosten; - - long parkDauerMinuten = (auto.getBezahlZeit().getTime()-auto.getEinfahrtZeit().getTime()); - - if (einFahrtStunde >= 20 && ausFahrtStunde <= 06){ + if (einFahrtStunde >= 20 || ausFahrtStunde <= 06) { + if (parkDauerMinuten <= 15) { + return 0; + } kosten = maxNachtPreis; - } + } else { + if (parkDauerMinuten <= 15) { + return 0; + } + parkDauerMinuten -= 15; + long parkDauerStunden = (parkDauerMinuten / 60) + 1; + kosten = parkDauerStunden * preis; - if (parkDauerMinuten <= 15){ - return 0; + if (parkDauerStunden > 24) { + kosten = maxTagesPreis; + } } - parkDauerMinuten -= 15; - long parkDauerStunden = (parkDauerMinuten/60)+1; - kosten = parkDauerStunden*preis; - - if (parkDauerStunden > 24){ - kosten = maxTagesPreis*parkDauerStunden/24; + if (auto.getEAuto()) { + kosten *= 0.8; } - - if (auto.getEAuto() == true){ - kosten*=0.8; - } - return kosten; } - - - }