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