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! 😊