在服務器中經常會用到時間的計算,如記錄當前時間,存儲當前時間戳,計算兩個時間的差值。
TDateTime
datetime在內存中使用比較多,它是一個double類型,可以很精細的記錄時間。
..
var
tvNow: TDateTime;
...
var
lvNow: TDateTime;
h, m, s, ms: Word;
dv: Double;
begin
tvNow := Now();
mmo1.Lines.Add(FormatDateTime('ddddd-hh:nn:ss', tvNow));
//增加一個小時
lvNow := IncHour(tvNow, 1);
mmo1.Lines.Add(FormatDateTime('ddddd-hh:nn:ss', lvNow));
//增加一個小時
lvNow := IncMinute(lvNow, 60);
mmo1.Lines.Add(FormatDateTime('ddddd-hh:nn:ss', lvNow));
//計算時間差值
dv := lvNow - tvNow;
mmo1.Lines.Add(FloatToStr(dv));
DecodeTime(dv, h, m, s, ms);
mmo1.Lines.Add(Format('%d-%d-%d-%d', [h, m, s, ms]));
end;
TFileDate
filedate顧名思義,用來存儲比較多。它是一個int32型,佔4字節,比Double少了一半的字節數,所以用來存數據庫最好不過了。
filedate可以直接和Datetime互相轉換,返回值是一個integer(xe裏面是LongInt)
var
filedate: LongInt;
begin
filedate := DateTimeToFileDate(lvNow);
...
lvNow := FileDateToDateTime(filedate);
end;