public static void KombinierterKredit3() { Finanzierung fina = new Finanzierung(); Finanzierung.GetKombinierterKredit3(fina); using (StreamWriter writer = File.CreateText(DateTime.Now.ToString("yyyy-MM-dd hh-mm-ss") + ".txt")) { var sortedQuellen = fina.Quellen.OrderBy(da => da.Prioritaet); foreach (Darlehen dar in sortedQuellen) { writer.WriteLine(String.Format("Tilgungsplan Darlehen Summe {0}EUR Zinsen: {1}%", dar.Summe.ToString("F2"), (dar.Zinszeitraeume[0].Zinssatz * 100.0).ToString("F2"))); foreach (Annuitaet ann in dar.Annuitaeten) { writer.WriteLine(String.Format( "{0} Darlehen: {1} EUR Tilgung: {2} EUR Zinsen: {3} EUR Annuität: {4} EUR" , ann.Zahlungsdatum.ToString() , ann.DarlehenssumeVorZahlung.ToString("F2").PadLeft(10) , ann.Gesamttilgung.ToString("F2").PadLeft(10) , ann.Zins.Zins.ToString("F2").PadLeft(10) , (ann.Gesamttilgung + ann.Zins.Zins).ToString("F2").PadLeft(10))); } } } //Console.ReadKey(); }
private static void KombinierterKredit2() { Darlehen kredit = new Darlehen(); double zinssatz = 0.0155; kredit.Auszahlungstag = new LocalDateTime(2016, 1, 1, 12, 0); kredit.Faelligkeitstag = new LocalDateTime(2045, 12, 31, 0, 0); kredit.Summe = 100000; kredit.Zinszeitraeume.Add( new Zinsfestschreibung(kredit.Auszahlungstag, kredit.Faelligkeitstag, zinssatz)); kredit.Anfangstilgung = 0.05; kredit.Zahlungsperiode = Period.FromMonths(1); kredit.BeginnTilgung = kredit.Auszahlungstag + kredit.Zahlungsperiode; kredit.BeginnZinsZahlung = kredit.Auszahlungstag + kredit.Zahlungsperiode; kredit.Tilgungen.Add(new Tilgungszahlung(2000, new LocalDateTime(2016, 2, 18, 12, 0))); kredit.Prioritaet = 1; Darlehen kredit2 = new Darlehen(); kredit2.Auszahlungstag = new LocalDateTime(2016, 1, 1, 12, 0); kredit2.Faelligkeitstag = new LocalDateTime(2045, 12, 31, 0, 0); kredit2.Summe = 50000; kredit2.Zinszeitraeume.Add( new Zinsfestschreibung(kredit2.Auszahlungstag, kredit2.Faelligkeitstag, zinssatz)); kredit2.Anfangstilgung = 0.05; kredit2.Zahlungsperiode = Period.FromMonths(1); kredit2.BeginnTilgung = kredit2.Auszahlungstag + kredit2.Zahlungsperiode; kredit2.BeginnZinsZahlung = kredit2.Auszahlungstag + kredit2.Zahlungsperiode; kredit2.Tilgungen.Add(new Tilgungszahlung(2000, new LocalDateTime(2016, 2, 18, 12, 0))); kredit2.Prioritaet = 0; Finanzierung fina = new Finanzierung(); fina.Quellen.Add(kredit); fina.Quellen.Add(kredit2); Tilgungsplan.BerechneTilgungsplanFesteAnnuitaet(fina); foreach (Darlehen dar in fina.Quellen) { Console.WriteLine(String.Format("Tilgungsplan Darlehen Summe {0}EUR", dar.Summe.ToString("F2"))); foreach (Annuitaet ann in dar.Annuitaeten) { Console.WriteLine(String.Format( "{0} Darlehen: {1} EUR Tilgung: {2} EUR Zinsen: {3} EUR Annuität: {4} EUR" , ann.Zahlungsdatum.ToString() , ann.DarlehenssumeVorZahlung.ToString("F2").PadLeft(10) , ann.Gesamttilgung.ToString("F2").PadLeft(10) , ann.Zins.Zins.ToString("F2").PadLeft(10) , (ann.Gesamttilgung + ann.Zins.Zins).ToString("F2").PadLeft(10))); } } Console.ReadKey(); }
public LinePlot(Finanzierung fina) : this() { var timeAxis = new DateTimeAxis {StringFormat="yyyy-MM-dd"}; timeAxis.Title = UIStrings.Datum; var linearAxis = new LinearAxis(); linearAxis.StringFormat = "C1"; linearAxis.Title = UIStrings.Gesamtbetrag; linearAxis.Unit = System.Globalization.RegionInfo.CurrentRegion.CurrencySymbol; this.Axes.Add(timeAxis); this.Axes.Add(linearAxis); List<AreaPoint> basePoints = new List<AreaPoint>(); for (int i = fina.Quellen.Count -1; i >=0; i--) { List<AreaPoint> points = new List<AreaPoint>(); Darlehen darlehen = fina.Quellen.FirstOrDefault(da => da.Prioritaet == i); double baseVal = 0.0; foreach (Annuitaet an in darlehen.Annuitaeten) { AreaPoint basisPunkt = basePoints.FirstOrDefault(pt => pt.Date == an.Zahlungsdatum.ToDateTimeUnspecified()); if(basisPunkt != null) { baseVal = basisPunkt.Value; } points.Add(new AreaPoint { Date = an.Zahlungsdatum.ToDateTimeUnspecified() , Value = an.DarlehenssummeNachZahlung + baseVal , Base = baseVal , TrackerValue = an.DarlehenssummeNachZahlung , DateString = an.Zahlungsdatum.ToDateTimeUnspecified().ToString("yyyy-MM-dd") }); if (basisPunkt != null) { basisPunkt.Value += an.DarlehenssummeNachZahlung; } else { basePoints.Add(new AreaPoint { Date = an.Zahlungsdatum.ToDateTimeUnspecified() , Value = an.DarlehenssummeNachZahlung + baseVal , Base = baseVal , TrackerValue = an.DarlehenssummeNachZahlung , DateString = an.Zahlungsdatum.ToDateTimeUnspecified().ToString("yyyy-MM-dd") }); } baseVal = 0.0; } AreaSeries series = new AreaSeries() { ItemsSource = points, Title = darlehen.Bezeichnung, CanTrackerInterpolatePoints = false, TrackerFormatString = "Darlehen {0} \n Restbetrag: {TrackerValue:C} \n {DateString}", DataFieldX = "Date", DataFieldY = "Value", DataFieldX2 = "Date", DataFieldY2 = "Base" }; this.Series.Add(series); } }
public static void BerechneTilgungsplanFesteAnnuitaet(Finanzierung finanzierung) { ////Gesamte Annuität berechnen ////Alle Zinszahlungen addieren //double gesamtannuitaet = 0; //foreach(Darlehen dar in finanzierung.Quellen) //{ // LocalDateTime startZinszahlung = dar.BeginnZinsZahlung; // LocalDateTime endeZinszahlung = dar.BeginnZinsZahlung + dar.Zahlungsperiode; // Zinsfestschreibung ersteFestschreibung = Zinsfestschreibung.GetZinsfestschreibung(startZinszahlung, dar.Zinszeitraeume); // if (ersteFestschreibung == null) // throw new ArgumentNullException("Keine Zinsfestschreibung gefunden!"); // double jahreszins = ersteFestschreibung.Zinssatz; // gesamtannuitaet += Zinsfestschreibung.GetZinssatzFuerPeriode(startZinszahlung, endeZinszahlung, jahreszins); // gesamtannuitaet += dar.Anfangstilgung * dar.Summe / 12.0; //} double ueberschuessigeRegelmaessigeTilgung = 0; double ueberschuessigeErsteTilgung = 0; LocalDateTime ldt_DefaultValue = new LocalDateTime(0, 1, 1, 0, 1); LocalDateTime beginnUeberschuessigeTilgung = ldt_DefaultValue; List<Tilgungszahlung> ueberschuessigeSondertilgungen = null; ////Tilgungen aus Vorlagen erstellen foreach(Darlehen dar in finanzierung.Quellen) { List<Tilgungszahlung> tilgungVorlagen = new List<Tilgungszahlung>(dar.Tilgungen.Where(til => til.ArtDerVorlage != TilgungVorlageArt.Einmalig)); foreach(Tilgungszahlung tilg in tilgungVorlagen) { var neueTilgungen = Tilgungszahlung.GetListTilgungen(tilg); foreach(Tilgungszahlung ti in neueTilgungen) { dar.Tilgungen.Add(ti); } dar.Tilgungen.Remove(tilg); } } for(int prioCounter = 0; prioCounter < finanzierung.Quellen.Count; prioCounter++) { Darlehen dar = finanzierung.Quellen.FirstOrDefault(da => da.Prioritaet == prioCounter); if(ueberschuessigeSondertilgungen != null) { foreach(Tilgungszahlung tilg in ueberschuessigeSondertilgungen) { dar.Tilgungen.Add(tilg); } } List<Tilgungszahlung> auszahlungen = new List<Tilgungszahlung>(); foreach(Tilgungszahlung tilgungsz in dar.Tilgungen) { if(tilgungsz.Betrag < 0.0) { auszahlungen.Add(tilgungsz); } } foreach(Tilgungszahlung ausz in auszahlungen) { dar.Tilgungen.Remove(ausz); } bool weiterrechnen = true; Annuitaet aktuelleAnnuitaet = null; Annuitaet letzteAnnuitaet = null; ////Kontostand vor Beginn der Tilgung double kontostandVorTilgung = 0.0; ////Erste Annuitaet besetzen aktuelleAnnuitaet = new Annuitaet(); aktuelleAnnuitaet.Zahlungsdatum = dar.BeginnZinsZahlung; ////Auszahlungen List<Tilgungszahlung> auszahlungenVorBeginn = new List<Tilgungszahlung>(auszahlungen.Where(tilg => (tilg.Zeitpunkt <= aktuelleAnnuitaet.Zahlungsdatum))); foreach (Tilgungszahlung ausz in auszahlungenVorBeginn) { aktuelleAnnuitaet.Tilgungen.Add(ausz); ////Da Auszahlungen negativ sind, der Kontostand aber für ////einen Kredit positiv, muss hier Subtrahiert werden kontostandVorTilgung -= ausz.Betrag; } foreach (Tilgungszahlung ausz in aktuelleAnnuitaet.Tilgungen) { auszahlungen.Remove(ausz); } aktuelleAnnuitaet.DarlehenssumeVorZahlung = 0.0; Zinsfestschreibung festschr = dar.Zinszeitraeume.FirstOrDefault(zz => zz.ZeitpunktFestschreibung <= aktuelleAnnuitaet.Zahlungsdatum && zz.ZeitpunktAuslauf >= dar.BeginnZinsZahlung); if(festschr == null) throw new ArgumentOutOfRangeException("Keine Zinsfestschreibung gefunden!"); double effZins = festschr.GetZinssatzProPeriode(dar.Auszahlungstag, aktuelleAnnuitaet.Zahlungsdatum); aktuelleAnnuitaet.Zins = new Zinszahlung(effZins, kontostandVorTilgung, aktuelleAnnuitaet.Zahlungsdatum); ////Der feste Betrag der Annuitaeten double annuitaet = aktuelleAnnuitaet.Zins.Zins; double ersteTilgung = festschr.Anfangstilgung; if (aktuelleAnnuitaet.Zahlungsdatum >= dar.BeginnTilgung) { annuitaet = ersteTilgung + aktuelleAnnuitaet.Zins.Zins; dar.Annuitaet = annuitaet; Tilgungszahlung ersteTilgungszahlung = new Tilgungszahlung(ersteTilgung, aktuelleAnnuitaet.Zahlungsdatum); ersteTilgungszahlung.IsRegelm = true; if (ersteTilgungszahlung.Betrag > 0.0) { aktuelleAnnuitaet.Tilgungen.Add(ersteTilgungszahlung); } if (beginnUeberschuessigeTilgung != ldt_DefaultValue && beginnUeberschuessigeTilgung <= aktuelleAnnuitaet.Zahlungsdatum && aktuelleAnnuitaet.DarlehenssummeNachZahlung > 0) { if (ueberschuessigeErsteTilgung > 0) { if(aktuelleAnnuitaet.DarlehenssummeNachZahlung >= ueberschuessigeErsteTilgung) { aktuelleAnnuitaet.Tilgungen.Add(new Tilgungszahlung(ueberschuessigeErsteTilgung, aktuelleAnnuitaet.Zahlungsdatum)); ueberschuessigeErsteTilgung = 0; } else { ueberschuessigeErsteTilgung -= aktuelleAnnuitaet.DarlehenssummeNachZahlung; aktuelleAnnuitaet.Tilgungen.Add(new Tilgungszahlung(aktuelleAnnuitaet.DarlehenssummeNachZahlung, aktuelleAnnuitaet.Zahlungsdatum)); } } else if (ueberschuessigeRegelmaessigeTilgung > 0) { aktuelleAnnuitaet.Tilgungen.Add(new Tilgungszahlung(ueberschuessigeRegelmaessigeTilgung, aktuelleAnnuitaet.Zahlungsdatum)); } } else if(aktuelleAnnuitaet.DarlehenssummeNachZahlung <= 0) { double ueberschuss = aktuelleAnnuitaet.DarlehenssummeNachZahlung; ersteTilgungszahlung.Betrag += ueberschuss; ueberschuessigeErsteTilgung -= ueberschuss; } } dar.Annuitaeten.Add(aktuelleAnnuitaet); festschr.Restsumme = aktuelleAnnuitaet.DarlehenssummeNachZahlung; weiterrechnen = aktuelleAnnuitaet.Zahlungsdatum <= dar.BeginnTilgung || aktuelleAnnuitaet.DarlehenssummeNachZahlung > 0; LocalDateTime zahlungLetzteAnnuitaet = aktuelleAnnuitaet.Zahlungsdatum; bool schalterErsteTilgung = true; Zinsfestschreibung alteZinsfestschreibung = null; while(weiterrechnen) { letzteAnnuitaet = aktuelleAnnuitaet; LocalDateTime zahlungsDatumDieseAnnuitaet = zahlungLetzteAnnuitaet + dar.Zahlungsperiode; Zinsfestschreibung aktuelleFestschreibung = dar.Zinszeitraeume.FirstOrDefault(zf => zf.ZeitpunktFestschreibung <= zahlungsDatumDieseAnnuitaet && zf.ZeitpunktAuslauf >= zahlungsDatumDieseAnnuitaet); if(aktuelleFestschreibung == null) { throw new ArgumentOutOfRangeException("Keine Zinsfestschreibung für Annuität vom " + zahlungsDatumDieseAnnuitaet.ToString() + " gefunden! Restbetrag " + letzteAnnuitaet.DarlehenssummeNachZahlung.ToString("C2")); } bool zinswechsel = aktuelleFestschreibung != alteZinsfestschreibung; aktuelleAnnuitaet = new Annuitaet(); aktuelleAnnuitaet.Zahlungsdatum = zahlungsDatumDieseAnnuitaet; aktuelleAnnuitaet.DarlehenssumeVorZahlung = letzteAnnuitaet.DarlehenssummeNachZahlung; aktuelleAnnuitaet.Zins = new Zinszahlung(aktuelleFestschreibung.GetZinssatzProPeriode(zahlungLetzteAnnuitaet, aktuelleAnnuitaet.Zahlungsdatum), aktuelleAnnuitaet.DarlehenssumeVorZahlung, aktuelleAnnuitaet.Zahlungsdatum); auszahlungenVorBeginn = new List<Tilgungszahlung>(auszahlungen.Where(tilg => (tilg.Zeitpunkt <= aktuelleAnnuitaet.Zahlungsdatum))); foreach (Tilgungszahlung ausz in auszahlungenVorBeginn) { aktuelleAnnuitaet.Tilgungen.Add(ausz); } foreach (Tilgungszahlung ausz in aktuelleAnnuitaet.Tilgungen) { auszahlungen.Remove(ausz); } dar.Annuitaeten.Add(aktuelleAnnuitaet); if (aktuelleAnnuitaet.Zahlungsdatum >= dar.BeginnTilgung) { ////Sondertilgungen seit letzter Annuitaet ermitteln var tilgungVorBeginn = dar.Tilgungen.Where(an => an.Zeitpunkt <= zahlungsDatumDieseAnnuitaet && an.Zeitpunkt > zahlungLetzteAnnuitaet); if(schalterErsteTilgung || zinswechsel) { ersteTilgung = aktuelleFestschreibung.Anfangstilgung; annuitaet = ersteTilgung + aktuelleAnnuitaet.DarlehenssumeVorZahlung * aktuelleFestschreibung.Zinssatz / 12.0; dar.Annuitaet = annuitaet; schalterErsteTilgung = false; } if (annuitaet <= 0.0) { annuitaet = aktuelleAnnuitaet.Zins.Zins + aktuelleFestschreibung.Anfangstilgung; } Tilgungszahlung annuitaetsTilgung = new Tilgungszahlung(annuitaet - aktuelleAnnuitaet.Zins.Zins, aktuelleAnnuitaet.Zahlungsdatum); annuitaetsTilgung.IsRegelm = true; if (annuitaetsTilgung.Betrag > 0.0) { aktuelleAnnuitaet.Tilgungen.Add(annuitaetsTilgung); } double betragSondertilgungen = 0; foreach (Tilgungszahlung tilg in tilgungVorBeginn) { ////Sondertilgungen werden mit der Annuität gemeinsam verrechnet tilg.Zeitpunkt = aktuelleAnnuitaet.Zahlungsdatum; aktuelleAnnuitaet.Tilgungen.Add(tilg); betragSondertilgungen += tilg.Betrag; } if (beginnUeberschuessigeTilgung != ldt_DefaultValue && beginnUeberschuessigeTilgung <= aktuelleAnnuitaet.Zahlungsdatum && aktuelleAnnuitaet.DarlehenssummeNachZahlung > 0) { if (ueberschuessigeErsteTilgung > 0) { if (aktuelleAnnuitaet.DarlehenssummeNachZahlung >= ueberschuessigeErsteTilgung) { aktuelleAnnuitaet.Tilgungen.Add(new Tilgungszahlung(ueberschuessigeErsteTilgung, aktuelleAnnuitaet.Zahlungsdatum)); ueberschuessigeErsteTilgung = 0; } else { ueberschuessigeErsteTilgung -= aktuelleAnnuitaet.DarlehenssummeNachZahlung; aktuelleAnnuitaet.Tilgungen.Add(new Tilgungszahlung(aktuelleAnnuitaet.DarlehenssummeNachZahlung, aktuelleAnnuitaet.Zahlungsdatum)); } } else if (ueberschuessigeRegelmaessigeTilgung > 0) { if (ueberschuessigeRegelmaessigeTilgung <= aktuelleAnnuitaet.DarlehenssummeNachZahlung) { aktuelleAnnuitaet.Tilgungen.Add(new Tilgungszahlung(ueberschuessigeRegelmaessigeTilgung, aktuelleAnnuitaet.Zahlungsdatum)); } else { double differenz = ueberschuessigeRegelmaessigeTilgung - aktuelleAnnuitaet.DarlehenssummeNachZahlung; aktuelleAnnuitaet.Tilgungen.Add(new Tilgungszahlung(aktuelleAnnuitaet.DarlehenssummeNachZahlung, aktuelleAnnuitaet.Zahlungsdatum)); ueberschuessigeErsteTilgung += differenz; } } } else if (aktuelleAnnuitaet.DarlehenssummeNachZahlung <= 0) { double ueberschuss = aktuelleAnnuitaet.DarlehenssummeNachZahlung; foreach (Tilgungszahlung tilgSonder in aktuelleAnnuitaet.Tilgungen.Where(til => !til.IsRegelm)) { ////Überschuss noch vorhanden if (ueberschuss < 0) { if (Math.Abs(ueberschuss) > tilgSonder.Betrag) { ueberschuss += tilgSonder.Betrag; ueberschuessigeErsteTilgung += tilgSonder.Betrag; tilgSonder.Betrag = 0.0; } else { tilgSonder.Betrag += ueberschuss; ueberschuessigeErsteTilgung -= ueberschuss; ueberschuss = 0.0; } } else { break; } } if (ueberschuss < 0.0) { annuitaetsTilgung.Betrag += ueberschuss; ueberschuessigeErsteTilgung -= ueberschuss; } weiterrechnen = false; } } //if (aktuelleAnnuitaet.DarlehenssummeNachZahlung < 0) //{ // ueberschuessigeErsteTilgung -= aktuelleAnnuitaet.DarlehenssummeNachZahlung; // annuitaetsTilgung.Betrag -=letzteAnnuitaet.DarlehenssummeNachZahlung; // weiterrechnen = false; //} //else if (aktuelleAnnuitaet.DarlehenssummeNachZahlung == 0) //{ // weiterrechnen = false; //} aktuelleFestschreibung.Restsumme = aktuelleAnnuitaet.DarlehenssummeNachZahlung; letzteAnnuitaet = aktuelleAnnuitaet; alteZinsfestschreibung = aktuelleFestschreibung; zahlungLetzteAnnuitaet = letzteAnnuitaet.Zahlungsdatum; } ueberschuessigeRegelmaessigeTilgung += annuitaet; beginnUeberschuessigeTilgung = aktuelleAnnuitaet.Zahlungsdatum; ueberschuessigeSondertilgungen = new List<Tilgungszahlung>(dar.Tilgungen.Where(tz => tz.Zeitpunkt > aktuelleAnnuitaet.Zahlungsdatum)); foreach(Tilgungszahlung ueberTilg in ueberschuessigeSondertilgungen) { dar.Tilgungen.Remove(ueberTilg); } dar.IsCalculated = true; } finanzierung.DatumErledigung = new LocalDateTime(); foreach(Darlehen dar in finanzierung.Quellen.Where(da => da.IsCalculated)) { finanzierung.Gesamtannuitaet += dar.Annuitaet; if(finanzierung.DatumErledigung < dar.Annuitaeten[dar.Annuitaeten.Count -1].Zahlungsdatum) { finanzierung.DatumErledigung = dar.Annuitaeten[dar.Annuitaeten.Count - 1].Zahlungsdatum; } } }
private void Berechne(Finanzierung fina) { try { this.OriginalFina = (Finanzierung)fina.Clone(); Tilgungsplan.BerechneTilgungsplanFesteAnnuitaet(fina); this.CurrentPlot = new LinePlot(fina); } catch (Exception ex) { TaskDialogOptions tdo = new TaskDialogOptions(); tdo.MainIcon = VistaTaskDialogIcon.Warning; tdo.MainInstruction = ex.Message; tdo.Owner = App.window; tdo.CommonButtons = TaskDialogCommonButtons.Close; TaskDialogInterop.TaskDialog.Show(tdo); } }
public void AddFinaQuelle(Finanzierung fina, double finanzierungsluecke) { Darlehen dar = new Darlehen(); dar.Summe = finanzierungsluecke; int naechstePrio = 0; ////Nächst höhere Priorität ermitteln if (fina.Quellen.Count > 0) { naechstePrio = fina.Quellen.Max(da => da.Prioritaet); naechstePrio++; dar.Prioritaet = naechstePrio; } var viewModel = new EigenschaftenDarlehenViewModel(dar); var window = new EigenschaftenDarlehenView(); window.Owner = App.window; window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner; EventHandler handler = null; handler = delegate { viewModel.RequestClose -= handler; window.Close(); }; viewModel.RequestClose += handler; window.DataContext = viewModel; window.ShowDialog(); if (viewModel.DialogResult == true) { fina.Quellen.Add(dar); } }
public override object Clone() { Finanzierung klon = new Finanzierung(); klon.Initialisiere(this); return klon; }
public static void PrioritaetErhoehen(Finanzierung fina, Darlehen dar) { int aktuellePrio = dar.Prioritaet; int naechstHoeherPrio = int.MaxValue; Darlehen naechsthoeheresDarlehen = null; int aktuelleDiff = int.MaxValue; foreach (Darlehen da in fina.Quellen) { if (da.Prioritaet < aktuellePrio && (aktuellePrio - da.Prioritaet <= aktuelleDiff)) { aktuelleDiff = aktuellePrio - da.Prioritaet; naechstHoeherPrio = da.Prioritaet; naechsthoeheresDarlehen = da; } } if (naechsthoeheresDarlehen != null) { naechsthoeheresDarlehen.Prioritaet = aktuellePrio; dar.Prioritaet = naechstHoeherPrio; } fina.Quellen.OrderBy(da => da.Prioritaet); }
public static Finanzierung GetKombinierterKredit3(Finanzierung fina) { int prioritaet = 0; Darlehen kreditA = new Darlehen(); kreditA.Bezeichnung = "Kredit A"; LocalDateTime auszahlungstag = new LocalDateTime(2016, 1, 1, 12, 0); LocalDateTime faelligkeitsTag = new LocalDateTime(2045, 1, 1, 0, 0); kreditA.Auszahlungstag = auszahlungstag; kreditA.Faelligkeitstag = faelligkeitsTag; kreditA.Summe = 170000.0; kreditA.Zinszeitraeume.Add( new Zinsfestschreibung(kreditA.Auszahlungstag, kreditA.Faelligkeitstag, 0.002)); kreditA.Anfangstilgung = 0.0198; kreditA.Zahlungsperiode = Period.FromMonths(1); kreditA.BeginnTilgung = kreditA.Auszahlungstag + kreditA.Zahlungsperiode; kreditA.BeginnZinsZahlung = kreditA.Auszahlungstag + kreditA.Zahlungsperiode; kreditA.Tilgungen.Add(new Tilgungszahlung(20000, kreditA.BeginnTilgung + kreditA.Zahlungsperiode)); for (int i = 16; i <= 40; i++) { kreditA.Tilgungen.Add(new Tilgungszahlung(3000, new LocalDateTime(2000 + i, 12, 1, 12, 0))); } kreditA.Prioritaet = prioritaet; fina.Quellen.Add(kreditA); prioritaet++; Darlehen kreditBank = new Darlehen(); kreditBank.Bezeichnung = "Bankdarlehen"; kreditBank.Auszahlungstag = auszahlungstag; kreditBank.Faelligkeitstag = faelligkeitsTag; kreditBank.Summe = 203240.85; kreditBank.Zinszeitraeume.Add( new Zinsfestschreibung(kreditBank.Auszahlungstag, kreditBank.Faelligkeitstag, 0.0116)); kreditBank.Anfangstilgung = 0.03; kreditBank.Zahlungsperiode = Period.FromMonths(1); kreditBank.BeginnTilgung = kreditBank.Auszahlungstag + kreditBank.Zahlungsperiode; kreditBank.BeginnZinsZahlung = kreditBank.Auszahlungstag + kreditBank.Zahlungsperiode; kreditBank.Prioritaet = prioritaet; fina.Quellen.Add(kreditBank); prioritaet++; //Darlehen kreditKfW124 = new Darlehen(); //kreditKfW124.Bezeichnung = "KfW 124"; //kreditKfW124.Auszahlungstag = auszahlungstag; //kreditKfW124.Faelligkeitstag = faelligkeitsTag; //kreditKfW124.Summe = 50000; //kreditKfW124.Zinszeitraeume.Add( // new Zinsfestschreibung(kreditKfW124.Auszahlungstag, kreditKfW124.Faelligkeitstag, 0.0146)); //kreditKfW124.Anfangstilgung = 0.0242; //kreditKfW124.Zahlungsperiode = Period.FromMonths(1); //kreditKfW124.BeginnTilgung = kreditKfW124.Auszahlungstag + kreditKfW124.Zahlungsperiode; //kreditKfW124.BeginnZinsZahlung = kreditKfW124.Auszahlungstag + kreditKfW124.Zahlungsperiode; //kreditKfW124.Prioritaet = prioritaet; //fina.Quellen.Add(kreditKfW124); //prioritaet++; Darlehen kreditKfW153 = new Darlehen(); kreditKfW153.Bezeichnung = "KfW 153"; kreditKfW153.Auszahlungstag = auszahlungstag; kreditKfW153.Faelligkeitstag = faelligkeitsTag; kreditKfW153.Summe = 50000; kreditKfW153.Zinszeitraeume.Add( new Zinsfestschreibung(kreditKfW153.Auszahlungstag, kreditKfW153.Faelligkeitstag, 0.01)); kreditKfW153.Anfangstilgung = 0.0297; kreditKfW153.Zahlungsperiode = Period.FromMonths(1); kreditKfW153.BeginnTilgung = kreditKfW153.Auszahlungstag + kreditKfW153.Zahlungsperiode; kreditKfW153.BeginnZinsZahlung = kreditKfW153.Auszahlungstag + kreditKfW153.Zahlungsperiode; kreditKfW153.Prioritaet = prioritaet; prioritaet++; fina.Quellen.Add(kreditKfW153); Tilgungsplan.BerechneTilgungsplanFesteAnnuitaet(fina); return fina; }