//for Delphi6 DateUtils
{ Range spanning functions }
{ YearSpan and MonthSpan are approximates, not exact but pretty darn close }
function YearSpan(const ANow, AThen: TDateTime): Double;
function MonthSpan(const ANow, AThen: TDateTime): Double;
function WeekSpan(const ANow, AThen: TDateTime): Double;
function DaySpan(const ANow, AThen: TDateTime): Double;
function HourSpan(const ANow, AThen: TDateTime): Double;
function MinuteSpan(const ANow, AThen: TDateTime): Double;
function SecondSpan(const ANow, AThen: TDateTime): Double;
function MilliSecondSpan(const ANow, AThen: TDateTime): Double;

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      vSearchRec: TSearchRec;
      LocalFileTime: TFileTime;
      I, J, K: Integer;
    begin
      if FindFirst('C:\autoexec.bat', faAnyFile, vSearchRec) = 0 then begin
        FileTimeToLocalFileTime(vSearchRec.FindData.ftCreationTime, LocalFileTime);
        FileTimeToDosDateTime(LocalFileTime, LongRec(I).Hi, LongRec(I).Lo);
        Memo1.Lines.Values['创建时间'] := DateTimeToStr(FileDateToDateTime(I));    FileTimeToLocalFileTime(vSearchRec.FindData.ftLastAccessTime, LocalFileTime);
        FileTimeToDosDateTime(LocalFileTime, LongRec(J).Hi, LongRec(J).Lo);
        Memo1.Lines.Values['访问时间'] := DateTimeToStr(FileDateToDateTime(J));    FileTimeToLocalFileTime(vSearchRec.FindData.ftLastWriteTime, LocalFileTime);
        FileTimeToDosDateTime(LocalFileTime, LongRec(K).Hi, LongRec(K).Lo);
        Memo1.Lines.Values['修改时间'] := DateTimeToStr(FileDateToDateTime(K));    Memo1.Lines.Values['创建时间和修改时间差'] := IntToStr(Trunc(DaySpan(FileDateToDateTime(I), FileDateToDateTime(K))));
    //    Memo1.Lines.Values['创建时间和修改时间差'] := IntToStr(Trunc(FileDateToDateTime(I) - FileDateToDateTime(K)));
      end;
      FindClose(vSearchRec);
    end;
      

  2.   

    procedure TForm1.Button2Click(Sender: TObject);
    begin
      Caption := Format('%d',
        [Trunc(StrToDateTime('2001-12-28 19:40:14') - StrToDateTime('2002-12-28 19:40:14'))]); //-365
    end;
      

  3.   

    //这段代码就是例子
    //你在窗体上放个Memo即可uses
      DateUtils;procedure TForm1.Button1Click(Sender: TObject);
    var
      vSearchRec: TSearchRec;
      LocalFileTime: TFileTime;
      I, J, K: Integer;
    begin
      if FindFirst('C:\autoexec.bat', faAnyFile, vSearchRec) = 0 then begin
        FileTimeToLocalFileTime(vSearchRec.FindData.ftCreationTime, LocalFileTime);
        FileTimeToDosDateTime(LocalFileTime, LongRec(I).Hi, LongRec(I).Lo);
        Memo1.Lines.Values['创建时间'] := DateTimeToStr(FileDateToDateTime(I));    FileTimeToLocalFileTime(vSearchRec.FindData.ftLastAccessTime, LocalFileTime);
        FileTimeToDosDateTime(LocalFileTime, LongRec(J).Hi, LongRec(J).Lo);
        Memo1.Lines.Values['访问时间'] := DateTimeToStr(FileDateToDateTime(J));    FileTimeToLocalFileTime(vSearchRec.FindData.ftLastWriteTime, LocalFileTime);
        FileTimeToDosDateTime(LocalFileTime, LongRec(K).Hi, LongRec(K).Lo);
        Memo1.Lines.Values['修改时间'] := DateTimeToStr(FileDateToDateTime(K));    Memo1.Lines.Values['创建时间和修改时间差'] := IntToStr(Trunc(DaySpan(FileDateToDateTime(I), FileDateToDateTime(K))));
      end;
      FindClose(vSearchRec);
    end;