All pastes #177439 Raw Edit

Miscellany

public text v1 · immutable
#177439 ·published 2006-09-20 13:34 UTC
rendered paste body
FUNCTION RP_LAST_DAY_OF_MONTHS.
* 4.0C
* VNIAHRK001140 09.01.98 Months 999912  korrigiert
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"       IMPORTING
*"             VALUE(DAY_IN) LIKE  SY-DATUM
*"       EXPORTING
*"             VALUE(LAST_DAY_OF_MONTH) LIKE  SY-DATUM
*"       EXCEPTIONS
*"              DAY_IN_NO_DATE
*"----------------------------------------------------------------------
   DATA: BEGIN OF DATE,
           J(4),
           M(2),
           T(2),
         END OF DATE.
   DATA: ZAHL TYPE I.

   DATE = DAY_IN.

   IF DATE-M LT JANUAR OR DATE-M GT DECEMBER.             "#EC PORTABLE
      MESSAGE E401(5D) WITH DAY_IN
              RAISING DAY_IN_NO_DATE.
   ENDIF.

   IF DATE-J LT LOWDATE.                                  "#EC PORTABLE
     MESSAGE E401(5D) WITH DAY_IN
             RAISING DAY_IN_NO_DATE.
   ENDIF.

   IF DATE-J EQ HIGHDATE-J AND                             "VNIK001140
      DATE-M EQ HIGHDATE-M.                                "VNIK001140
     LAST_DAY_OF_MONTH = HIGHDATE.                         "VNIK001140

   ELSE.                                                   "VNIK001140

     IF DATE-M EQ DECEMBER.
       ZAHL = DATE-J + 1.
       UNPACK ZAHL TO DATE-J.
       DATE-M = FRIST.
     ELSE.
       ZAHL = DATE-M + 1.
       UNPACK ZAHL TO DATE-M.
     ENDIF.
* Erster des Folgemonats
     DATE-T = FRIST.
     LAST_DAY_OF_MONTH = DATE.
     SUBTRACT 1 FROM LAST_DAY_OF_MONTH.

   ENDIF.                                                  "VNIK001140
ENDFUNCTION.