diff --git a/Darlehenberechner.java b/Darlehenberechner.java index 4ae4d1c..780aacb 100644 --- a/Darlehenberechner.java +++ b/Darlehenberechner.java @@ -346,35 +346,32 @@ class Darlehenberechner { private void druckeJahressumeBedingt() { boolean kreditjahrVergangen = summeMonate > 1 && summeMonate % 12 == 0 || laufzeitVorbei(); - if (kreditjahrVergangen || aktMonat.getMonth() == Month.DECEMBER) { - BigDecimal jahressummeZinsen; - BigDecimal jahressummeTilgung; - BigDecimal jahressummeRaten; - String desc; + boolean kalenderjahrVergangen = aktMonat.getMonth() == Month.DECEMBER; + if (kreditjahrVergangen || kalenderjahrVergangen) { if (kreditjahrVergangen) { - jahressummeZinsen = jahressummeZinsenKreditjahr; - jahressummeTilgung = jahressummeTilgungKreditjahr; - jahressummeRaten = jahressummeRatenKreditjahr; + String desc = "Kreditjahr " + (summeMonate + 11) / 12; // + 11 weil integerdivision und X Jahre plus 1 Monat soll X + 1 tes Kreditjahr ergeben + druckeJahressumme(desc, jahressummeRatenKreditjahr, jahressummeZinsenKreditjahr, jahressummeTilgungKreditjahr); + jahressummeRatenKreditjahr = BigDecimal.ZERO; jahressummeZinsenKreditjahr = BigDecimal.ZERO; jahressummeTilgungKreditjahr = BigDecimal.ZERO; - jahressummeRatenKreditjahr = BigDecimal.ZERO; - desc = "Kreditjahr " + (summeMonate + 11) / 12; // + 11 weil integerdivision und X Jahre plus 1 Monat soll X + 1 tes Kreditjahr ergeben } - if (aktMonat.getMonth() == Month.DECEMBER) { - jahressummeZinsen = jahressummeZinsenKalenderjahr; - jahressummeTilgung = jahressummeTilgungKalenderjahr; - jahressummeRaten = jahressummeRatenKalenderjahr; + if (kalenderjahrVergangen) { + String desc = "Kalenderjahr " + aktMonat.getYear(); + druckeJahressumme(desc, jahressummeRatenKalenderjahr, jahressummeZinsenKalenderjahr, jahressummeTilgungKalenderjahr); jahressummeZinsenKalenderjahr = BigDecimal.ZERO; jahressummeTilgungKalenderjahr = BigDecimal.ZERO; jahressummeRatenKalenderjahr = BigDecimal.ZERO; - desc = "Kalenderjahr " + aktMonat.getYear(); } - System.out.println("Summe " + desc + ":\n" + DECIMAL_FORMAT.format(jahressummeRaten) + " = " + DECIMAL_FORMAT.format(jahressummeZinsen) - + " + " + DECIMAL_FORMAT.format(jahressummeTilgung)); } } + private void druckeJahressumme(String desc, BigDecimal jahressummeRaten, BigDecimal jahressummeZinsen, BigDecimal jahressummeTilgung) { + System.out.println("Summe " + desc + ":\n" + DECIMAL_FORMAT.format(jahressummeRaten) + " = " + DECIMAL_FORMAT.format(jahressummeZinsen) + + " + " + DECIMAL_FORMAT.format(jahressummeTilgung)); + } + + private void aktualisiereZeitwerte() { aktMonat = aktMonat.plusMonths(1); if (aktTilgungsfreieZeit != null) {