import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Bestellung { private Warenkorb warenkorb; private float versandkosten; private LocalDateTime bestellDatum; public Bestellung(Warenkorb warenkorb, float versandkosten) { if (warenkorb == null) { throw new IllegalArgumentException("Warenkorb darf nicht null sein."); } if (versandkosten < 0) { throw new IllegalArgumentException("Versandkosten dürfen nicht negativ sein."); } this.warenkorb = warenkorb; this.versandkosten = versandkosten; this.bestellDatum = LocalDateTime.now(); // Bestelldatum setzen } public Warenkorb getWarenkorb() { return warenkorb; } public float getVersandkosten() { return versandkosten; } public LocalDateTime getBestellDatum() { return bestellDatum; } public float berechneGesamtpreis() { return warenkorb.berechneGesamtPreis() + versandkosten; } @Override public String toString() { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss"); return String.format("Bestellung am %s:\n%sVersandkosten: %.2f Euro\nGesamtpreis: %.2f Euro", bestellDatum.format(formatter), warenkorb.toString(), versandkosten, berechneGesamtpreis()); } }