2009 Sep 19 9:02 AM
Hi All,
Is there any function module to find closest date among given dates?
Thanks in advance
Hi All,
Is there any function module to find closest date among given dates?
Thanks in advance
2009 Sep 19 9:53 AM
closest means come with clear questions
Thanks and Regards,
Thirukumaran. R
2009 Sep 19 10:54 AM
Hi
I think there is no FM module available which will satisy this requirement...
But You can develope one ZFM or You can write a code for it...
Logic will be
Check out below code...
PARAMETERS : P_DATE TYPE SY-DATUM DEFAULT '20090909'.
DATA : BEGIN OF WA_ITAB,
DATE TYPE SY-DATUM,
END OF WA_ITAB.
DATA : ITAB LIKE STANDARD TABLE OF WA_ITAB.
DATA : IND TYPE SY-TABIX,
IND2 TYPE SY-TABIX,
IND3 TYPE SY-TABIX,
DATE1 TYPE SY-DATUM,
DATE2 TYPE SY-DATUM,
DIFF1 TYPE I,
DIFF2 TYPE I,
UTTER_CLOSE TYPE SY-DATUM.
CLEAR : WA_ITAB, ITAB[].
WA_ITAB-DATE = '20090824'.
APPEND WA_ITAB TO ITAB.
CLEAR : WA_ITAB.
WA_ITAB-DATE = '20090901'.
APPEND WA_ITAB TO ITAB.
CLEAR : WA_ITAB.
WA_ITAB-DATE = '20090912'.
APPEND WA_ITAB TO ITAB.
CLEAR : WA_ITAB.
WA_ITAB-DATE = '20090930'.
APPEND WA_ITAB TO ITAB.
CLEAR : WA_ITAB.
WA_ITAB-DATE = '20091011'.
APPEND WA_ITAB TO ITAB.
CLEAR : WA_ITAB.
WA_ITAB-DATE = P_DATE. " P_DATE ==> Your Key Date
APPEND WA_ITAB TO ITAB.
CLEAR : WA_ITAB.
SORT ITAB BY DATE.
DELETE ADJACENT DUPLICATES FROM ITAB COMPARING DATE.
READ TABLE ITAB INTO WA_ITAB WITH KEY DATE = P_DATE.
IF SY-SUBRC = 0.
IND = SY-TABIX.
ENDIF.
IND2 = IND - 1.
IND3 = IND + 1.
READ TABLE ITAB INTO WA_ITAB INDEX IND2.
IF SY-SUBRC = 0.
DATE1 = WA_ITAB-DATE.
ENDIF.
READ TABLE ITAB INTO WA_ITAB INDEX IND3.
IF SY-SUBRC = 0.
DATE2 = WA_ITAB-DATE.
ENDIF.
CLEAR : DIFF1 , DIFF2.
DIFF1 = P_DATE - DATE1.
DIFF2 = P_DATE - DATE2.
IF DIFF1 = DIFF2.
UTTER_CLOSE = DATE1. " or date2 either
ELSEIF DIFF1 > DIFF2.
UTTER_CLOSE = DATE2.
ELSEIF DIFF1 < DIFF2.
UTTER_CLOSE = DATE1.
ENDIF.
WRITE : / 'Key Date ' , P_DATE.
WRITE : / 'Lower Closest Date ' , DATE1.
WRITE : / 'Upper Closest Date ' , DATE2.
WRITE : / 'Utter Close Date based on key date ', P_DATE , ' is ' , UTTER_CLOSE.Hope it will solve your problem..
Thanks & Regards
ilesh 24x7
ilesh Nandaniya
Edited by: ilesh 24x7 on Sep 19, 2009 3:54 PM
2020 Nov 21 11:56 AM
Hello Ilesh,
Thanks for the above code lines. It's working in my case.
Regards,
Kishore.
| User | Count |
|---|---|
| 6 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |