unit timer;
interface
procedure get_time_start;{начало отсчета времени}
procedure get_time_stop; {конец отсчета времени}
procedure put_time; {показать результат}
implementation
uses dos;
var
hour_start, min_start, sec_start, hund_start,
hour_stop, min_stop, sec_stop, hund_stop,
hour, min, sec, 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<10 then write ('0');
write (w);
end;
begin
print (hour);
write (':');
print (min);
write (':');
print (sec);
write ('.');
print (hund);
writeln;
end;
procedure compute_elapsed_time;
begin
if hour_stop < hour_start then inc(hour_stop, 24);
if hour_stop > hour_start then
begin
dec(hour_stop);
inc(min_stop, 60);
end;
if min_stop > min_start then
begin
dec(min_stop);
inc(sec_stop, 60);
end;
if sec_stop > sec_start then
begin
dec(sec_stop);
inc(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);
inc(sec);
end;
if sec>=60 then
begin
dec(sec, 60);
inc(min);
end;
if min>=60 then
begin
dec(min, 60);
inc(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.