没错,Delphi 中,TDate 是长整型,TTime 是浮点数,直接加减就可以了。不过由于精度不够,TTime 加减时,可能会有1 秒的误差。

解决方案 »

  1.   

    sorry, 刚才说错了,TDate 和 TTime 都是 TDateTime 派生的,都是 Double 型,只不过TDate是整数部分,TTime 是小数部分。
      

  2.   

    我来插一嘴,因为TTime是以毫秒为最小单位的,如果我想在某一个时间中减去一毫秒,或者一秒,应该怎么做呢?
      

  3.   

    No.1 参见:日期相减?(rwq_)
    No.2 用系统函数:function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;
    No.3 放一个记数的变量
    //(*
    如:
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      Inc(FCount);
    end;
    //*)
    No.4 ShowMessage('看看自己的表'); 
    No.5 向Borland申请一个这样的控件
    ...
      

  4.   

      1.在delphi中,时间类是能够相加减的。为了能够获得正确的时间运算结果,建议要将两个要相加减的时间点强制转换成一样的格式。FormatDatetime()函数在此时是很有用处的。
      2.To cybercake:
        在Delphi中,时间类的默认单位是天,也就是说任何一个时间值都是被转化成以天为单位的Double型数据,那么要加减一天,就是直接加减一,要加减一个小时,就是直接加减1/24,如果要加减一分钟,那么只要加减1/(24*60),依次类推。很显然,要减掉一毫秒,就是减去1/(24*60*60*1000),要减去一秒当然就是减去1/(24*60*60)了。