//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;
{ 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;
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;
begin
Caption := Format('%d',
[Trunc(StrToDateTime('2001-12-28 19:40:14') - StrToDateTime('2002-12-28 19:40:14'))]); //-365
end;
//你在窗体上放个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;