Bezeichnung des Algorithmus | XEN_Laufzeitenberechnung |
Kurzbezeichnung | Laufzeitenberechnung |
Verbale Beschreibung/Beispiele | Dieser Algorithmus ermittelt für zwei Zeitpunkte (Datum 1 und Datum 2) die Laufzeit zwischen diesen zwei Zeitpunkten in Tagen, Monaten und Jahren (d_diff, m_diff, j_diff; Tage-Differenz, Monate-Differenz, Jahre-Differenz). Allgemein gilt:
Der Algorithmus geht in folgenden Schritten vor:
Anmerkung: Wie oben erwähnt sind Feiertage nicht relevant, d.h. 15.7. bis 15.8. : 1 Monat. |
Kommt vor in/wird verwendet für | GFA83_Ursprungslaufzeit_Code, GFA84_vertragliche_Restlaufzeit_Code, GFA86_Zinsanpassungsrestlaufzeit_Code, GFA87_Anfaengliche_Zinsbindungsfrist_Code |
Formale Beschreibung | FUNKTION XEN_Laufzeitenberechnung (Datum1, Datum2) // Bei diesen Algorithmus wird davon ausgegangen, dass Datum2 größer als Datum1 ist. //ULTIMO(Datum) ist wahr, wenn sich der Tag des jeweiligen Datum am Monatsultimo befindet Bsp.: 31.12.2013, 28.2.2013,etc. //GETULTIMO(Datum) gibt vom jeweiligen Datum den Monatsultimo in Tagen zurück. Beispiel: GETULTIMO(10.1.2014) = 31 (Der Jänner hat 31 Tage, am 31 tag ist der Monatsultimo), GETULTIMO(9.2.2008) = 29 (Der Februar 2008 war ein Schaltjahr daher gibt die Funktion den Wert 29 zurück.) //Die Funktionen get_day(), get_month() und get_year() geben jeweils den Tag, den Monat und die Jahres Zahl als ganzzahligen Wert zurück d1 = get_day (Datum1); WENN((ULTIMO(Datum1) ISTGLEICH WAHR UND ULTIMO(Datum2) ISTGLEICH WAHR) ODER (d1 ISTGLEICH d2) ODER (ULTIMO(Datum1) ISTGLEICH WAHR UND d2 > d1) ODER (ULTIMO(Datum2) ISTGLEICH WAHR UND d1 > d2)) DANN //(1), (2) d_diff = 0; SONST //(3.a) WENN (d1 > d2) DANN //(3.a.ii) d_diff = get_ultimo(Datum1) - d1 + d2; WENN (m2 ISTUNGLEICH 1) DANN m2 = m2 - 1; SONST m2 = 12; y2 = y2 - 1; ENDE SONST //(3.a.i) d_diff = d2 - d1; ENDE ENDE //(3.b) WENN (m2 >= m1) DANN //(3.b.i) m_diff = m2 - m1; SONST //(3.b.ii) m_diff = m2 - m1 + 12; y2 = y2 - 1; ENDE //(3.c) y_diff = y2 - y1; RUECKGABE (d_diff, m_diff, y_diff) FUNKTIONSENDE |