‎2007 Feb 07 6:15 AM
hi all,
i need logic for calucating diffrence between two dates to get nos of days between these two dates.
these date can be of any year
eg- 01.01.2006 & 07.02.2007
i don't want any FM bcoz i am working on 4.0b
in which the FM which r available r not giving correct
result.
Message was edited by:
sanjeev singh
‎2007 Feb 07 6:27 AM
Hi,
data: DATE1 TYPE D,
DATE2 TYPE D.
IF DATE1 > DATE2.
EARLIEST = '2'.
ELSEIF DATE2 > DATE1.
EARLIEST = '1'.
ELSE.
*---- Both are equal
EARLIEST = '0'.
DAYDIFF = 0.
EXIT.
ENDIF.
ENDIF.
IF EARLIEST = '1'.
D1 = DATE1.
D2 = DATE2.
ELSE.
D1 = DATE2.
D2 = DATE1.
ENDIF.
Calculate date difference
DAYDIFF = D2 - D1.
Hope this helps.
Reward if helpful.
Regards,
Sipra
‎2007 Feb 07 6:18 AM
use fm DAYS_BETWEEN_TWO_DATES.
or if both the field are type sy-datum.
data : date1 like sy-datum value '20060101',
date2 like sy-datum value '20070701'.
data : days type i.
days = date2 - date1.
regards
shiba dutta
‎2007 Feb 07 6:19 AM
Hi,
Data: var type i.
var = 01.01.2006 - 07.02.2007.
write: var.
in the Variable VAR you will have the difference between those dates
Regards
Sudheer
‎2007 Feb 07 6:24 AM
Hi
try using
/SDF/CMO_DATETIME_DIFFERENCE
SD_DATETIME_DIFFERENCE
In time set as 12 in both dates
Regards
Shiva
‎2007 Feb 07 6:27 AM
Hi,
data: DATE1 TYPE D,
DATE2 TYPE D.
IF DATE1 > DATE2.
EARLIEST = '2'.
ELSEIF DATE2 > DATE1.
EARLIEST = '1'.
ELSE.
*---- Both are equal
EARLIEST = '0'.
DAYDIFF = 0.
EXIT.
ENDIF.
ENDIF.
IF EARLIEST = '1'.
D1 = DATE1.
D2 = DATE2.
ELSE.
D1 = DATE2.
D2 = DATE1.
ENDIF.
Calculate date difference
DAYDIFF = D2 - D1.
Hope this helps.
Reward if helpful.
Regards,
Sipra
‎2007 Feb 07 6:53 AM
DAYS_BETWEEN_TWO_DATES
MONTHS_BETWEEN_TWO_DATES Integer number
MONTHS_BETWEEN_TWO_DATES_NEWMost universal FM to determine months (both integer and float values)
CALL FUNCTION 'DAYS_BETWEEN_TWO_DATES'
EXPORTING
I_DATUM_BIS = x_faede-zfbdt
I_DATUM_VON = p_fdat
I_KZ_EXCL_VON = '0'
I_KZ_INCL_BIS = '0'
I_KZ_ULT_BIS = ' '
I_KZ_ULT_VON = ' '
I_STGMETH = '0'
I_SZBMETH = '1'
IMPORTING
E_TAGE = dias_v.
IF SY-SUBRC <> 0.
ENDIF.
donde:
x_faede-zfbdt -> 20050915
p_fdat -> 20050811
dias_v = 4
‎2007 Feb 07 7:12 AM
hi
if u r using fm days_between_two_dates then
enter date 31.01.2007 & 30.01.2007
u will get 0 days diffence between these two dates which is wrong
bcoz it should be 1.
i am already using this fm . in this fm it is not recognising 31st date.
‎2007 Feb 07 7:16 AM
DATA: DATE_1 LIKE SY-DATUM,
DATE_2 LIKE SY-DATUM.
DATA DAYS TYPE I.
DATE_1 = SY-DATUM.
DATE_2 = SY-DATUM + 65.
DAYS = DATE_2 - DATE_1.
WRITE:/ 'DATE_2=',DATE_2,'DATE_1=',DATE_1,'DAYS=',DAYS.
Run this code and then you will understand.
‎2007 Feb 07 7:24 AM
Hi sanjeev,
<b>
If FIMA_DAYS_AND_MONTHS_AND_YEARS FM is there then use this code,</b>
Report zex33.
DATA: EDAYS LIKE VTBBEWE-ATAGE,
EMONTHS LIKE VTBBEWE-ATAGE,
EYEARS LIKE VTBBEWE-ATAGE.
PARAMETERS: FROMDATE LIKE VTBBEWE-DBERVON,
TODATE LIKE VTBBEWE-DBERBIS DEFAULT SY-DATUM.
call function 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
exporting
i_date_from = FROMDATE
i_date_to = TODATE
I_FLG_SEPARATE = ' '
IMPORTING
E_DAYS = EDAYS.
*E_MONTHS = EMONTHS
*E_YEARS = EYEARS.
WRITE:/ 'Difference in Days ', EDAYS.
*WRITE:/ 'Difference in Months ', EMONTHS.
*WRITE:/ 'Difference in Years ', EYEARS.
INITIALIZATION.
FROMDATE = SY-DATUM - 1.
‎2007 Feb 07 9:20 AM