Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

YEAR-TO-YYYY - Jahreszahlenkonversion

&pagelevel(4)&pagelevel

Die YEAR-TO-YYYY-Funktion wandelt eine 2-stellige Jahreszahl in eine 4-stellige Jahreszahl um. Das Ende des 100-Jahr Intervalls, in welches das in argument-1 angegebene Jahr fällt, wird bestimmt, indem argument-2 zum aktuellen Jahr (das Jahr, in dem die Funktion ausgeführt wird) addiert wird („gleitendes Fenster“).
Funktionstyp: ganzzahlig.

Format


FUNCTION YEAR-TO-YYYY (argument-1 [argument-2])


Argumente

  1. argument-1 muss eine positive ganze Zahl kleiner als 100 sein.

  2. argument-2, wenn angegeben, muss eine ganze Zahl sein.

  3. Falls argument-2 nicht angegeben ist, wird als zweites Argument der Wert 50 angenommen.

  4. Die Summe aus dem aktuellen Jahr und argument-2 muss kleiner als 10000 und größer als 1699 sein.

Returnwerte

  1. Der Returnwert ist die in argument-1 angegebene Jahreszahl ergänzt durch das Jahrhundert.
    Der Returnwert ist abhängig vom Zwischenwert

    L1L2L3L4 = aktuelles Jahr +argument-2 (= letztes Jahr des 100-Jahr Intervalls).
    Das Jahrhundert wird folgendermaßen berechnet:

    100 * L1L2 + JJ
    100 * (L1L2 -1) + JJ

    falls L3L4 >= JJ
    falls L3L4 < JJ

    (JJ=argument-1)

  2. Der Fehler-Returnwert ist 0.


Siehe auch: DATE-TO-YYYYMMDD, DAY-TO-YYYYDDD

Beispiel 9-49

...
DATA DIVISION.
WORKING-STORAGE SECTION.
01 DATUM               PIC 9(7).
01 AKTUELLES-JAHR      PIC 9(7).
01 JAHR                PIC 9(7).
PROCEDURE DIVISION.
P1 SECTION.
MAIN.
*
* Berechnung der Funktion mit gleitendem Fenster:
*
* Das 100-Jahr Intervall, in das das berechnete Jahr fällt, soll
* die Jahre (aktuelles Jahr -35) bis (aktuelles Jahr +64) umfassen:
*
    COMPUTE DATUM = FUNCTION YEAR-TO-YYYY (59 64).
    DISPLAY DATUM UPON T. (1)
*
* Ohne 2. Argument (bzw. 2. Argument =50)
* Das 100-Jahr Intervall umfasst die Jahre (aktuelles Jahr -49)
* bis (aktuelles Jahr +50):
*
    COMPUTE DATUM = FUNCTION YEAR-TO-YYYY (0).
    DISPLAY DATUM UPON T. (2)
*
* Das 2. Argument kann auch negativ sein
* Das 100-Jahr Intervall umfasst die Jahre (aktuelles Jahr -109)
* bis (aktuelles Jahr -10):
*
    COMPUTE DATUM = FUNCTION YEAR-TO-YYYY (96 -10).
    DISPLAY DATUM UPON T. (3)
*
* Berechnung der Funktion mit festem Fenster
*
* Das 100-Jahr Intervall, in das das berechnete Jahr fällt, soll
* die Jahre 1950 bis 2049 umfassen:
*
* Berechnung des letzten Jahres des 100-Jahr Intervalls
* relativ zum aktuellen Jahr
*
    MOVE FUNCTION CURRENT-DATE(1:4) TO AKTUELLES-JAHR.
    COMPUTE JAHR = 2049 - AKTUELLES-JAHR.
* Berechnung der Funktionswerte
    COMPUTE DATUM = FUNCTION YEAR-TO-YYYY (50 JAHR).
    DISPLAY DATUM UPON T. (4)
    COMPUTE DATUM = FUNCTION YEAR-TO-YYYY (1 JAHR).
    DISPLAY DATUM UPON T. (5)
* Das 100-Jahr Intervall, in das das berechnete Jahr fällt, soll
* die Jahre 1890 bis 1989 umfassen:
*
* Berechnung des letzten Jahres des 100-Jahr Intervalls
* relativ zum aktuellen Jahr
*
    MOVE FUNCTION CURRENT-DATE(1:4) TO AKTUELLES-JAHR.
    COMPUTE JAHR = 1989 - AKTUELLES-JAHR.
* Berechnung der Funktionswerte
  COMPUTE DATUM = FUNCTION YEAR-TO-YYYY (89 JAHR).
  DISPLAY DATUM UPON T. (6)
  COMPUTE DATUM = FUNCTION YEAR-TO-YYYY (90 JAHR).
  DISPLAY DATUM UPON T. (7)
  STOP RUN.

Ergebnis:

Im Jahr 1996 liefert das Programm folgende Ergebnisse:
(1) 2059
(2) 2000
(3) 1896
(4) 1950
(5) 2001
(6) 1989
(7) 1890

Im Jahr 2050 liefert das Programm folgende Ergebnisse:
(1) 2059
(2) 2100
(3) 1996
(4) 1950
(5) 2001
(6) 1989
(7) 1890