‎2007 Jul 25 6:29 PM
Hi,
I have a requirement while caculating start date of the project.
The start date of the project should be as follows- last Saturday of the month (irrespective of date).
Please suggest a code.
Thanx in advance.
Vanky
‎2007 Jul 25 6:39 PM
hI,
Bit Tricky...
Here you go the compelete code
DATA: LV_DATE TYPE SY-DATUM,
LV_SATDAY TYPE SY-DATUM.
<b>*-- Get the Last day of the month</b>
CALL FUNCTION 'SLS_MISC_GET_LAST_DAY_OF_MONTH'
EXPORTING
DAY_IN = SY-DATUM
IMPORTING
LAST_DAY_OF_MONTH = LV_DATE
EXCEPTIONS
DAY_IN_NOT_VALID = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LV_DATE = LV_DATE - 5.
<b>*-- Get the next occurance of saturday</b>
CALL FUNCTION '/OSP/GETDATE_WEEKDAY'
EXPORTING
IV_DAY_OF_WEEK = 6
IV_START_DATE = LV_DATE
IV_TIME = '235959'
IMPORTING
EV_DATE_DAY_OF_WEEK = LV_SATDAY
EXCEPTIONS
INVALID_DAY = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
WRITE LV_SATDAY.
Thanks
Mahesh
Message was edited by:
I Can Solve It
‎2007 Jul 25 6:37 PM
Hi,
Please try this.
DATA: DAY TYPE P,
WA_LDATE LIKE SY-DATUM,
WA_SDATE LIKE SY-DATUM.
CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
EXPORTING
day_in = sy-datum
IMPORTING
last_day_of_month = wa_ldate
EXCEPTIONS
day_in_no_date = 1
OTHERS = 2.
CALL FUNCTION 'DAY_IN_WEEK'
EXPORTING
datum = wa_ldate
IMPORTING
wotnr = day.
CASE DAY.
WHEN '1'.
WA_SDATE = SY-DATUM - 2.
WHEN '2'.
WA_SDATE = SY-DATUM - 3.
WHEN '3'.
WA_SDATE = SY-DATUM - 4.
WHEN '4'.
WA_SDATE = SY-DATUM - 5.
WHEN '5'.
WA_SDATE = SY-DATUM - 6.
WHEN '6'.
WA_SDATE = SY-DATUM.
WHEN '7'.
WA_SDATE = SY-DATUM - 1.
ENDCASE.
WRITE: / 'Last Saturday of the month from today date is ', WA_SDATE.
Regards,
Ferry Lianto
‎2007 Jul 25 6:39 PM
hI,
Bit Tricky...
Here you go the compelete code
DATA: LV_DATE TYPE SY-DATUM,
LV_SATDAY TYPE SY-DATUM.
<b>*-- Get the Last day of the month</b>
CALL FUNCTION 'SLS_MISC_GET_LAST_DAY_OF_MONTH'
EXPORTING
DAY_IN = SY-DATUM
IMPORTING
LAST_DAY_OF_MONTH = LV_DATE
EXCEPTIONS
DAY_IN_NOT_VALID = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LV_DATE = LV_DATE - 5.
<b>*-- Get the next occurance of saturday</b>
CALL FUNCTION '/OSP/GETDATE_WEEKDAY'
EXPORTING
IV_DAY_OF_WEEK = 6
IV_START_DATE = LV_DATE
IV_TIME = '235959'
IMPORTING
EV_DATE_DAY_OF_WEEK = LV_SATDAY
EXCEPTIONS
INVALID_DAY = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
WRITE LV_SATDAY.
Thanks
Mahesh
Message was edited by:
I Can Solve It