我们经常在编写程序的时候想知道程序运行的时间,即所谓的程序的卡时,这里可以借助pascal中的sysutils中的TSystemTime类型,请先看fp中关于TSystemTime的知识:
Uses sysutils;
Var ST : TSystemTime;
Begin
DateTimeToSystemTime(Now,ST);
With St do
begin
Writeln ('Today is ',year,'/',month,'/',Day);
Writeln ('The time is ',Hour,':',minute,':',Second,'.',MilliSecond);
end;
Writeln ('Converted : ',DateTimeToStr(SystemTimeToDateTime(ST)));
End.
可以看出如果一个变量定义为TSystemTime,获取时间后可以通过两次获取的时间差得到实际运行时间,其中st.year表示年,st.month表示月,st.day表示天,st.hour表示小时,st.minute表示分钟,st.second表示秒,st.millisecond表示毫秒,最后一项说精确卡时的关键。
举例:
Uses sysutils;
Var st,ed: TSystemTime;
i,s:longint;
begin
DateTimeToSystemTime(Now,ST);
for i:=1 to 10000 do write(i*i,' ');
writeln;
DateTimeToSystemTime(Now,ED);
s:=(ed.second-st.second)*1000+(ed.millisecond-st.millisecond);
writeln(s div 1000,'s ',s mod 1000,'ms');
readln;
end.