从TStopWatch获取启动时间或结束时间

时间:2014-07-28 15:10:13

标签: delphi datetime delphi-2010

是否可以从Delphi 2010中的TStopWatch获取(TDateTime)启动时间(或结束时间)?

评论澄清:我不需要考虑多次停止/重新启动,只需要日期&秒表开始的时间。

1 个答案:

答案 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;

请注意,这假定秒表正在运行,并且从未暂停。