delphi计算时间差

来源:互联网 发布:孙叔公的淘宝店 编辑:程序博客网 时间:2024/06/16 09:33

DaysBetween()函数可以实现,函数原型:(使用时在单元接口部分引用 DateUtils 单元)function TForm1.DaysBetween(Date1, Date2: TDateTime): integer;begin Result := Trunc(Date2) - Trunc(Date1) + 1; if Result < 0 then Result := 0;end;


FileTime := FileDateToDateTime(FileGetDate(iFileHandle));

     FileClose(iFileHandle);
       Days := DaysBetween(now,FileTime);
       Hours:=HoursBetween(now,FileTime)-(Days * 24);
      Minutes := MinutesBetween(now,FileTime)-((Days * 24 + Hours) * 60);

       Seconds := SecondsBetween(now,FileTime)-(((Days * 24 + Hours)*60+Minutes) * 60);




//================================================================== 
*显示出时间 
FormatDateTime( 'yyyy "年 "m "月 "d "日   "dddd   '+   'hh:mm:ss   AM/PM ',   Now); 
Year   :=   FormatDateTime( 'YYYY ',Date); 
Month   :=   FormatDateTime( 'MM ',Date); 
Day   :=   FormatDateTime( 'DD ',Date); 

//================================================================== 
*TDateTime     TDate   类 

Now   返回当前日期及时间   
Date   返回当前日期   
Time   返回当前时间   
DateTimeToStr   按缺省格式将日期和时间值转换为字符串;特定格式转换可用   FormatDateTime函数   
DateTimeToString   按缺省格式将日期和时间值拷贝到字符串缓冲区   
DateToStr   将TDateTime值的日期部分转为字符串   
TimeToStr   将TDateTime值的时间部分转为字符串   
FormatDateTime   按特定格式将日期和时间值转换为字符串   
StrToDateTime   将带有日期和时间信息的字符串转换为TdateTime类型值,如串有误将引发一个异常   
StrToDate   将带有日期信息的字符串转换为TDateTime类型格式   
StrToTime   将带有时间信息的字符串转换为TDateTime类型格式   
DayOfWeek   根据传递的日期参数计算该日期是一星期中的第几天   
DecodeDate   根据日期值返回年、月、日值   
DecodeTime   根据时间值返回时、分、秒、毫秒值   
EncodeDate   组合年、月、日值为TDateTime类型值   
EncodeTime   组合时、分、秒、毫秒值为TDateTime类型值   
//=============================================================


procedure TForm1.FormCreate(Sender: TObject);//窗体初始化
var
  iFileHandle: 
Integer;
  FileTime:TDateTime;
  Days:
Integer;
  Hours:
Integer;
  Minutes:
Integer;
  Seconds:
Integer;
begin
  DataPath :
= ExtractFilePath(paramstr(0))+'data';
  if FileExists(DataPath+'Local.rar') then
  begin
    iFileHandle:
=FileOpen(DataPath+'LocalDataBase.rar', fmOpenRead);
    FileTime := FileDateToDateTime(FileGetDate(iFileHandle));
    FileClose(iFileHandle);
       Days := DaysBetween(now,FileTime);
       Hours:=HoursBetween(now,FileTime)-(Days * 24);
       Minutes := MinutesBetween(now,FileTime)-((Days * 24 + Hours) * 60);
       Seconds := SecondsBetween(now,FileTime)-(((Days * 24 + Hours)*60+Minutes) * 60);
    Label1.Caption:='最后修改时间:'+
    IntToStr(Days)+' 天'+
    IntToStr(Hours)+' 小时'+
    IntToStr(Minutes)+' 分'+
    IntToStr(Seconds)+' 秒之前';
  end;
end;

原创粉丝点击