我的代码:  
ABS(TDateTimePicker.Time-Time())*24*60*60 得到相差的秒数,但是不对啊
TDateTimePicker.Time是TDatetime类型,得到的值是整数
而Time()是TTime类型,得到的是一个很小的实数,如1.0E10(-304)。
折腾了半天,不得其解,请大家赐教。

解决方案 »

  1.   

    type TTime = type TDateTime;
      

  2.   

    改为:ABS(TDateTimePicker.Time-date())*24*60*60 时间相
      

  3.   

    如下计算相差的秒数更为简单些,
    uses DateUtilsprocedure TForm1.Button1Click(Sender: TObject);
    begin
    showmessage(inttostr(SecondsBetween(DateTimePicker1.Time,date())));
    end;
      

  4.   

    这样用:由于在delphi中时间是用小数表示的,日期用整数表示,所以,DateTimePicker1.Time应该返回的是一个 (整数).(小数)其中整数部分表示日期,小数部分表示时间,所以你可以取小数部分,而time()函数直接返回的是用以表示时间的小数所以,你可以如下求相差的秒数:
    其中:Frac返回一个实数的小数部分。edit1.Text := floattostr(ABS(Frac(DateTimePicker1.Time)-Time())*24*60*60 );
    edit2.Text := inttostr(SecondsBetween(Frac(DateTimePicker1.Time),Time()));这两个结果稍有不同,第一个有小数部分,第二个没有小数部分,随你的需要自己选择
      

  5.   

    多谢 boyhappyboy(binbin), 其实我就是想要这个Frac,OK,发分