我想知道两个时间点相差多少秒。
我现在的想法是:
var begintime,endtime:tdatetime;begintime:=now;
.............endtime := now
然后从begintime和endtime的差值中求相差多少秒var temp:string;temp:=inttostr(trunc(endtime-begintime));
但得出的结果为0.如果有可能我想知道更精确的时间差距,比如相差0.333秒,把秒精确到小数点

解决方案 »

  1.   

    同一天的时间相差部分是小数,你用TRUNC,再inttostr肯定报0了
    可以用
    var
      tm : dword;
    begin
      tm := Gettickcount;
       ...
      showmessage(inttostr((gettickcount - tm) div 1000));
    end;
    试一试。
    delphi的datetime类型是double类型,一天=1
    一个小时是1/24
      

  2.   

    gettickcount取的是毫秒数,(去掉div 1000就是毫秒单位了)可以满足要求吧,
      

  3.   

    var
      DateTime1, DateTim2: TDateTime;
    就这么简单:
    (DateTime2 - DateTime1) * (24 * 60 * 60)
      

  4.   

    同意
    cnsuyong(小可) 
    不过,最后还应该取整数。
      

  5.   

    给你个提示把TdateTime实际是个浮点数。该浮点数的整数部分表示从12/30/1899开始的日期,OLE Automation与Microsoft应用程序也使用同样的日期(使用负值表示该日期之前的年份)。小数部分表示时间。例如,数值3。75代表1900年1月2日,6:00PM(一天的 三分之一)。为了加减日期,秩序要加或减天数,着要比用日月年表示法增加天数更容易实现。
      

  6.   

    flyingice(ygxdha) 虾米的可用
    请问下面几位。把浮点数转化为字符串的函数是什么?
    =====================================
    FloatToStr()
      

  7.   

    看看这个,刚好开着BCB了,自己再看看Delphi的帮助吧。
    extern PACKAGE __int64 __fastcall SecondsBetween(const System::
    TDateTime ANow, const System::TDateTime AThen);
    我觉得还是要多看看帮助,里面有好多东西的。