是否可以从Delphi 2010中的TStopWatch获取(TDateTime)启动时间(或结束时间)?
评论澄清:我不需要考虑多次停止/重新启动,只需要日期&秒表开始的时间。
答案 0 :(得分:2)
没有属性可以返回秒表开始的时间。所以我认为你必须做一些算术来解决这个问题。
ElapsedTicks
除以Frequency
,以获得自秒表开始以来的秒数。代码可能如下所示:
uses
Diagnostics, DateUtils;
function GetStopwatchStart(const Stopwatch: TStopwatch): TDateTime;
var
ElapsedSeconds: Double;
begin
ElapsedSeconds := Stopwatch.ElapsedTicks / Stopwatch.Frequency;
Result := IncMillisecond(Now, -Round(ElapsedSeconds*1000));
end;
请注意,这假定秒表正在运行,并且从未暂停。