Quantcast
Channel: SCN: Message List - ABAP Development
Viewing all articles
Browse latest Browse all 10425

Re: Difference Between 2 Timestampl's

$
0
0

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

*----------------------------------------------------------------------*


Viewing all articles
Browse latest Browse all 10425

Trending Articles