Saturday, August 29, 2009

Add n number of working days to date

The following ABAP code adds n number of WORKING days to a particular date, any days which are not
workings days (i.e. Saturday) will be ignored. For example if your starting date is Friday, adding 3 days
would return a result of Wednesday or if starting date was Wednesday resultant day would be Monday as
Saturday and Sunday are non working days. If you want to add n number of working days but allow result
to be a non working day then click here for alternative ABAP code.

Simply add the below FORM into you code and call it using the usual PERFORM command:
   PERFORM add_working_days USING ld_numdays
CHANGING gd_date.



**&---------------------------------------------------------------------*
*& Form ADD_WORKING_DAYS
*&---------------------------------------------------------------------*
* Add n number of factory days(working days) to date
*----------------------------------------------------------------------*
* <-- P_DAYS Number of days to add * <-- P_PAYDATE Starting date *----------------------------------------------------------------------*
FORM add_working_days USING p_days
CHANGING p_paydate TYPE sy-datum.
DATA: gd_factorydat LIKE scal-facdate,
gd_resdate LIKE sy-datum.

* Convert date to factory date
CALL FUNCTION 'DATE_CONVERT_TO_FACTORYDATE'
EXPORTING
date = p_paydate "Starting date
factory_calendar_id = 'GB'
IMPORTING
factorydate = gd_factorydat. "Factory calender date

* Add n number of days to factory date, ignors non working days
gd_factorydat = gd_factorydat + p_days.

* Convert factory date back to actual date
CALL FUNCTION 'FACTORYDATE_CONVERT_TO_DATE'
EXPORTING
factorydate = gd_factorydat
factory_calendar_id = 'GB'
IMPORTING
date = gd_resdate. "Actual date

p_paydate = gd_resdate.
ENDFORM. " ADD_WORKING_DAYS

No comments:

Tutorials on SAP-ABAP

Adobe Interactive Forms Tutorials

Business Server Pages (BSP)

Userexits/BADIs

Web Dynpro for ABAP (Step by step procedure for web dynpro,Tutorials on Web Dynpro,)

ALV Tutorials

goodsites