*----------------------------------------------------------------------*
* Example: How to calculate the time between clock-in and clock-out    *
* even pass midnight.                                                  *
*----------------------------------------------------------------------*
REPORT  ZZXMP002.

PARAMETERS: T1 TYPE T,       "Clock-in
            T2 TYPE T.       "Clock-out

DATA:       H  TYPE I,       "Hours
            M  TYPE I,       "Minutes
            S  TYPE I,       "Seconds
            R(6) TYPE N.     "Result

*----------------------------------------------------------------------*
* Event: Start-of-selection                                            *
*----------------------------------------------------------------------*
START-OF-SELECTION.

  PERFORM TIME_BETWEEN_CLOCK USING T1 T2 H M S.
  R(2) = H. R+2(2) = M. R+4(2) = S.

*----------------------------------------------------------------------*
* Event: End-of-selction                                               *
*----------------------------------------------------------------------*
END-OF-SELECTION.
  WRITE: (8) T1 USING EDIT MASK '__:__:__' COLOR 3,
         (3) ' - ',
         (8) T2 USING EDIT MASK '__:__:__' COLOR 3,
         (3) ' = ',
         (8) R USING EDIT MASK '__:__:__'  COLOR 6.

*----------------------------------------------------------------------*
* Calculate hours, minutes and seconds between T1 and T2.              *
*----------------------------------------------------------------------*
FORM TIME_BETWEEN_CLOCK USING T1 T2 H M S.
  H = ( ( T2 - T1 ) MOD 86400 ) DIV 3600.
  M = ( ( ( T2 - T1 ) MOD 86400 ) DIV 60 ) - ( H * 60 ).
  S = ( ( T2 - T1 ) - ( H * 3600 ) - ( M * 60 ) ) MOD 86400.
ENDFORM.