diff --git a/PKW b/PKW deleted file mode 100644 index 06cf413..0000000 --- a/PKW +++ /dev/null @@ -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; - } - } - - - -