PKW gelöscht
parent
aa9943e04f
commit
c7d451114b
241
PKW
241
PKW
|
@ -1,241 +0,0 @@
|
||||||
package parkhaus;
|
|
||||||
|
|
||||||
import java.io.*;
|
|
||||||
import java.text.ParseException;
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.Scanner;
|
|
||||||
|
|
||||||
public class PKW {
|
|
||||||
private String kennzeichen;
|
|
||||||
private int parkplaetze;
|
|
||||||
|
|
||||||
public PKW(String kennzeichen, int parkplaetze) {
|
|
||||||
this.kennzeichen = kennzeichen;
|
|
||||||
this.parkplaetze = parkplaetze;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getParkplaetze() {
|
|
||||||
return parkplaetze;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getKennzeichen() {
|
|
||||||
return kennzeichen;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Einfahrt(Date einfahrt) throws IOException {
|
|
||||||
File alte = new File(kennzeichen+".txt");
|
|
||||||
if(alte.exists()) {
|
|
||||||
BufferedReader reader = new BufferedReader(new FileReader(alte));
|
|
||||||
String line;
|
|
||||||
line = reader.readLine();
|
|
||||||
reader.close();
|
|
||||||
String[] autoData = line.split(",");
|
|
||||||
if (autoData[0].equals(kennzeichen)) {
|
|
||||||
if (autoData[2].isEmpty()&& !autoData[1].isEmpty()) {
|
|
||||||
System.err.println("Das Fahrzeug mit Kennzeichen " + kennzeichen + " ist bereits eingeparkt.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(autoData[1].isEmpty()&& autoData[2].isEmpty()) {
|
|
||||||
System.err.println("Sie haben noch eine Zahlung offen.");
|
|
||||||
}
|
|
||||||
if(autoData[1].isEmpty()&& !autoData[2].isEmpty()) {
|
|
||||||
System.err.println("Da ist wohl ein Fehler unterlaufen.");
|
|
||||||
}
|
|
||||||
} //exisistiert keine Datei dann soll eine neue angelegt werden
|
|
||||||
if(!alte.exists()) {
|
|
||||||
BufferedWriter writer = new BufferedWriter(new FileWriter(kennzeichen+".txt", true));
|
|
||||||
SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy,HH:mm");
|
|
||||||
String einfahrtFormatted = dateFormat.format(einfahrt);
|
|
||||||
writer.write(kennzeichen + "," + einfahrtFormatted + ",false,0.0");
|
|
||||||
writer.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public void Update(Scanner scanner,double schulden) throws IOException {
|
|
||||||
File alte = new File(kennzeichen+".txt");
|
|
||||||
File neue = new File(kennzeichen+".txt(1)");
|
|
||||||
BufferedReader reader = new BufferedReader(new FileReader(alte));
|
|
||||||
BufferedWriter writer = new BufferedWriter(new FileWriter(neue));
|
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy,HH:mm");
|
|
||||||
System.out.print("Ausfahrt: ");
|
|
||||||
String ausfahrt=scanner.nextLine();
|
|
||||||
String ausfahrtinString = sdf.format(ausfahrt);
|
|
||||||
String line;
|
|
||||||
if(alte.exists()) {
|
|
||||||
line = reader.readLine();
|
|
||||||
String[] autoData = line.split(",");
|
|
||||||
|
|
||||||
|
|
||||||
line = kennzeichen + "," + autoData[1] + "," + ausfahrtinString + "," + autoData[3] + "," + schulden;
|
|
||||||
//kennzeichen einfahrt ausfahrt istbezahlt schulden
|
|
||||||
writer.write(line);
|
|
||||||
|
|
||||||
|
|
||||||
reader.close();
|
|
||||||
writer.close();
|
|
||||||
|
|
||||||
}else {
|
|
||||||
System.err.println("Fahrzeug mit Kennzeichen " + kennzeichen + " wurde nicht gefunden.");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Datei überschreiben
|
|
||||||
alte.delete();
|
|
||||||
neue.renameTo(alte);
|
|
||||||
}
|
|
||||||
|
|
||||||
public long Parkzeit(Date einfahrt, Date ausfahrt) {
|
|
||||||
return (ausfahrt.getTime() - einfahrt.getTime()) / 1000;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public Date Zeitformat(String datum) throws ParseException {
|
|
||||||
//aktuelles Datum ausgeben
|
|
||||||
if (datum.isEmpty()) {
|
|
||||||
return new Date();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Falls der Benutzer ein Datum eingegeben hat, dieses formatieren und zurückgeben
|
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy,HH:mm");
|
|
||||||
try {
|
|
||||||
|
|
||||||
Date formatiertesDatum=sdf.parse(datum); // Datum aus der Eingabe parsen
|
|
||||||
return formatiertesDatum;
|
|
||||||
} catch (ParseException e) {
|
|
||||||
System.err.println("Ungültiges Datumsformat. Das aktuelle Datum wird verwendet.");
|
|
||||||
return new Date();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void eingefahren() {
|
|
||||||
this.parkplaetze--;
|
|
||||||
}
|
|
||||||
public void ausgefahren(boolean istbezahlt) throws IOException {
|
|
||||||
File alte = new File(kennzeichen + ".txt");
|
|
||||||
if(alte.exists()) {
|
|
||||||
alte.delete();
|
|
||||||
this.parkplaetze++;
|
|
||||||
System.out.println("Haben Sie einen schönen Tag.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public void ausfahrenohneZahlen() throws IOException {
|
|
||||||
File alte = new File(kennzeichen+".txt");
|
|
||||||
File neue = new File(kennzeichen+".txt(1)");
|
|
||||||
BufferedReader reader = new BufferedReader(new FileReader(alte));
|
|
||||||
BufferedWriter writer = new BufferedWriter(new FileWriter(neue));
|
|
||||||
String line;
|
|
||||||
if(alte.exists()) {
|
|
||||||
System.err.println("Sie haben noch nicht gezahlt.");
|
|
||||||
line = reader.readLine();
|
|
||||||
String[] autoData = line.split(",");
|
|
||||||
|
|
||||||
|
|
||||||
line = kennzeichen + "," + ""+ "," +""+ "," + autoData[3] + "," + autoData[4];
|
|
||||||
writer.write(line);
|
|
||||||
|
|
||||||
|
|
||||||
reader.close();
|
|
||||||
writer.close();
|
|
||||||
|
|
||||||
}else {
|
|
||||||
System.err.println("Fahrzeug mit Kennzeichen " + kennzeichen + " wurde nicht gefunden.");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Datei überschreiben
|
|
||||||
alte.delete();
|
|
||||||
neue.renameTo(alte);
|
|
||||||
}
|
|
||||||
|
|
||||||
public double Schulden() throws ParseException, IOException {
|
|
||||||
File alte = new File(kennzeichen+".txt");
|
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy,HH:mm");
|
|
||||||
if(alte.exists()) {
|
|
||||||
String line;
|
|
||||||
BufferedReader reader = new BufferedReader(new FileReader(alte));
|
|
||||||
line = reader.readLine();
|
|
||||||
reader.close();
|
|
||||||
String[] autoData = line.split(",");
|
|
||||||
Date einfahrt=sdf.parse(autoData[1]);
|
|
||||||
Date ausfahrt=sdf.parse(autoData[2]);
|
|
||||||
long sekunden=Parkzeit(einfahrt,ausfahrt);
|
|
||||||
double alteschulden=Double.parseDouble(autoData[4]);
|
|
||||||
long minute=sekunden/60;
|
|
||||||
double stunde=minute/60;
|
|
||||||
boolean Eauto=kennzeichen.endsWith("E");
|
|
||||||
if(minute<=15) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
double gesamtgebuehr = 0.0;
|
|
||||||
long stundenBerechnet = 0;
|
|
||||||
while (stundenBerechnet < stunde) {
|
|
||||||
if (stunde >= 20 || stunde < 6) {
|
|
||||||
|
|
||||||
gesamtgebuehr += 5;
|
|
||||||
break;
|
|
||||||
} else {
|
|
||||||
|
|
||||||
gesamtgebuehr += 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (gesamtgebuehr > 15) {
|
|
||||||
gesamtgebuehr = 15;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
stundenBerechnet++;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (Eauto) {
|
|
||||||
gesamtgebuehr *= 0.8;
|
|
||||||
}
|
|
||||||
|
|
||||||
return gesamtgebuehr+=alteschulden;
|
|
||||||
}
|
|
||||||
|
|
||||||
else {
|
|
||||||
System.err.println("Datei existiert nicht");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public double Parksimulator(Date einfahrt, Date ausfahrt, boolean Eauto) {
|
|
||||||
long sekunden=Parkzeit(einfahrt,ausfahrt);
|
|
||||||
long stunde=(sekunden/60)/60;
|
|
||||||
long minute=sekunden/60;
|
|
||||||
if(minute<=15) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
double gesamtgebuehr = 0.0;
|
|
||||||
long stundenBerechnet = 0;
|
|
||||||
while (stundenBerechnet < stunde) {
|
|
||||||
if (stunde >= 20 || stunde < 6) {
|
|
||||||
|
|
||||||
gesamtgebuehr += 5;
|
|
||||||
break;
|
|
||||||
} else {
|
|
||||||
|
|
||||||
gesamtgebuehr += 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (gesamtgebuehr > 15) {
|
|
||||||
gesamtgebuehr = 15;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
stundenBerechnet++;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (Eauto) {
|
|
||||||
gesamtgebuehr *= 0.8;
|
|
||||||
}
|
|
||||||
|
|
||||||
return gesamtgebuehr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue