// Measuring execution time using Now and Milliseconds
program MeasureTime;
uses
SysUtils, DateUtils;
procedure Work;
var
i: LongInt;
sum: Int64;
begin
sum := 0;
for i := 1 to 100000000 do
sum := sum + i;
end;
var
startTime, endTime: TDateTime;
elapsedMS: Int64;
seconds: Double;
begin
// Record start time
startTime := Now;
Work;
// Record end time
endTime := Now;
elapsedMS := MilliSecondsBetween(endTime, startTime);
seconds := elapsedMS / 1000.0;
WriteLn('Execution time: ', elapsedMS, ' ms');
WriteLn('Execution time: ', seconds:0:6, ' seconds');
end.
(*
run:
Execution time: 180 ms
Execution time: 0.180000 seconds
*)