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: 

find the difference

Former Member
0 Kudos

time 1= 19:43:31

date 1 = 19/04/2007

time2 = 15:39:30

date 2= 19/12/2007

please find the difference between these two dates and times.

the output should show exact difference in HH:MM:SS.

WILL BE REWARDED

1 ACCEPTED SOLUTION

Former Member
0 Kudos

REPORT ZEXAMPLE.

DATA V_DIFF TYPE I.

PARAMETERS P_BIRTHD LIKE SY-DATUM.

CALL FUNCTION 'DAYS_BETWEEN_TWO_DATES'

EXPORTING

I_DATUM_BIS = SY-DATUM

I_DATUM_VON = P_BIRTHD

IMPORTING

E_TAGE = V_DIFF

EXCEPTIONS

DAYS_METHOD_NOT_DEFINED = 1

OTHERS = 2.

IF SY-SUBRC EQ 0.

WRITE:/ V_DIFF, 'DAYS HAVE PASSED SINCE', P_BIRTHD.

ELSE.

WRITE:/ 'ERROR IN CALCULATION'.

ENDIF.

-


REPORT ZEXAMPLE LINE-SIZE 120.

DATA: DDIFF TYPE P,

TDIFF TYPE P,

EDATE.

PARAMETERS: P_STARTD LIKE SY-DATUM DEFAULT SY-DATUM,

P_STARTT LIKE SY-UZEIT DEFAULT SY-UZEIT,

P_ENDD LIKE SY-DATUM,

P_ENDT LIKE SY-UZEIT.

WRITE:/ 'START DATE', 15 'START TIME', 30 'END DATE', 45 'END TIME', 60 'DAYS DIFF',

75 'HOURS DIFF', 90 'EARLIEST'.

ULINE.

CALL FUNCTION 'SD_DATETIME_DIFFERENCE'

EXPORTING

DATE1 = P_STARTD

TIME1 = P_STARTT

DATE2 = P_ENDD

TIME2 = P_ENDT

IMPORTING

DATEDIFF = DDIFF

TIMEDIFF = TDIFF

EARLIEST = EDATE

EXCEPTIONS

INVALID_DATETIME = 1

OTHERS = 2.

IF SY-SUBRC EQ 0.

WRITE:/ P_STARTD, 15 P_STARTT, 30 P_ENDD, 45 P_ENDT, 50 DDIFF, 65 TDIFF, 95 EDATE.

ELSE.

WRITE:/ 'COULD NOT CALCULATE THE DIFFERENCE'.

ENDIF.

-


Rewards if helpful.

5 REPLIES 5

Former Member
0 Kudos

Hi SSN,

Try this FM

<b>SD_DATETIME_DIFFERENCE</b>

Try this also,

<b>Try the FM 'HR_TIME_AND_DURATION'.</b>

Try the Following Sample Code:

DATA : lv_end_time TYPE uplend VALUE '140000',

lv_seconds TYPE sytabix,

lv_total_seconds TYPE sytabix,

lv_rem_seconds TYPE sytabix,

lv_temp_hours TYPE uplend.

lv_total_seconds = 5 * 60 * 60.

CALL FUNCTION 'SWI_DURATION_DETERMINE'

EXPORTING

start_date = sy-datum

end_date = sy-datum

start_time = sy-uzeit

end_time = lv_end_time

IMPORTING

duration = lv_seconds.

lv_rem_seconds = lv_total_seconds - lv_seconds.

lv_rem_seconds = lv_rem_seconds MOD 86400.

lv_temp_hours = lv_rem_seconds.

WRITE 😕 lv_temp_hours.

<b>Reward points if useful</b>

Regards

Ashu

Former Member
0 Kudos

hi,

"t1= 19:43:31

"d1 = 19/04/2007

"t2 = 15:39:30

"d2= 19/12/2007

CALL FUNCTION 'SD_DATETIME_DIFFERENCE'
EXPORTING
DATE1 = D1
TIME1 = T1
DATE2 = D2
TIME2 = T2 
IMPORTING
DATEDIFF = D3
TIMEDIFF = T3 
EXCEPTIONS
INVALID_DATETIME = 1
OTHERS = 2.

Regards

Reshma

former_member194669
Active Contributor
0 Kudos

aRs

Former Member
0 Kudos

REPORT ZEXAMPLE.

DATA V_DIFF TYPE I.

PARAMETERS P_BIRTHD LIKE SY-DATUM.

CALL FUNCTION 'DAYS_BETWEEN_TWO_DATES'

EXPORTING

I_DATUM_BIS = SY-DATUM

I_DATUM_VON = P_BIRTHD

IMPORTING

E_TAGE = V_DIFF

EXCEPTIONS

DAYS_METHOD_NOT_DEFINED = 1

OTHERS = 2.

IF SY-SUBRC EQ 0.

WRITE:/ V_DIFF, 'DAYS HAVE PASSED SINCE', P_BIRTHD.

ELSE.

WRITE:/ 'ERROR IN CALCULATION'.

ENDIF.

-


REPORT ZEXAMPLE LINE-SIZE 120.

DATA: DDIFF TYPE P,

TDIFF TYPE P,

EDATE.

PARAMETERS: P_STARTD LIKE SY-DATUM DEFAULT SY-DATUM,

P_STARTT LIKE SY-UZEIT DEFAULT SY-UZEIT,

P_ENDD LIKE SY-DATUM,

P_ENDT LIKE SY-UZEIT.

WRITE:/ 'START DATE', 15 'START TIME', 30 'END DATE', 45 'END TIME', 60 'DAYS DIFF',

75 'HOURS DIFF', 90 'EARLIEST'.

ULINE.

CALL FUNCTION 'SD_DATETIME_DIFFERENCE'

EXPORTING

DATE1 = P_STARTD

TIME1 = P_STARTT

DATE2 = P_ENDD

TIME2 = P_ENDT

IMPORTING

DATEDIFF = DDIFF

TIMEDIFF = TDIFF

EARLIEST = EDATE

EXCEPTIONS

INVALID_DATETIME = 1

OTHERS = 2.

IF SY-SUBRC EQ 0.

WRITE:/ P_STARTD, 15 P_STARTT, 30 P_ENDD, 45 P_ENDT, 50 DDIFF, 65 TDIFF, 95 EDATE.

ELSE.

WRITE:/ 'COULD NOT CALCULATE THE DIFFERENCE'.

ENDIF.

-


Rewards if helpful.

Former Member
0 Kudos

hi

good

try this function module

SD_DATETIME_DIFFERENCE Give the difference in Days and Time for 2 dates

thanks

mrutyun^