‎2006 Oct 05 2:31 PM
i want to pass on 2 date values to a Function module and inreturn i need the total numberr of days between those 2 dates.
My function module name is HR_AUPBS_MONTH_DAY.
Pls provide me the code..its urgent?
Rgds
Giri
‎2006 Oct 05 2:47 PM
Hi,
/: PERFORM DATE IN PROGRAM ZDATE
/: USING &DATE1&
/: USING &DATE21&
/: CHANGING &YEAR&
/: CHANGING &MONTH&
/: CHANGING &DATE&
/: ENDPERFORM<b>In program ZDATE,</b>
form Date tables intab structure itcsy
outab structure itcsy.
DATA: L_DATE_1 TYPE SY-DATUM,
L_DATE_2 TYPE SY-DATUM.
DATA: L_YEAR(2),
L_MONTH(2),
L_DATE(2).
read table intab with key name = 'DATE1'.
if sy-subrc = 0.
L_DATE_1 = intab-value.
ENDIF.
read table intab with key name = 'DATE2'.
if sy-subrc = 0.
L_DATE_2 = intab-value.
ENDIF.
CALL FUNCTION 'HR_AUPBS_MONTH_DAY'
EXPORTING
BEG_DA = L_DATE_1
END_DA = L_DATE_2
IMPORTING
NO_YEAR = L_YEAR
NO_MONTH = L_MONTH
NO_DAY = L_DAY
* NO_CAL_DAY = CAL_DAY.
CLEAR OUTTAB.
READ TABLE OUTAB WITH KEY NAME = 'YEAR'.
IF SY-SUBRC = 0.
OUTAB-VALUE = L_YEAR.
modify outab index sy-tabix.
ENDIF.
READ TABLE OUTAB WITH KEY NAME = 'MONTH'.
IF SY-SUBRC = 0.
OUTAB-VALUE = L_MONTH.
modify outab index sy-tabix.
ENDIF.
READ TABLE OUTAB WITH KEY NAME = 'DATE'.
IF SY-SUBRC = 0.
OUTAB-VALUE = L_DATE.
modify outab index sy-tabix.
ENDIF.copy and paste this code, this will work, in the Script, DATE, MONTH and Year will be avilable ...
Regards
Sudheer
‎2006 Oct 05 2:35 PM
hi,
there is no need of any FM for this, just substract it .
Data: datehigh type sy-datum,
datelow type sy-datum.
data: diff type i.
datehigh = sy-datum.
datelow = sy-datum - 100.
diff = datehigh - datelow.
write: diff.
rgds
anver
‎2006 Oct 05 2:36 PM
Hi ramada,
Y would you need a fm for that?
v_days = date2 - date1. " will do the same for you.
If you still want to use the fm:
here is the code:
CALL FUNCTION 'HR_AUPBS_MONTH_DAY'
EXPORTING
BEG_DA = P_BEGDA
END_DA = P_ENDDA
IMPORTING
NO_YEAR = P_NO_YEAR
NO_MONTH = P_NO_MON
NO_DAY = P_NO_DAY
NO_CAL_DAY = P_CAL_DAY.
‎2006 Oct 05 2:36 PM
HI,
Sample code which is similar to your requirement
Write the following lines of code in your driver program(ZTESTPDF)
FORM INCR_NUM TABLES INTAB STRUCTURE ITCSY
OUTAB STRUCTURE ITCSY.
DATA: V_DATE LIKE SY-DATUM , V_CHAR(10) TYPE C.
READ TABLE OUTAB WITH KEY NAME = 'GV'.
IF SY-SUBRC = 0.
V_DATE = SY-DATUM + 1.
CONCATENATE V_DATE+4(2) V_DATE+6(2) V_DATE+0(4) INTO V_CHAR
SEPARATED BY '.'.
OUTAB-VALUE = V_CHAR.
CONDENSE OUTAB-VALUE.
MODIFY OUTAB INDEX SY-TABIX.
ENDIF.
ENDFORM.
write these lines in your script.
/: DEFINE &AB& TYPE I,
/: &GV&
/: &AB& = 1
/: PERFORM INCR_NUM IN PROGRAM ZTESTPDF
/: USING &AB&
/: CHANGING &GV&
/: TABLES INPUT_TABLE
/: OUTPUT_TABLE
/: ENDPERFORM
Regards,
sailaja.
‎2006 Oct 05 2:37 PM
‎2006 Oct 05 2:47 PM
Hi,
/: PERFORM DATE IN PROGRAM ZDATE
/: USING &DATE1&
/: USING &DATE21&
/: CHANGING &YEAR&
/: CHANGING &MONTH&
/: CHANGING &DATE&
/: ENDPERFORM<b>In program ZDATE,</b>
form Date tables intab structure itcsy
outab structure itcsy.
DATA: L_DATE_1 TYPE SY-DATUM,
L_DATE_2 TYPE SY-DATUM.
DATA: L_YEAR(2),
L_MONTH(2),
L_DATE(2).
read table intab with key name = 'DATE1'.
if sy-subrc = 0.
L_DATE_1 = intab-value.
ENDIF.
read table intab with key name = 'DATE2'.
if sy-subrc = 0.
L_DATE_2 = intab-value.
ENDIF.
CALL FUNCTION 'HR_AUPBS_MONTH_DAY'
EXPORTING
BEG_DA = L_DATE_1
END_DA = L_DATE_2
IMPORTING
NO_YEAR = L_YEAR
NO_MONTH = L_MONTH
NO_DAY = L_DAY
* NO_CAL_DAY = CAL_DAY.
CLEAR OUTTAB.
READ TABLE OUTAB WITH KEY NAME = 'YEAR'.
IF SY-SUBRC = 0.
OUTAB-VALUE = L_YEAR.
modify outab index sy-tabix.
ENDIF.
READ TABLE OUTAB WITH KEY NAME = 'MONTH'.
IF SY-SUBRC = 0.
OUTAB-VALUE = L_MONTH.
modify outab index sy-tabix.
ENDIF.
READ TABLE OUTAB WITH KEY NAME = 'DATE'.
IF SY-SUBRC = 0.
OUTAB-VALUE = L_DATE.
modify outab index sy-tabix.
ENDIF.copy and paste this code, this will work, in the Script, DATE, MONTH and Year will be avilable ...
Regards
Sudheer