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.