Hi,
Please check cl_abap_tstmp
Code:
REPORT y_r_eitan_test_09_02 .
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK block02 WITH FRAME .
PARAMETERS: p_date_f TYPE sydatum .
PARAMETERS: p_time_f TYPE syuzeit .
SELECTION-SCREEN SKIP .
PARAMETERS: p_date_t TYPE sydatum .
PARAMETERS: p_time_t TYPE syuzeit .
SELECTION-SCREEN END OF BLOCK block02 .
*----------------------------------------------------------------------*
INITIALIZATION.
PERFORM at_initialization .
AT SELECTION-SCREEN .
PERFORM at_selection_screen_input .
START-OF-SELECTION .
PERFORM at_start_of_selection .
*----------------------------------------------------------------------*
FORM at_initialization .
p_date_f = sy-datum - 1 .
p_time_f = sy-uzeit .
p_date_t = sy-datum .
p_time_t = sy-uzeit .
ENDFORM. " at_initialization
*----------------------------------------------------------------------*
FORM calc_time_diff
USING
p_date_f TYPE sydatum
p_time_f TYPE syuzeit
p_date_t TYPE sydatum
p_time_t TYPE syuzeit
CHANGING
p_diff TYPE tzntotoffs .
DATA: stamp_1 TYPE timestamp .
DATA: stamp_2 TYPE timestamp .
CLEAR p_diff .
CONVERT DATE p_date_f TIME p_time_f
INTO TIME STAMP stamp_2 TIME ZONE sy-zonlo .
CHECK sy-subrc EQ 0 .
CONVERT DATE p_date_t TIME p_time_t
INTO TIME STAMP stamp_1 TIME ZONE sy-zonlo .
CHECK sy-subrc EQ 0 .
DATA: r_secs TYPE tzntstmpl .
TRY .
CALL METHOD cl_abap_tstmp=>subtract
EXPORTING
tstmp1 = stamp_1
tstmp2 = stamp_2
RECEIVING
r_secs = r_secs.
p_diff = r_secs .
CATCH cx_parameter_invalid_range .
CLEAR p_diff .
CATCH cx_sy_arithmetic_overflow .
CLEAR p_diff .
ENDTRY .
ENDFORM . "calc_time_diff
*----------------------------------------------------------------------*
FORM at_selection_screen_input .
ENDFORM . "at_selection_screen_input
*----------------------------------------------------------------------*
FORM at_start_of_selection .
DATA: p_diff TYPE tzntotoffs .
PERFORM calc_time_diff
USING
p_date_f
p_time_f
p_date_t
p_time_t
CHANGING
p_diff .
MESSAGE s000(oo) WITH p_diff .
ENDFORM . "at_start_of_selection
*----------------------------------------------------------------------*