• 小心SecondsBetween有坑


    看下面的代码,求两个时间间隔的秒数:

    procedure TForm2.FormCreate(Sender: TObject);
    begin
      d1:=Now;
    end;
    
    procedure TForm2.Timer1Timer(Sender: TObject);
    var
      i:Integer;
      s:string;
      s1,s2:string;
    begin
    //
      d2:=Now;
      i:=SecondsBetween(d2,d1);
      // i:= Round(MilliSecondsBetween(d2, d1)/1000);
      s1:=FormatDateTime('hh:mm:ss',d1);
      s2:=FormatDateTime('hh:mm:ss',d2);
      Memo1.Lines.Add(Format('%s-%s=%d',[s2,s1,i]));
    
    end;

    这是运行结果:

     应该是1、2、3、4...

    改成下面这样,出坑:

    procedure TForm2.FormCreate(Sender: TObject);
    begin
      d1:=Now;
    end;
    
    procedure TForm2.Timer1Timer(Sender: TObject);
    var
      i:Integer;
      s:string;
      s1,s2:string;
    begin
    
      d2:=Now;
      //i:=SecondsBetween(d2,d1);
      i:= Round(MilliSecondsBetween(d2, d1)/1000);
      s1:=FormatDateTime('hh:mm:ss',d1);
      s2:=FormatDateTime('hh:mm:ss',d2);
      Memo1.Lines.Add(Format('%s-%s=%d',[s2,s1,i]));
    
    end;

    运行结果正常了!

     开发环境: Delphi 10.4.2

  • 相关阅读:
    elementui:eltreenode
    Cesium+Vue
    TXT文件读写
    The Naked Kitchen
    0627realman
    信息: XML validation disabled
    跟踪加载图像
    加载和显示图像
    文件创建
    彩色图像转灰度图像
  • 原文地址:https://www.cnblogs.com/kinglandsoft/p/14547951.html
Copyright © 2020-2023  润新知