wieder das Berechnen des Preises
parent
07a48dba0d
commit
8c32155f6d
|
@ -17,9 +17,9 @@ public class Main {
|
||||||
var sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
|
var sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
|
||||||
sdf.setLenient(false);
|
sdf.setLenient(false);
|
||||||
|
|
||||||
Auto test = new Auto("123E");
|
Auto test = new Auto("123");
|
||||||
test.setEinfahrtZeit("10.10.2000, 05:00");
|
test.setEinfahrtZeit("10.10.2000, 04:00");
|
||||||
test.setAusfahrtZeit("11.10.2000, 13:00");
|
test.setAusfahrtZeit("10.10.2000, 10:30");
|
||||||
System.out.println(parkhaus.berechnePreis(test));
|
System.out.println(parkhaus.berechnePreis(test));
|
||||||
|
|
||||||
while (schleife) {
|
while (schleife) {
|
||||||
|
|
|
@ -109,36 +109,65 @@ public class Parkhaus {
|
||||||
}
|
}
|
||||||
|
|
||||||
long kostenpflichtigeMinuten = parkdauerInMinuten - FREIE_MINUTEN;
|
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));
|
long parkdauerInTagen = (long) Math.ceil(parkdauerInMinuten / (60.0 * 24));
|
||||||
|
|
||||||
|
|
||||||
if (parkdauerInTagen >= 1) {
|
if (parkdauerInTagen >= 1) {
|
||||||
long kostenpflichtigeGanzeTage = (long) Math.floor(kostenPflichtigeStunden / 24);
|
long kostenpflichtigeGanzeTage = (long) Math.floor(kostenPflichtigeStunden / 24);
|
||||||
preis = kostenpflichtigeGanzeTage * TAGES_MAX_PREIS;
|
if (kostenpflichtigeGanzeTage >= 1) {
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (einfahrtStunde <= 5) {
|
preis = kostenpflichtigeGanzeTage * TAGES_MAX_PREIS;
|
||||||
long angebrocheneStundenAusserhalbDerNacht = (long) 6 - einfahrtStunde;
|
long übrigenStunden = (long) (kostenPflichtigeStunden - kostenpflichtigeGanzeTage * 24);
|
||||||
long übrigeStundenAusserhalb = (long) Math.abs(einfahrtStunde - 6);
|
if (übrigenStunden <= 5) {
|
||||||
if (angebrocheneStundenAusserhalbDerNacht == 6) {
|
preis = preis + (übrigenStunden * ANGEFANGENE_STUNDE_PREIS);
|
||||||
preis += 5;
|
} else if (einfahrtStunde >= 20) {
|
||||||
} else {
|
long stundenImAltenTag = (einfahrtStunde + übrigenStunden) - 24;
|
||||||
preis += 5 + übrigeStundenAusserhalb;
|
long stundenImNeuenTag = übrigenStunden - stundenImAltenTag;
|
||||||
|
if (stundenImNeuenTag <= 5) {
|
||||||
|
preis += 5;
|
||||||
|
} else {
|
||||||
|
preis += 5 + stundenImNeuenTag - 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (einfahrtStunde <= 5) {
|
||||||
|
long angebrocheneStundenAusserhalbDerNacht = (long) 6 - einfahrtStunde;
|
||||||
|
long übrigeStundenAusserhalb = übrigenStunden - einfahrtStunde;
|
||||||
|
if (angebrocheneStundenAusserhalbDerNacht == 6) {
|
||||||
|
preis += 5;
|
||||||
|
} else {
|
||||||
|
preis += 5 + übrigeStundenAusserhalb;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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()) {
|
if (auto.iseAuto()) {
|
||||||
preis = preis * E_AUTO_RABATT;
|
preis = preis * E_AUTO_RABATT;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue