先用DecodeTime(time, Hour, Min, Sec)读出两个时间的时,分,秒,
然后进行运算!(hour1*3600 + min1*60 + sec1)-(hour2*3600 + min2*60 + sec2)
就可以!

解决方案 »

  1.   

    先由DecodeTime函数分解出时分秒,DecodeTime(Now,Hour,Min,Sec,MSec),然后运算.
      

  2.   

    用GetTickCount取得开始时间并保存在变量中。
    结束时再调用GetTickCount,在把两数相减后除以1000,好象是这样吧^-^
      

  3.   

    不行,此方法遇到跨日时便会出错,如果要连年月日也计算实在太麻烦了。
    GetTickCount是什么?怎样用?
      

  4.   

    GetTickCount在计算任意两个时间的差的时候能有什么用?先不用管它(想了解用法查SDK)。TDateTime是以天为单位的Double类型值,所以可以直接进行加减乘除运算,最后乖以24*3600就得到秒了。例如——var
      T1, T2: TDateTime;
      D: Double;
    begin
      T1 := StrToDateTime('2001-8-31 16:00:00');
      T2 := StrToDateTime('2001-9-1 16:00:00');
      D := (T2 - T1) * 24 * 3600;
      ShowMessage(FloatToStr(D));
    end;
      

  5.   

    Gettickcount是得到当前系统时间是多少微秒。
    我一般这样写:
    var 
    T1,T2:Double;
    begin
    T1:=GetTickCout;
    do something;
    t2:=Gettickcount;
    lable1.caption:=Floattostr((t2-t1)/1000)+'秒';
    end;
      

  6.   

    如果计算含日期的时间差,用Gettickcount就可以了!
      

  7.   

    但是用GetTickCount有可能出现异常,好像是吧?到达一定的值后,它好像是要重新计数的。
      

  8.   


    最简单的方法:
    var t1,t2:TDateTime;
    n :integer;
    n :=  integer(double(t2-t1) * 86400);
      

  9.   

    Gettickcount是得到当前系统时间是多少微秒。
    我一般这样写:
    var 
    T1,T2:Double;
    begin
    T1:=GetTickCout;
    do something;
    t2:=Gettickcount;
    lable1.caption:=Floattostr((t2-t1)/1000)+'秒';
    end;
      

  10.   

    Unit
    DateUtilsfunction SecondsBetween(const ANow, AThen: TDateTime): Int64;
      

  11.   

    漂亮!OysterLQD(沉默者)!
    又学了一招,原来从来没有发现有DateUtils这么个东东!没必要再讨论下去了,把分给他吧:)
      

  12.   

    DateUtils在哪里的?
    我怎么找不到啊?不能用啊!
      

  13.   

    怎么没人回答我?
    OysterLQD(沉默者)、dq(独轻) ,都不在吗?
      

  14.   

    呵呵,难道你们用的不是D6?D6下是这个文件——
    C:\Program Files\Borland\Delphi6\Source\Rtl\Common\DateUtils.pas
    如果你们的Delphi版本里确实没有这个东东的话,就用我的方法吧,和它的源码里的实现本质上是一致的:)