日期类型其实就是一个实数.整数部分代表天数,小数部分代表小时数.
 整数部分相减*24 + 小数部分转换成几点相减
 DecodeTime(),DecodeDate()

解决方案 »

  1.   


    先相减,然后procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);
      

  2.   

    日期相减后还是日期型吗???好象不能用DECODETIEM。
      

  3.   

    TDateTime是一个浮点数,意味着自12/30/1899 0时起到指定时刻共有多少个24小时,也就是说,如果浮点部分为.5的话则为某天的12:00pm,怎么换算不难吧?
      

  4.   

    (Date1 - Date2) * 24
      

  5.   

    说了半天你还是不明白!function Hours(Date1,Date2:TDateTime;):Integer;
    var  
      hh1,hh2,mm,ss,ms:Word;
      tempDate :TDateTime;
    begin
      if Date1<Date2 then
      begin
        TempDate:=Date1;
        Date1:=Date2;
        Date2:=Date1;
      end;
      Result:=24*(Trunc(Date1)-Trunc(Data2)); // 日期相差的天数*24
      DecodeTime(date1,hh1,mm,ss,ms); 
      DecodeTimd(Date2,hh2,mm,ss,ms);
      Result:=Result+(hh1-hh2); // 加上小时相差部分;
    end;
      

  6.   

    uses Math;var
      i: integer;
    begin
      i := Trunc(Abs(Date1 - Date2) * 24);
      ShowMessage( Format('%d Hours', [i] ));
      

  7.   

    用DecodeDate(Date: TDateTime; var Year, Month, Day: Word);
    DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);对日期进行解码,然后用变参返回的值进行减法运算!