wieder das Berechnen des Preises

main
dustineversmann 2024-10-08 01:36:32 +02:00
parent 07a48dba0d
commit 8c32155f6d
2 changed files with 53 additions and 24 deletions

View File

@ -17,9 +17,9 @@ public class Main {
var sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
sdf.setLenient(false);
Auto test = new Auto("123E");
test.setEinfahrtZeit("10.10.2000, 05:00");
test.setAusfahrtZeit("11.10.2000, 13:00");
Auto test = new Auto("123");
test.setEinfahrtZeit("10.10.2000, 04:00");
test.setAusfahrtZeit("10.10.2000, 10:30");
System.out.println(parkhaus.berechnePreis(test));
while (schleife) {

View File

@ -109,12 +109,15 @@ public class Parkhaus {
}
long kostenpflichtigeMinuten = parkdauerInMinuten - FREIE_MINUTEN;
double kostenPflichtigeStunden = Math.ceil(kostenpflichtigeMinuten / 60);
double kostenPflichtigeStunden = Math.ceil(((double)kostenpflichtigeMinuten / 60));
long parkdauerInTagen = (long) Math.ceil(parkdauerInMinuten / (60.0 * 24));
if (parkdauerInTagen >= 1) {
long kostenpflichtigeGanzeTage = (long) Math.floor(kostenPflichtigeStunden / 24);
if (kostenpflichtigeGanzeTage >= 1) {
preis = kostenpflichtigeGanzeTage * TAGES_MAX_PREIS;
long übrigenStunden = (long) (kostenPflichtigeStunden - kostenpflichtigeGanzeTage * 24);
if (übrigenStunden <= 5) {
@ -130,7 +133,7 @@ public class Parkhaus {
} else if (einfahrtStunde <= 5) {
long angebrocheneStundenAusserhalbDerNacht = (long) 6 - einfahrtStunde;
long übrigeStundenAusserhalb = (long) Math.abs(einfahrtStunde - 6);
long übrigeStundenAusserhalb = übrigenStunden - einfahrtStunde;
if (angebrocheneStundenAusserhalbDerNacht == 6) {
preis += 5;
} else {
@ -138,7 +141,33 @@ public class Parkhaus {
}
}
}
else{
long übrigenStunden = (long) (kostenPflichtigeStunden - kostenpflichtigeGanzeTage * 24);
if (übrigenStunden <= 5) {
preis = preis + (übrigenStunden * ANGEFANGENE_STUNDE_PREIS);
} else if (einfahrtStunde >= 20) {
long stundenImAltenTag = (einfahrtStunde + übrigenStunden) - 24;
long stundenImNeuenTag = übrigenStunden - stundenImAltenTag;
if (stundenImNeuenTag <= 5) {
preis += 5;
} else {
preis += 5 + stundenImNeuenTag - 5;
preis = preis > 15 ? 15 : preis;
}
} else if (einfahrtStunde <= 5) {
long angebrocheneStundenAusserhalbDerNacht = (long) 6 - einfahrtStunde;
long übrigeStundenAusserhalb = übrigenStunden ;
if (angebrocheneStundenAusserhalbDerNacht == 6) {
preis += 5 + übrigeStundenAusserhalb - 6;
} else {
preis += übrigeStundenAusserhalb;
preis = preis > 15 ? 15 : preis;
}
}
}
}
if (auto.iseAuto()) {
preis = preis * E_AUTO_RABATT;
}