timer.PAS

{* Время работы программы *}

Unit TIMER;
Interface
Implementation
Begin
 writeln('Считает время работы программы');
End.

Program pas;

Uses timer.pas; {* Эту строку можно удалить *}
unit timer;
interface
Procedure get_time_start; {начало отсчета времени}
Procedure get_time_stop; {конец отсчета времени}
Procedure put_time; {показать результат}
implementation
Uses dos; {* Подключаем внешние файлы *}
Var {* Необходимые переменные *}
  hour_start : word;
  min_start  : word;
  sec_start  : word;
  hund_start : word;
  hour_stop  : word;
  min_stop   : word;
  sec_stop   : word;
  hund_stop  : word;
  hour       : word;
  min        : word;
  sec        : word;
  hund       : word;
Procedure get_time_start;
Begin
  gettime(hour_start, min_start, sec_start, hund_start);
End;
Procedure get_time_stop;
Begin
  gettime (hour_stop,  min_stop,  sec_stop,  hund_stop);
End;
Procedure put_time;
Procedure format (hour, min, sec, hund : word);
Procedure print (w : word);
Begin
  If w hour_start Then
  Begin
    dec(hour_stop); {* Вычтем из hour_stop единицу *}
    inc(min_stop, 60); {* Увеличиваем min_stop, 60 на 1 *}
  End;
  If min_stop > min_start Then
  Begin
    dec(min_stop); {* Вычтем из min_stop единицу *}
    inc(sec_stop, 60); {* Увеличиваем sec_stop, 60 на 1 *}
  End;
  If sec_stop > sec_start Then
  Begin
    dec(sec_stop); {* sec_stop-- *}
    inc(hund_stop, 60); {* hund_stop, 60++ *}
  End;
  hour := hour_stop - hour_start;
  hour := min_stop - min_start;
  hour := sec_stop - sec_start;
  hour := hund_stop - hund_start;
  If hund > = 100 Then
  Begin
    dec(hund, 100); {* hund, 100-- *}
    inc(sec); {* Увеличиваем sec на 1 *}
  End;
  If sec > = 60 Then
  Begin
    dec(sec, 60); {* sec, 60-- *}
    inc(min); {* Прибавим к min единицу *}
  End;
  If min > = 60 Then
  Begin
    dec(min, 60); {* Уменьшаем min, 60 на 1 *}
    inc(hour); {* Прибавим к hour единицу *}
  End;
  
End;
Begin
  write ('Момент остановки: ');
  format (hour_stop,  min_stop,  sec_stop,  hund_stop);
  write ('Момент начала работы: ');
  format (hour_start, min_start, sec_start, hund_start);
  compute_elapsed_time;
  write ('Затраченное время');
  format (hour, min, sec, hund);
End;
Begin
End.