Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Calculate No of days,months and Yrs Between two Dates

arvind_soni
Participant
0 Kudos

Hi,

Can any one tell me the function module name to calculate No of days,months and Yrs Between two Dates.

Thanks.

Arvind

8 REPLIES 8

Former Member
0 Kudos

fm

FIMA_DAYS_AND_MONTHS_AND_YEARS

regards

shiba dutta

Former Member
0 Kudos
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. 

x_faede-zfbdt -> 20050915 
p_fdat -> 20050811

DAYS_BETWEEN_TWO_DATES

MONTHS_BETWEEN_TWO_DATES Integer number

MONTHS_BETWEEN_TWO_DATES_NEW Most universal FM to determine months (both integer and float values)

REPORT ZDATEDIFF.

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 - 60.

Message was edited by:

Judith Jessie Selvi

Former Member
0 Kudos

Hi,

Check out with the below FM

DAYS_BETWEEN_TWO_DATES

FIMA_DAYS_BETWEEN_TWO_DATES

FIMA_DAYS_BETWEEN_TWO_DATES_2

FIMA_LEAP_DAYS_BETWEEN_2_DATES

LEAP_DAYS_BETWEEN_TWO_DATES

HR_99S_INTERVAL_BETWEEN_DATES

ISB_DAYS_BETWEEN_TWO_DATES

Regards,

Ram

Pls reward points if helpful

Former Member
0 Kudos

Aravind,

use below any FMs

1. CALL FUNCTION 'HR_MX_INTERVAL_BETWEEN_DATES'

EXPORTING

I_DATE_START = gd_start_date

I_DATE_END = gd_end_date

IMPORTING

E_YEARS = gd_years

E_DAYS = gd_days

EXCEPTIONS

SEQUENCE_OF_DATES_NOT_VALID = 1

ERROR_IN_CALC_OF_YEARS = 2

NO_ENTRY_IN_T511K = 3

OTHERS = 4.

if sy-subrc <> 0.

endif.

Pls. Mark if useful

2.HR_HK_DIFF_BT_2_DATES

Former Member

Former Member
0 Kudos

Hi,

When ever u r opening a post try to reward poinst for those who have replied with helpful answers to ur query.

U have closed say u have solved by ur own.

Press the stars near the post which answered ur query adn reward points.

This will encourage others to reply for the post.

Former Member
0 Kudos

==========================================

Subtraction of Two Dates and Get Months

==========================================

DATA: TUM_BIS(10),

TUM_VON(10).

data: e_monate type i.

DATA: BEGIN OF DATUM_VON,

JJJJ(4) TYPE N,

MM(2) TYPE N,

TT(2) TYPE N,

END OF DATUM_VON.

DATA: BEGIN OF DATUM_BIS,

JJJJ(4) TYPE N,

MM(2) TYPE N,

TT(2) TYPE N,

END OF DATUM_BIS.

TUM_BIS = SY-DATUM.

TUM_VON = '20060101'.

E_MONATE = 0. " KOETZ 02.09.1994

CHECK NOT ( TUM_VON IS INITIAL ) " KOETZ 02.09.1994

AND NOT ( TUM_BIS IS INITIAL )." KOETZ 02.09.1994

DATUM_VON = TUM_VON.

DATUM_BIS = TUM_BIS.

E_MONATE = ( DATUM_BIS-JJJJ - DATUM_VON-JJJJ ) * 12

+ ( DATUM_BIS-MM - DATUM_VON-MM ).

Write:/ e_monate.

==========================================

Subtraction of Two Dates and Get Months

==========================================

DATA: TUM_BIS(10),

TUM_VON(10).

data: e_monate type i.

DATA: BEGIN OF DATUM_VON,

JJJJ(4) TYPE N,

MM(2) TYPE N,

TT(2) TYPE N,

END OF DATUM_VON.

DATA: BEGIN OF DATUM_BIS,

JJJJ(4) TYPE N,

MM(2) TYPE N,

TT(2) TYPE N,

END OF DATUM_BIS.

TUM_BIS = SY-DATUM.

TUM_VON = '20060101'.

E_MONATE = 0. " KOETZ 02.09.1994

CHECK NOT ( TUM_VON IS INITIAL ) " KOETZ 02.09.1994

AND NOT ( TUM_BIS IS INITIAL )." KOETZ 02.09.1994

DATUM_VON = TUM_VON.

DATUM_BIS = TUM_BIS.

E_MONATE = ( DATUM_BIS-JJJJ - DATUM_VON-JJJJ ).

Write:/ e_monate.

0 Kudos

==========================================

Subtraction of Two Dates and Get years

==========================================

DATA: TUM_BIS(10),

TUM_VON(10).

data: e_monate type i.

DATA: BEGIN OF DATUM_VON,

JJJJ(4) TYPE N,

MM(2) TYPE N,

TT(2) TYPE N,

END OF DATUM_VON.

DATA: BEGIN OF DATUM_BIS,

JJJJ(4) TYPE N,

MM(2) TYPE N,

TT(2) TYPE N,

END OF DATUM_BIS.

TUM_BIS = SY-DATUM.

TUM_VON = '20060101'.

E_MONATE = 0. " KOETZ 02.09.1994

CHECK NOT ( TUM_VON IS INITIAL ) " KOETZ 02.09.1994

AND NOT ( TUM_BIS IS INITIAL )." KOETZ 02.09.1994

DATUM_VON = TUM_VON.

DATUM_BIS = TUM_BIS.

E_MONATE = ( DATUM_BIS-JJJJ - DATUM_VON-JJJJ ).

Write:/ e_monate.