Parkhaus hinzugefügt
parent
ddc6addca2
commit
94f95495b5
|
@ -0,0 +1,124 @@
|
|||
package pr2parkhaus;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Parkhaus {
|
||||
|
||||
private int anzahlParkplaetze; //Gesamtanzahl aller Parkplätze
|
||||
private Parkplatz[] plaetze; //Array von Parkplätzen
|
||||
|
||||
Scanner in = new Scanner(System.in);
|
||||
|
||||
//Konstruktor
|
||||
public Parkhaus(int anzahlParkplaetze) {
|
||||
|
||||
this.anzahlParkplaetze = anzahlParkplaetze;
|
||||
this.plaetze = new Parkplatz[anzahlParkplaetze];
|
||||
|
||||
for (int i = 0; i < anzahlParkplaetze; i++) {
|
||||
plaetze[i] = new Parkplatz(i+1);
|
||||
}
|
||||
}
|
||||
|
||||
public String nummernschildErkennen() {
|
||||
|
||||
String nummernschild = in.nextLine()
|
||||
;
|
||||
return nummernschild;
|
||||
|
||||
}
|
||||
|
||||
public Date zeitErkennen() {
|
||||
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
|
||||
|
||||
String eingabe = in.nextLine();
|
||||
Date zeit = null;
|
||||
try {
|
||||
zeit = sdf.parse(eingabe);
|
||||
} catch (ParseException e) {
|
||||
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return zeit;
|
||||
|
||||
}
|
||||
|
||||
public int autoParken(String nummernschild, Date einfahrtszeit) {
|
||||
|
||||
Auto auto = new Auto(nummernschild, einfahrtszeit);
|
||||
|
||||
for (Parkplatz platz : plaetze) {
|
||||
|
||||
if (!platz.isSlotFree()) {
|
||||
|
||||
platz.allocateSlot(auto); //Fahrzeug auf dem Platz speichern
|
||||
|
||||
return platz.getPlatzNummer(); //Nummer des Platzes zurück geben
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return -1; //kein freier Parkplatz vorhanden
|
||||
}
|
||||
|
||||
public double parkhausVerlassen(String nummernschild, Date ausfahrtszeit) {
|
||||
|
||||
double gebuehrInCent = 0.0;
|
||||
long secDiff = 0;
|
||||
|
||||
for (int i=0; i<anzahlParkplaetze; i++) {
|
||||
|
||||
Auto auto = plaetze[i].welchesAuto();
|
||||
|
||||
|
||||
if (plaetze[i] != null && auto != null && auto.getNummernschild().equals(nummernschild)) { //Suche wo das Auto steht
|
||||
|
||||
plaetze[i].platzFreigeben(auto);
|
||||
Date einfahrtszeit = auto.getEinfahrtszeit();
|
||||
|
||||
Date d1 = einfahrtszeit;
|
||||
Date d2 = ausfahrtszeit;
|
||||
|
||||
secDiff = ((d2.getTime() - d1.getTime()) / 1000) - 900;
|
||||
|
||||
//int platznummer = plaetze[i].getPlatzNummer();
|
||||
|
||||
System.out.println("Ihre Kostenpflichtige Parkdauer in Sekunden beträgt: " + secDiff);
|
||||
|
||||
}
|
||||
|
||||
gebuehrInCent = berechneGebuehr(secDiff);
|
||||
|
||||
//Rabatt für E-Autos
|
||||
if (auto != null && auto.getNummernschild().charAt(auto.getNummernschild().length() - 1) == 'E') {
|
||||
gebuehrInCent = gebuehrInCent*0.8;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return gebuehrInCent;
|
||||
}
|
||||
|
||||
public double berechneGebuehr(long zuZahlendeZeit) {
|
||||
|
||||
double gebuehr = 0;
|
||||
long angebrocheneStunden;
|
||||
|
||||
angebrocheneStunden = zuZahlendeZeit / 3600;
|
||||
|
||||
gebuehr = angebrocheneStunden * 100; //Umrechnen in Cent
|
||||
|
||||
|
||||
return gebuehr;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue