01 WS-TIMES.
03 WS-START-TIME PIC 9(06).
03 WS-START-TIME-R REDEFINES WS-START-TIME.
05 WS-START-TIME-H PIC 9(02).
05 WS-START-TIME-M PIC 9(02).
05 WS-START-TIME-S PIC 9(02).
03 WS-END-TIME PIC 9(06).
03 WS-END-TIME-R REDEFINES WS-END-TIME.
05 WS-END-TIME-H PIC 9(02).
05 WS-END-TIME-M PIC 9(02).
05 WS-END-TIME-S PIC 9(02).
03 WS-DURATION-TIME.
05 WS-DUR-TIME-H PIC 9(02). *> OR PIC Z9.
05 FILLER PIC X VALUE ":".
05 WS-DUR-TIME-M PIC 9(02).
05 FILLER PIC X VALUE ":".
05 WS-DUR-TIME-S PIC 9(02).
03 START-SECONDS PIC 9(06).
03 END-SECONDS PIC 9(06).
03 NUMBER-OF-SECONDS PIC 9(06).
...
ACCEPT WS-START-TIME FROM TIME.
...
ACCEPT WS-END-TIME FROM TIME.
COMPUTE START-SECONDS =
( WS-START-TIME-H * 3600 ) +
( WS-START-TIME-M * 60 ) +
( WS-START-TIME-S ).
COMPUTE END-SECONDS =
( WS-END-TIME-H * 3600 ) +
( WS-END-TIME-M * 60 ) +
( WS-END-TIME-S ).
COMPUTE NUMBER-OF-SECONDS = END-SECONDS - START-SECONDS.
DIVIDE NUMBER-OF-SECONDS BY 3600 GIVING WS-DUR-TIME-H REMAINDER NUMBER-OF-SECONDS.
DIVIDE NUMBER-OF-SECONDS BY 60 GIVING WS-DUR-TIME-M REMAINDER WS-DUR-TIME-S.
DISPLAY "Total running time : " WS-DURATION-TIME.