-
Notifications
You must be signed in to change notification settings - Fork 2
/
kredit_tilgung.py
94 lines (74 loc) · 3.79 KB
/
kredit_tilgung.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# coding=utf-8
"""
Entspricht den Werten des Online-Rechners von
(1) https://www.sparkasse.de/themen/eigenheim-finanzieren/tilgungsfalle.html
(2) https://www.verivox.de/baufinanzierung/tilgungsrechner/
(3)* https://www.finanztip.de/baufinanzierungsrechner/
(4)* https://tilgungsrechner.fmh.de/rechner3/fmh2/tilgungsrechner/
* kleine Abweichungen von einstelligen Eurobeträgen pro Jahr
"""
__author__ = 'Alf Köhn-Seemann'
__email__ = 'alf.koehn@posteo.net'
__copyright__ = 'Alf Köhn-Seemann'
__license__ = 'MIT'
import time
print( "-------------------------------------------------------------------------------" )
print( " Tilgungsplan für deinen Kredit" )
print( "-------------------------------------------------------------------------------" )
print( "Kreditsumme = Immobilienpreis - Eigenanteil" )
print( " + Maklergebühren " )
print( " + Grunderwerbsteuer (5 % von Immobilienpreis) " )
print( " + Notargebühr (2 % von Immobilienpreis) " )
print( "Annahme: Annuitätsdarlehen (üblichste Form)" )
print( " ==> monatliche Zahlung bleibt immer gleich" )
print( " ==> Zusammensetzung der Zahlung verändert" )
print( " wird jährlich (?) neu berechnet" )
print( "Annahme: Zahlung beginnt mit nächstem Monat." )
print()
print( "Gib jetzt die Parameter ein, um deinen Tilgungsplan zu berechnen." )
# Abfrage der notwendigen Parameter zur Berechnung
schulden = float( input("Kreditsumme in Euro : ") )
zinssatz = float( input("Zinssatz (Prozent pro Jahr): ") )
tilgung_prozent = float( input("Tilgung (Prozent pro Jahr) : ") )
tilgung_euro = schulden * tilgung_prozent/100.
# anfänglicher Tilgungssatz, bleibt bei Annuitätsdarlehen konstant
# 1/12 des Betrages wird monatlich abgebucht
zahlung_0 = tilgung_euro + schulden * zinssatz/100.
# aktuelles Jahr und Monat als Startpunkt ermitteln
jahr = time.localtime()[0]
monat_0 = time.localtime()[1] + 1
print()
print( "Monatliche Zahlung: {0:.2f} EUR (beginnt {1:02d}/{2:4d})".format(
zahlung_0/12., monat_0, jahr) )
print()
print( "-------------------------------------------------------------------------------" )
print( " Jahr | Schulden | Zahlung | Tilgungsanteil | Zinsanteil | Zinsen aufsummiert " )
print( "-------+----------+------------------------------------------------------------" )
# durch die Monate und Jahre laufen, bis Kredit abgezahlt ist
# Achtung: die Raten werden monatlich aktualisiert
zinsen_summe = .0 # insgesamt gezahlte Zinsen
zinsen_jahr_sum = 0 # für laufendes Jahr aufsummierter Zinsanteil
monat = monat_0 # Zähler für den aktuellen Monat
tilgung_noZins_sum = 0 # für laufendes Jahr aufsummierter Tilgungsanteil
zahlung_jahr_sum = 0 # für laufendes Jahr aufsummierte Zahlungen
while schulden > tilgung_euro:
zinsen_monat = schulden * zinssatz/100. / 12.
zinsen_jahr_sum+= zinsen_monat
zinsen_summe += zinsen_monat
tilgung_noZins_monat = zahlung_0/12. - zinsen_monat
tilgung_noZins_sum += tilgung_noZins_monat
zahlung_jahr_sum += zahlung_0/12.
schulden -= tilgung_noZins_monat
monat += 1
if monat == 13:
print( " {0:4d} | {1:6d} | {2:5d} | {3:5d} | {4:5d} | {5:6d}".format(
jahr, round(schulden), round(zahlung_jahr_sum),
round(tilgung_noZins_sum),
round(zinsen_jahr_sum), round(zinsen_summe)) )
# zum Ende des Jahres müssen einige Zähler zurückgesetzt werden
jahr += 1
monat = 1
zinsen_jahr_sum = 0
zahlung_jahr_sum = 0
tilgung_noZins_sum = 0
print( "-------------------------------------------------------------------------------" )