‎2007 Jun 21 12:34 PM
Hi Guys/Dolls
I need a small function call is to help identify incremental dates that are due on a Monday. The logic is to be as follows:-
Operator will input a date.
The program should do one of the following:-
If date specified is Monday to Friday return Monday's Date.
If date specified is Saturday or Sunday then return next Monday's date.
<u>Eg. 1</u>
If operator entered <b>21.06.2007</b> system would return <b>18.06.2007</b>
<u>Eg. 2</u>
If operator entered <b>30.06.2007</b> system would return <b>02.07.2007</b>
Any ideas?
Many thanks in advance.
Raj
‎2007 Jun 21 12:53 PM
Hello,
Check this sample
REPORT ZV_DATE_COMPUTE_DAY .
PARAMETERS: P_DATE LIKE SY-DATUM.
DATA: DIFF TYPE SCAL-INDICATOR,
LV_DATE LIKE SY-DATUM.
CALL FUNCTION 'DATE_COMPUTE_DAY'
EXPORTING
DATE = P_DATE
IMPORTING
DAY = DIFF.
IF DIFF LE 5.
DIFF = DIFF - 1.
LV_DATE = P_DATE - DIFF.
ENDIF.
IF DIFF GE 6.
LV_DATE = P_DATE + 2.
ENDIF.
IF DIFF GE 7.
LV_DATE = P_DATE + 1.
ENDIF.
WRITE: LV_DATE.
Vasanth
‎2007 Jun 21 12:45 PM
Hi,
Use the FM DATE_COMPUTE_DAY.
In this FM pass the date entered by the user.The FM returns the day of the date.
If 1 is returned it means Saturday,2 for Sunday and so on....
So you could write a code following the FM wherein if day returned is 1 or 2 you could add the number of days to get the date of next Monday.
Similarly you could subtarct the correct number of days if the value falls between 3 to 7.
Hope it will be useful.
Thanks,
Sandeep.
‎2007 Jun 21 12:46 PM
REPORT ychatest MESSAGE-ID zz..
DATA: day TYPE p.
PARAMETERS:wa_date LIKE sy-datum DEFAULT sy-datum.
CALL FUNCTION 'DAY_IN_WEEK'
EXPORTING
datum = wa_date
IMPORTING
wotnr = day.
CASE day.
WHEN '1'.
wa_date = wa_date.
WHEN '2'.
wa_date = wa_date - 1.
WHEN '3'.
wa_date = wa_date - 2.
WHEN '4'.
wa_date = wa_date - 3.
WHEN '5'.
wa_date = wa_date - 4.
WHEN '6'.
wa_date = wa_date + 2.
WHEN '7'.
wa_date = wa_date + 1.
ENDCASE.
WRITE: / 'Monday date from today date is ', wa_date.
‎2007 Jun 21 12:53 PM
Hello,
Check this sample
REPORT ZV_DATE_COMPUTE_DAY .
PARAMETERS: P_DATE LIKE SY-DATUM.
DATA: DIFF TYPE SCAL-INDICATOR,
LV_DATE LIKE SY-DATUM.
CALL FUNCTION 'DATE_COMPUTE_DAY'
EXPORTING
DATE = P_DATE
IMPORTING
DAY = DIFF.
IF DIFF LE 5.
DIFF = DIFF - 1.
LV_DATE = P_DATE - DIFF.
ENDIF.
IF DIFF GE 6.
LV_DATE = P_DATE + 2.
ENDIF.
IF DIFF GE 7.
LV_DATE = P_DATE + 1.
ENDIF.
WRITE: LV_DATE.
Vasanth