PR2-Testate/QualifierTeil2/PKW.java

85 lines
2.2 KiB
Java

package QualifierTeil2;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
public class PKW {
private String kennzeichen;
Date einfahrt;
private boolean hatBezahlt;
double gebuehrenkonto;
public PKW() {
this.kennzeichen = generiereKennzeichen();
this.einfahrt = new Date();
this.hatBezahlt = false;
this.gebuehrenkonto = 0;
}
public String getKennzeichen() {
return kennzeichen;
}
public Date getEinfahrt() {
return einfahrt;
}
public String getEinfahrtAlsString() {
return gebeAktuelleZeit();
}
public double getGebuehrenkonto() {
return gebuehrenkonto;
}
public void setGebuehrenkonto(double gebuehrenkonto) {
this.gebuehrenkonto = gebuehrenkonto;
}
public boolean hatBezahlt() {
return hatBezahlt;
}
public void setBezahlt(boolean bezahlt) {
this.hatBezahlt = bezahlt;
}
public String gebeAktuelleZeit() {
var sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
return sdf.format(new Date());
}
public String generiereKennzeichen() {
Random random = new Random();
// 2 bis 3 Buchstaben für Stadt/Region
String stadtRegion = randomString(random, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", random.nextInt(2) + 2);
// 1 bis 2 Buchstaben für Fahrzeugklasse
String fahrzeugKlasse = randomString(random, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", random.nextInt(2) + 1);
// 1 bis 4 Ziffern für die Nummer
String nummer = randomString(random, "0123456789", random.nextInt(4) + 1);
// Optional ein "E" für Elektrofahrzeuge
String elektro = random.nextBoolean() ? "E" : "";
// Zusammenfügen des Kennzeichens
return stadtRegion + "-" + fahrzeugKlasse + " " + nummer + elektro;
}
// Hilfsmethode zur Erzeugung einer zufälligen Zeichenkette
private static String randomString(Random random, String zeichen, int laenge) {
StringBuilder sb = new StringBuilder(laenge);
for (int i = 0; i < laenge; i++) {
sb.append(zeichen.charAt(random.nextInt(zeichen.length())));
}
return sb.toString();
}
}