说了半天你还是不明白!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;
uses Math;var i: integer; begin i := Trunc(Abs(Date1 - Date2) * 24); ShowMessage( Format('%d Hours', [i] ));
用DecodeDate(Date: TDateTime; var Year, Month, Day: Word); DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);对日期进行解码,然后用变参返回的值进行减法运算!
先相减,然后procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);
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;
i: integer;
begin
i := Trunc(Abs(Date1 - Date2) * 24);
ShowMessage( Format('%d Hours', [i] ));
DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);对日期进行解码,然后用变参返回的值进行减法运算!