首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 時間比較函數:CompareDateTime、CompareDate、CompareTime

     編輯:Delphi

函數原型

function CompareDateTime(const A, B: TDateTime): TValueRelationship;
function CompareDate(const A, B: TDateTime): TValueRelationship;
function CompareTime(const A, B: TDateTime): TValueRelationship;

返回值(TValueRelationship):-1 (A<B)、0 (A=B)、1 (A>B)。

差異說明

  • CompareDateTime:同時比較日期與時間。
  • CompareDate:忽略時間部分,僅比較年月日。
  • CompareTime:忽略日期部分,僅比較時分秒毫秒。

實戰測試代碼

uses DateUtils;

procedure TForm1.FormCreate(Sender: TObject);
var
  t1, t2: TDateTime;
  r1, r2, r3: Integer;
begin
  { 日期相同、時間不同 }
  t1 := StrToDateTime('2009-5-20 1:1:1');
  t2 := StrToDateTime('2009-5-20 1:0:0');
  r1 := CompareDateTime(t1, t2); // 1
  r2 := CompareDate(t1, t2);     // 0
  r3 := CompareTime(t1, t2);     // 1
  ShowMessageFmt('相同日期: %d, %d, %d', [r1, r2, r3]);

  { 日期不同、時間相同 }
  t1 := StrToDateTime('2009-5-20 1:1:1');
  t2 := StrToDateTime('2009-5-21 1:1:1');
  r1 := CompareDateTime(t1, t2); // -1
  r2 := CompareDate(t1, t2);     // -1
  r3 := CompareTime(t1, t2);     // 0
  ShowMessageFmt('相同時間: %d, %d, %d', [r1, r2, r3]);

  { 日期時間都不同 }
  t1 := StrToDateTime('2009-5-19 1:1:1');
  t2 := StrToDateTime('2009-5-20 0:0:0');
  r1 := CompareDateTime(t1, t2); // -1
  r2 := CompareDate(t1, t2);     // -1
  r3 := CompareTime(t1, t2);     // 1
  ShowMessageFmt('全不同: %d, %d, %d', [r1, r2, r3]);
end;

應用場景

  • 排序 TDateTime 列表:List.Sort(@CompareDateTime)。
  • 判斷是否同一天:CompareDate(d1, d2) = 0。
  • 檢查時間是否在某區間:CompareTime(t, StartTime) >= 0 且 CompareTime(t, EndTime) <= 0。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved