06-18-2007 9:06 AM
Hi,
Can any one provide me the logic for calculating the number of "sundays" in a given date range?
Like 12-May-2004 to 18-June-2007, I wish to know total sundays coming.
thank you all.
06-18-2007 9:08 AM
Hi Pranu,
Go through the following Code
For No of Sundays & Saturdays
PARAMETERS:
date1 LIKE sy-datum DEFAULT '20060501',
date2 LIKE sy-datum DEFAULT sy-datum.
DATA i .
DATA z TYPE p DECIMALS 0.
DATA cnt TYPE sy-dbcnt.
DATA cnt_su TYPE sy-dbcnt.
DATA cnt_sa TYPE sy-dbcnt.
WRITE: date1, date2.
WHILE date1 LE date2.
CALL FUNCTION 'DAY_IN_WEEK'
EXPORTING
datum = date1
IMPORTING
wotnr = z.
ADD 1 TO date1.
IF z = 6.
ADD 1 TO cnt_sa.
ELSEIF z = 7.
ADD 1 TO cnt_su.
ENDIF.
ENDWHILE.
WRITE: / 'Sun:', cnt_su, 'Sat:', cnt_sa.
Thanks,
Reward If Helpful.
06-18-2007 9:08 AM
Hi Pranu,
Go through the following Code
For No of Sundays & Saturdays
PARAMETERS:
date1 LIKE sy-datum DEFAULT '20060501',
date2 LIKE sy-datum DEFAULT sy-datum.
DATA i .
DATA z TYPE p DECIMALS 0.
DATA cnt TYPE sy-dbcnt.
DATA cnt_su TYPE sy-dbcnt.
DATA cnt_sa TYPE sy-dbcnt.
WRITE: date1, date2.
WHILE date1 LE date2.
CALL FUNCTION 'DAY_IN_WEEK'
EXPORTING
datum = date1
IMPORTING
wotnr = z.
ADD 1 TO date1.
IF z = 6.
ADD 1 TO cnt_sa.
ELSEIF z = 7.
ADD 1 TO cnt_su.
ENDIF.
ENDWHILE.
WRITE: / 'Sun:', cnt_su, 'Sat:', cnt_sa.
Thanks,
Reward If Helpful.
06-18-2007 9:13 AM
Hi,
you can try something like this.
data: l_date1 like sy-datum,
l_date2 like sy-datum,
l_sundays type i,
l_day type i.
l_date1 = '20070618'.
l_date2 = '20040512'.
while l_date1 ge l_date2.
CALL FUNCTION 'DATE_COMPUTE_DAY'
EXPORTING
DATE = l_date2
IMPORTING
DAY = l_day.
if l_day = '7'.
add 1 to l_sundays.
endif.
add 1 to l_date2.
endwhile.
Kostas
06-18-2007 9:13 AM
Hi.
You can determine if a date is sunday using function module DATE_COMPUTE_DAY.
So it could look like
lv_date = lv_start_date.
WHILE lv_date LE lv_end_date.
CALL FUNCTION 'DATE_COMPUTE_DAY'
EXPORTING
date = lv_date
IMPORTING
day = lv_day.
IF lv_day = 7.
ADD 1 TO lv_count.
ENDIF.
lv_date = lv_date + 1.
ENDWHILE.
Regards,
Timo.
06-18-2007 9:16 AM
06-18-2007 9:18 AM
Hi Pranu,
here you go: -
data: begin of itab occurs 0,
datum type sy-datum,
end of itab.
data: weekday like dtresr-weekday.
data: number_lines type i.
parameters: p_sdatum type sy-datum,
p_edatum type sy-datum.
itab-datum = p_sdatum.
append itab.
do.
if itab-datum = p_edatum.
exit.
endif.
itab-datum = itab-datum + 1.
call function 'DATE_TO_DAY'
exporting
date = itab-datum
importing
weekday = weekday.
if weekday = 'Sat.'
or weekday = 'Sunday'.
continue.
endif.
append itab.
enddo.
describe table itab lines number_lines.
write:/ 'Number of days between dates is', number_lines.
Reward points for helpful answers.
Hari krishna