65 lines
1.4 KiB
Plaintext
65 lines
1.4 KiB
Plaintext
|
type
|
|||
|
timetype = record h, m, s, l : integer; end;
|
|||
|
|
|||
|
procedure time_difference( var tStart, tEnd, tDiff : timetype );
|
|||
|
var
|
|||
|
startSecond, startMinute, startHour : integer;
|
|||
|
|
|||
|
begin { time_difference }
|
|||
|
startSecond := tStart.s;
|
|||
|
startMinute := tStart.m;
|
|||
|
startHour := tStart.h;
|
|||
|
|
|||
|
tDiff.l := tEnd.l - tStart.l;
|
|||
|
if ( tDiff.l < 0 ) then
|
|||
|
begin
|
|||
|
tDiff.l := tDiff.l + 100;
|
|||
|
startSecond := startSecond + 1;
|
|||
|
end;
|
|||
|
|
|||
|
tDiff.s := tEnd.s - startSecond;
|
|||
|
if ( tDiff.s < 0 ) then
|
|||
|
begin
|
|||
|
tDiff.s := tDiff.s + 60;
|
|||
|
startMinute := startMinute + 1;
|
|||
|
end;
|
|||
|
|
|||
|
tDiff.m := tEnd.m - startMinute;
|
|||
|
if ( tDiff.m < 0 ) then
|
|||
|
begin
|
|||
|
tDiff.m := tDiff.m + 60;
|
|||
|
startHour := startHour + 1;
|
|||
|
end;
|
|||
|
|
|||
|
tDiff.h := tEnd.h - startHour;
|
|||
|
if ( tDiff.h < 0 ) then
|
|||
|
tDiff.h := tDiff.h + 12;
|
|||
|
end;
|
|||
|
|
|||
|
procedure print_time_part( num : integer );
|
|||
|
begin
|
|||
|
if ( num < 10 ) then write( '0' );
|
|||
|
write( num );
|
|||
|
end;
|
|||
|
|
|||
|
procedure print_time( var t: timetype );
|
|||
|
begin
|
|||
|
print_time_part( t.h );
|
|||
|
write( ':' );
|
|||
|
print_time_part( t.m );
|
|||
|
write( ':' );
|
|||
|
print_time_part( t.s );
|
|||
|
write( '.' );
|
|||
|
print_time_part( t.l );
|
|||
|
end;
|
|||
|
|
|||
|
procedure print_elapsed_time( var timeStart, timeEnd: timetype );
|
|||
|
var
|
|||
|
timeDiff: timetype;
|
|||
|
begin
|
|||
|
time_difference( timeStart, timeEnd, timeDiff );
|
|||
|
write( 'elapsed time: ' );
|
|||
|
print_time( timeDiff );
|
|||
|
writeln;
|
|||
|
end;
|
|||
|
|