- Zeige korrekte Jahressummen
- drucke letzte Summe Kreditjahr nach Ablauf
This commit is contained in:
parent
05debf0b80
commit
6d16191e0e
@ -104,18 +104,22 @@ class Darlehenberechner {
|
|||||||
private final Integer laufzeitJahre;
|
private final Integer laufzeitJahre;
|
||||||
private final BigDecimal zinssatz;
|
private final BigDecimal zinssatz;
|
||||||
private BigDecimal sondertilgung;
|
private BigDecimal sondertilgung;
|
||||||
private int summeMonate;
|
private int summeMonate = 0;
|
||||||
private BigDecimal aktRestschuld;
|
private BigDecimal aktRestschuld;
|
||||||
private BigDecimal aktMonatlicheRate;
|
private BigDecimal aktMonatlicheRate;
|
||||||
private BigDecimal aktZinsbetrag;
|
private BigDecimal aktZinsbetrag;
|
||||||
private BigDecimal aktTilgungsbetrag;
|
private BigDecimal aktTilgungsbetrag;
|
||||||
private Integer aktTilgungsfreieZeit;
|
private Integer aktTilgungsfreieZeit;
|
||||||
private YearMonth aktMonat;
|
private YearMonth aktMonat;
|
||||||
private BigDecimal summeZinsen;
|
private BigDecimal jahressummeZinsenKalenderjahr = BigDecimal.ZERO;
|
||||||
private BigDecimal summeTilgung;
|
private BigDecimal jahressummeZinsenKreditjahr = BigDecimal.ZERO;
|
||||||
private BigDecimal jahressummeRatenKalenderjahr;
|
private BigDecimal summeZinsen = BigDecimal.ZERO;
|
||||||
private BigDecimal jahressummeRatenKreditjahr;
|
private BigDecimal jahressummeTilgungKalenderjahr = BigDecimal.ZERO;
|
||||||
private BigDecimal summeRaten;
|
private BigDecimal jahressummeTilgungKreditjahr = BigDecimal.ZERO;
|
||||||
|
private BigDecimal summeTilgung = BigDecimal.ZERO;
|
||||||
|
private BigDecimal jahressummeRatenKalenderjahr = BigDecimal.ZERO;
|
||||||
|
private BigDecimal jahressummeRatenKreditjahr = BigDecimal.ZERO;
|
||||||
|
private BigDecimal summeRaten = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) throws ParseException {
|
public static void main(String[] args) throws ParseException {
|
||||||
@ -186,22 +190,17 @@ class Darlehenberechner {
|
|||||||
laufzeitJahre = konfig.getLaufzeitJahre();
|
laufzeitJahre = konfig.getLaufzeitJahre();
|
||||||
zinssatz = konfig.getZinssatz();
|
zinssatz = konfig.getZinssatz();
|
||||||
sondertilgung = konfig.getSondertilgung() != null ? konfig.getSondertilgung().multiply(konfig.getDarlehenswert()) : BigDecimal.ZERO;
|
sondertilgung = konfig.getSondertilgung() != null ? konfig.getSondertilgung().multiply(konfig.getDarlehenswert()) : BigDecimal.ZERO;
|
||||||
summeMonate = 1;
|
|
||||||
aktRestschuld = konfig.getDarlehenswert();
|
aktRestschuld = konfig.getDarlehenswert();
|
||||||
aktMonatlicheRate = konfig.getMonatlicheRate();
|
aktMonatlicheRate = konfig.getMonatlicheRate();
|
||||||
aktTilgungsfreieZeit = konfig.getaktTilgungsfreieZeit();
|
aktTilgungsfreieZeit = konfig.getaktTilgungsfreieZeit();
|
||||||
aktMonat = konfig.getAnfangsmonat();
|
aktMonat = konfig.getAnfangsmonat();
|
||||||
summeZinsen = BigDecimal.ZERO;
|
|
||||||
summeTilgung = BigDecimal.ZERO;
|
|
||||||
jahressummeRatenKalenderjahr = BigDecimal.ZERO;
|
|
||||||
jahressummeRatenKreditjahr = BigDecimal.ZERO;
|
|
||||||
summeRaten = BigDecimal.ZERO;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void berechneWerte() {
|
private void berechneWerte() {
|
||||||
druckeUeberschrift();
|
druckeUeberschrift();
|
||||||
while ((laufzeitJahre == null || summeMonate < (laufzeitJahre * 12)) && aktRestschuld.signum() > 0) {
|
while (laufzeitNichtVorbei()) {
|
||||||
|
erhoeheSummeMonate();
|
||||||
zahleSondertilgung();
|
zahleSondertilgung();
|
||||||
berechneBeitragAufteilung();
|
berechneBeitragAufteilung();
|
||||||
berechneRestschuld();
|
berechneRestschuld();
|
||||||
@ -220,6 +219,21 @@ class Darlehenberechner {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private boolean laufzeitNichtVorbei() {
|
||||||
|
return (laufzeitJahre == null || summeMonate < (laufzeitJahre * 12)) && aktRestschuld.signum() > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private boolean laufzeitVorbei() {
|
||||||
|
return !laufzeitNichtVorbei();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void erhoeheSummeMonate() {
|
||||||
|
summeMonate++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void zahleSondertilgung() {
|
private void zahleSondertilgung() {
|
||||||
if (sondertilgung.signum() == 0) {
|
if (sondertilgung.signum() == 0) {
|
||||||
return;
|
return;
|
||||||
@ -254,7 +268,11 @@ class Darlehenberechner {
|
|||||||
|
|
||||||
|
|
||||||
private void berechneSummen() {
|
private void berechneSummen() {
|
||||||
|
jahressummeZinsenKalenderjahr = jahressummeZinsenKalenderjahr.add(aktZinsbetrag);
|
||||||
|
jahressummeZinsenKreditjahr = jahressummeZinsenKreditjahr.add(aktZinsbetrag);
|
||||||
summeZinsen = summeZinsen.add(aktZinsbetrag);
|
summeZinsen = summeZinsen.add(aktZinsbetrag);
|
||||||
|
jahressummeTilgungKalenderjahr = jahressummeTilgungKalenderjahr.add(aktTilgungsbetrag);
|
||||||
|
jahressummeTilgungKreditjahr = jahressummeTilgungKreditjahr.add(aktTilgungsbetrag);
|
||||||
summeTilgung = summeTilgung.add(aktTilgungsbetrag);
|
summeTilgung = summeTilgung.add(aktTilgungsbetrag);
|
||||||
jahressummeRatenKalenderjahr = jahressummeRatenKalenderjahr.add(aktMonatlicheRate);
|
jahressummeRatenKalenderjahr = jahressummeRatenKalenderjahr.add(aktMonatlicheRate);
|
||||||
jahressummeRatenKreditjahr = jahressummeRatenKreditjahr.add(aktMonatlicheRate);
|
jahressummeRatenKreditjahr = jahressummeRatenKreditjahr.add(aktMonatlicheRate);
|
||||||
@ -263,28 +281,37 @@ class Darlehenberechner {
|
|||||||
|
|
||||||
|
|
||||||
private void druckeJahressumeBedingt() {
|
private void druckeJahressumeBedingt() {
|
||||||
boolean kreditjahrVergangen = summeMonate > 1 && summeMonate % 12 == 0;
|
boolean kreditjahrVergangen = summeMonate > 1 && summeMonate % 12 == 0 || laufzeitVorbei();
|
||||||
if (kreditjahrVergangen || aktMonat.getMonth() == Month.DECEMBER) {
|
if (kreditjahrVergangen || aktMonat.getMonth() == Month.DECEMBER) {
|
||||||
|
BigDecimal jahressummeZinsen;
|
||||||
|
BigDecimal jahressummeTilgung;
|
||||||
BigDecimal jahressummeRaten;
|
BigDecimal jahressummeRaten;
|
||||||
String desc;
|
String desc;
|
||||||
if (kreditjahrVergangen) {
|
if (kreditjahrVergangen) {
|
||||||
|
jahressummeZinsen = jahressummeZinsenKreditjahr;
|
||||||
|
jahressummeTilgung = jahressummeTilgungKreditjahr;
|
||||||
jahressummeRaten = jahressummeRatenKreditjahr;
|
jahressummeRaten = jahressummeRatenKreditjahr;
|
||||||
|
jahressummeZinsenKreditjahr = BigDecimal.ZERO;
|
||||||
|
jahressummeTilgungKreditjahr = BigDecimal.ZERO;
|
||||||
jahressummeRatenKreditjahr = BigDecimal.ZERO;
|
jahressummeRatenKreditjahr = BigDecimal.ZERO;
|
||||||
desc = "Kreditjahr " + summeMonate / 12;
|
desc = "Kreditjahr " + summeMonate / 12;
|
||||||
} else {
|
} else {
|
||||||
|
jahressummeZinsen = jahressummeZinsenKalenderjahr;
|
||||||
|
jahressummeTilgung = jahressummeTilgungKalenderjahr;
|
||||||
jahressummeRaten = jahressummeRatenKalenderjahr;
|
jahressummeRaten = jahressummeRatenKalenderjahr;
|
||||||
|
jahressummeZinsenKalenderjahr = BigDecimal.ZERO;
|
||||||
|
jahressummeTilgungKalenderjahr = BigDecimal.ZERO;
|
||||||
jahressummeRatenKalenderjahr = BigDecimal.ZERO;
|
jahressummeRatenKalenderjahr = BigDecimal.ZERO;
|
||||||
desc = "Kalenderjahr " + aktMonat.getYear();
|
desc = "Kalenderjahr " + aktMonat.getYear();
|
||||||
}
|
}
|
||||||
System.out.println("Summe " + desc + ":\n" + DECIMAL_FORMAT.format(jahressummeRaten) + " = " + DECIMAL_FORMAT.format(summeZinsen) + " + "
|
System.out.println("Summe " + desc + ":\n" + DECIMAL_FORMAT.format(jahressummeRaten) + " = " + DECIMAL_FORMAT.format(jahressummeZinsen)
|
||||||
+ DECIMAL_FORMAT.format(summeTilgung));
|
+ " + " + DECIMAL_FORMAT.format(jahressummeTilgung));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void aktualisiereZeitwerte() {
|
private void aktualisiereZeitwerte() {
|
||||||
aktMonat = aktMonat.plusMonths(1);
|
aktMonat = aktMonat.plusMonths(1);
|
||||||
summeMonate++;
|
|
||||||
if (aktTilgungsfreieZeit != null) {
|
if (aktTilgungsfreieZeit != null) {
|
||||||
aktTilgungsfreieZeit--;
|
aktTilgungsfreieZeit--;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user