‎2009 Sep 19 9:02 AM
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.