Viele GrüßeFORM berechne_termin USING month TYPE spmon wotnr TYPE p ordnr TYPE N
CHANGING date TYPE d
DATA:
daynr TYPE hrvsched-daynr,
ende TYPE d.
* Monatsanfang ermitteln
date(6) = month.
date+6(2) = '01'.
* Monatsletzten ermitteln
ende = date.
ADD 31 TO ende.
SUBTRACT ende+6 FROM ende.
* Wochentag zum Monatsersten ermitteln
CALL FUNCTION 'DAY_IN_WEEK'
EXPORTING
datum = date
IMPORTING
wotnr = daynr.
IF sy-subrc <> 0.
exit.
ENDIF.
* Termin berechnen
IF daynr LT wotnr.
date = date + wotnr - daynr + 7 * ( ordnr - 1 ).
ELSEIF daynr GT wotnr.
date = date + wotnr + 7 - daynr + 7 * ( ordnr - 1 ).
ELSE.
date = date + 7 * ( ordnr - 1 ).
ENDIF.
IF date GT ende.
clear date.
ENDIF.
ENDFORM.