3
A
回答
8
可以使用UnixToDateTime
和FormatDateTime
功能請參見本樣本
uses
DateUtils,
SysUtils;
var
StartUnixTime : Int64;
EndUnixTime : Int64;
StartDateTime : TDateTime;
EndDateTime : TDateTime;
begin
try
StartUnixTime:=1293062827;
EndUnixTime :=1293070000;
//option 1 converting both unix times to TDatetime and then subtract
StartDateTime:=UnixToDateTime(StartUnixTime);
EndDateTime :=UnixToDateTime(EndUnixTime);
Writeln(Format('Elapsed time %s',[FormatDateTime('hh:nn:ss',EndDateTime-StartDateTime)]));
//option 2 subtract directly and then convert to TDatetime
Writeln(Format('Elapsed time %s',[FormatDateTime('hh:nn:ss',UnixToDateTime(EndUnixTime-StartUnixTime))]));
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
Readln;
end.
此外,如果你想獲得的年,月,日,你可以使用YearsBetween
,MonthsBetween
並以這種方式DaysBetween
功能。
Writeln(Format('Years %d Months %d Days %d',[YearsBetween(EndDateTime,StartDateTime),MonthsBetween(EndDateTime,StartDateTime),DaysBetween(EndDateTime,StartDateTime)]));
1
UnixTime1 := 123456;
UnixTime2 := 123460;
Diff := UnixTime2 - UnixTime1;
if Diff > 24 * 60 * 60 then
raise Exception.CreateFmt('Time difference (%s seconds) is longer than a day.', [Diff]);
s := Format('%.2d:.%2d:%.2d', [Diff div 60 div 60, (Diff div 60) mod 60, Diff mod 60]);
1
這個答案並沒有產生我一直在尋找的結果。我選擇使用OvcDate.DateDiff過程來提供我正在尋找的結果。
procedure TBCSJEmpdm.q1CalcFields(DataSet: TDataSet);
var
das, mos, yrs : Integer;
begin
OvcDate.DateDiff(DateTimeToStDate(DataSet.FieldByName('fromd').AsDateTime),
DateTimeToStDate(DataSet.FieldByName('tod').AsDateTime), das, mos, yrs);
DataSet.FieldByName('das').AsInteger := das;
DataSet.FieldByName('mos').AsInteger := mos;
DataSet.FieldByName('yrs').AsInteger := yrs;
end;
該方法給出兩個日期之間的經過的年,月和日。 OvcDate需要ovc.inc文件。只要讓我知道你是否需要這些。
相關問題
- 1. 時間流逝和時區
- 2. 如何獲得時間流逝百分比?
- 3. 如何以hh:mm:ss:SSS格式顯示流逝時間C
- 4. 獲取時間流逝的MP3文件流的時間和持續時間android
- 5. C#如何測量流逝的時間?
- 6. 如何讓時間流逝的方法?
- 7. 如何比較流逝的時間?
- 8. actionscript 3如何跟蹤時間流逝?
- 9. 測量時間流逝2.4.37
- 10. 操作與時間流逝
- 11. 我們可以從netstat命令中獲得流逝時間嗎
- 12. 如何獲取當前時間流逝的百分比?
- 13. 如何獲取dql中兩個時間戳之間的時間流逝秒數?
- 14. python pandas:如何計算跨度間的流逝時間?
- 15. 腳本來衡量時間的流逝?
- 16. 計算時間的流逝與PHP
- 17. 計算時間流逝的Excel
- 18. 如何測量手機正在使用時的流逝時間
- 19. 如何在JavaScript中獲得ISO 8601時間格式的時間?
- 20. 直到時間流逝用戶輸入
- 21. 從Android相機捕捉時間流逝
- 22. 如何顯示流逝到Android的UI屏幕上的時間
- 23. 如何在時間流逝時收集按鍵?
- 24. jQuery的:如何獲得與12小時格式和時間的時間之差與24小時格式
- 25. 如何檢測Pascal中的流逝時間?
- 26. python threading.Timer如何確定流逝的時間?
- 27. 如何在Silverlight中顯示媒體元素的時間流逝?
- 28. 如何在特定時間格式中獲得隨機時間
- 29. 谷歌圖表 - 自定義格式化程序顯示流逝的時間?
- 30. 如何在使用CPLEX Python API後獲取流逝時間的值
+1和答案。謝謝 – Mawg 2010-12-23 04:12:23
如果輸入是Unix時間,不要顯示`zzz`部分;它只能測量秒,所以包括毫秒在內的精度是你不具備的。另外,請注意,如果所用時間超過24小時。 – 2010-12-23 04:52:12
Rob,你是對的,我更新了答案,省略了毫秒,並添加了顯示年,月和日的部分。 – RRUZ 2010-12-23 07:56:40