57 lines
2.0 KiB
Plaintext
57 lines
2.0 KiB
Plaintext
User: erkläre mir wie ich in der Methode returnMedium die Gebühren ausrechnen kann
|
|
|
|
|
|
|
|
System: 1. Zugrunde liegende Logik:
|
|
Wenn das Medium pünktlich oder vor dem Fälligkeitsdatum zurückgegeben wird:
|
|
Keine Gebühren fallen an.
|
|
Wenn das Medium nach dem Fälligkeitsdatum zurückgegeben wird:
|
|
1€ pro Tag für die ersten 7 überfälligen Tage.
|
|
2€ pro Tag für alle weiteren Tage.
|
|
2. Schritte zur Gebührenberechnung:
|
|
a) Überprüfen, ob das Medium überfällig ist:
|
|
|
|
Überprüfe, ob das aktuelle Datum (currentDate) nach dem Fälligkeitsdatum (dueDate) liegt:
|
|
if (currentDate.isAfter(dueDate)) {
|
|
// Das Medium ist überfällig
|
|
}
|
|
b) Überfällige Tage berechnen:
|
|
|
|
Berechne die Anzahl der Tage, die das Medium überfällig ist:
|
|
long overdueDays = ChronoUnit.DAYS.between(dueDate, currentDate);
|
|
c) Gebührenberechnung basierend auf den überfälligen Tagen:
|
|
|
|
Verwende eine Bedingung, um zwischen den ersten 7 Tagen und den weiteren Tagen zu unterscheiden:
|
|
double fee;
|
|
if (overdueDays > 7) {
|
|
fee = 7 * 1 + (overdueDays - 7) * 2; // 1€ für die ersten 7 Tage, 2€ für die restlichen Tage
|
|
} else {
|
|
fee = overdueDays * 1; // 1€ pro Tag für die ersten 7 Tage
|
|
}
|
|
d) Gebühren zum Benutzerkonto hinzufügen:
|
|
|
|
Addiere die berechneten Gebühren zu den ausstehenden Gebühren des Benutzers:
|
|
user.addFee(fee);
|
|
|
|
5. Beispielberechnung:
|
|
Beispiel 1:
|
|
|
|
Fälligkeitsdatum: 2024-12-01
|
|
Rückgabedatum: 2024-12-05
|
|
Überfällige Tage: 4
|
|
Gebühren: 4€ (1€ pro Tag für 4 Tage)
|
|
Beispiel 2:
|
|
|
|
Fälligkeitsdatum: 2024-12-01
|
|
Rückgabedatum: 2024-12-10
|
|
Überfällige Tage: 9
|
|
Gebühren:
|
|
7€ (1€ für die ersten 7 Tage) + 4€ (2€ für die verbleibenden 2 Tage) = 11€
|
|
Vorteile:
|
|
Klar definierte Regeln:
|
|
Gebührenberechnung erfolgt strikt nach den Vorgaben.
|
|
Flexibilität:
|
|
Die Logik kann leicht angepasst werden, falls sich die Gebührenregeln ändern.
|
|
Nachvollziehbarkeit:
|
|
Die Berechnung der Gebühren ist für den Benutzer transparent, da die Anzahl der überfälligen Tage und die Gebühren angezeigt werden.
|
|
Falls du noch weitere Anpassungen benötigst, lass es mich wissen! 😊 |