線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2111
推到 Plurk!
推到 Facebook!

delphi5有與delphi6 類似的這兩個日期 function 嗎?

尚未結案
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-18 13:14:02 IP:202.100.xxx.xxx 未訂閱
我想使用delphi6中的dateutils 中 Istoday() 和 dayof()兩個functions,不知delphi5中,有沒有相同功能的functions?
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-18 13:41:52 IP:211.76.xxx.xxx 未訂閱
Hi, 你可以自行 trace 一下 delphi 6 的程式碼, 自行定義 IsToday , DayOf Function 即可在 delphi 5 中使用..
function IsToday(const AValue: TDateTime):Boolean;
begin
  Result := (AValue >= Trunc(Date)) and
            (AValue < Trunc(Date)   1);
end;
//
//
function DayOf(const AValue: TDateTime): Word;
var
  LYear, LMonth: Word;
begin
  DecodeDate(AValue, LYear, LMonth, Result);
end;
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-18 13:59:08 IP:202.100.xxx.xxx 未訂閱
那請問如何獲得檔案的創建日期(不需要創建時間!)
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-18 15:59:49 IP:61.225.xxx.xxx 未訂閱
引言: 那請問如何獲得檔案的創建日期(不需要創建時間!)
function CovFileDate(Fd:_FileTime):TDateTime; { 轉換檔案的時間格式 } var Tct:_SystemTime; Temp:_FileTime; begin FileTimeToLocalFileTime(Fd,Temp); FileTimeToSystemTime(Temp,Tct); CovFileDate:=SystemTimeToDateTime(Tct); end; ..... procdeure GetFileTime(const Tf:string); { 獲取檔案時間,Tf表示目標檔案路徑和名稱 } const Model='yyyy/mm/dd,hh:mm:ss'; { 設定時間格式 } var Tp:TSearchRec; { 宣告Tp為一個查找記錄 } T1,T2,T3:string; begin FindFirst(Tf,faAnyFile,Tp); { 查找目標檔案 } T1:=FormatDateTime(Model, CovFileDate(Tp.FindData.ftCreationTime))); { 返回檔案的創建時間 } T2:=FormatDateTime(Model, CovFileDate(Tp.FindData.ftLastWriteTime))); { 返回檔案的修改時間 } T3:=FormatDateTime(Model,Now)); { 返回檔案的當前訪問時間 } FindClose(Tp); end; 善用「注意力」,就是善於掌握「優先次序」—分清那些是重要的及不重要的。 「捨」才會「得」,集中焦距,才能發揮核心優勢。
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-18 22:12:20 IP:61.221.xxx.xxx 未訂閱
引言: 那請問如何獲得檔案的創建日期(不需要創建時間!)
flyup 兄的方式很好哦. 另外, 弟參考了一下 delphi 的 FileAge Function 後, 改寫了一下功能, 原來的 fileage 是 ftLastWriteTime (最後修改時間), 但不能查建立時間和最後存取時間, 所以弟寫了 FileAgeEx function, 其中第一個參數是檔名, 第二個參數是要取得的時間是代碼 1. 建立時間 2. 最後存取時間 3. 最後修改時間 回傳為檔案時間格式, 若是 -1 則表示找不到該檔(如原來的 FileAge Function一樣) 然後再利用 FileDateToDateTime function 來將傳回的檔案時間轉為 TDateTime 的格式. 以下為範例:
procedure TForm1.Button1Click(Sender: TObject);
var
  t0, t1, t2, t3: string;
begin
  t0:=formatdatetime('yyyy/mm/dd',FileDateToDateTime(FileAge('c:\AspiLog.TXT')));
  t1:=formatdatetime('yyyy/mm/dd',FileDateToDateTime(FileAgeEx('c:\AspiLog.TXT',1)));
  t2:=formatdatetime('yyyy/mm/dd',FileDateToDateTime(FileAgeEx('c:\AspiLog.TXT',2)));
  t3:=formatdatetime('yyyy/mm/dd',FileDateToDateTime(FileAgeEx('c:\AspiLog.TXT',3)));
  Memo1.Lines.Add('fileage     : '   t0);
  Memo1.Lines.Add('建立時間    : '   t1);
  Memo1.Lines.Add('最後存取時間: '   t2);
  Memo1.Lines.Add('最後修改時間: '   t3);
end;
//....
//    function FileAgeEx(const FileName: string; types: Integer): Integer;
var
  Handle: THandle;
  FindData: TWin32FindData;
  LocalFileTime: TFileTime;
begin
  Handle := FindFirstFile(PChar(FileName), FindData);
  if Handle <> INVALID_HANDLE_VALUE then
  begin
    Windows.FindClose(Handle);
    if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then
    begin
      case types of
        1: // 建立時間
          FileTimeToLocalFileTime(FindData.ftCreationTime, LocalFileTime);
        2: // 最後存取時間
          FileTimeToLocalFileTime(FindData.ftLastAccessTime, LocalFileTime);
        3: // 最後修改時間
          FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime);
      end;
      if FileTimeToDosDateTime(LocalFileTime, LongRec(Result).Hi,
        LongRec(Result).Lo) then Exit;
    end;
  end;
  Result := -1;
end;    
系統時間:2024-05-04 16:45:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!