时间与相关类型(2) - TDate、TTime、TTimeStamp
生活随笔
收集整理的這篇文章主要介紹了
时间与相关类型(2) - TDate、TTime、TTimeStamp
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么80%的碼農都做不了架構師?>>> ??
//相關函數: SysUtils.DateTimeToTimeStamp(); SysUtils.TimeStampToDateTime();SysUtils.TimeStampToMSecs(); SysUtils.MSecsToTimeStamp();Windows.GetTickCount; Windows.GetCurrentTime; {GetCurrentTime 和 GetTickCount 一樣, 是調用了 GetTickCount.}TDate、TTime 與 TDateTime 的尺寸是一樣的, 互相轉換也不會損失數據; 存在的意義也只是便于理解.
比較有意思的是 TTimeStamp 結構: TTimeStamp = recordTime: Integer; { "毫秒" 表示的時間, 自: 0:0:0:0 }Date: Integer; { "天" 表示的日期, 自: 1/1/0001 } end;
{TDateTime 與 TTimeStamp 互相轉換的例子} varT: TDateTime;TS: TTimeStamp; beginT := EncodeDateTime(2009, 5, 22, 11, 22, 33, 999);TS := DateTimeToTimeStamp(T);ShowMessage(IntToStr(TS.Time)); //40953999; 當日已逝去了 40953999 毫秒ShowMessage(IntToStr(TS.Date)); //733549; 自 0001-1-1 的第 733549 天T := TimeStampToDateTime(TS);ShowMessage(FormatDateTime('yyyy-m-d h:m:s:z', T)); //2009-5-22 11:22:33:999 end;
假如我們要想知道自 0001-1 0:0:0:0 到 2009-5-22 11:22:33:999 總的毫秒數, 根據上面的結果不難算出:
733549*24*60*60*1000 + 40953999 = 63378674553999.
不過這有現成的函數: TimeStampToMSecs、MSecsToTimeStamp.
{TimeStampToMSecs、MSecsToTimeStamp 示例:} varT: TDateTime;TS: TTimeStamp;ms: Comp; {這是 TimeStampToMSecs 返回的類型} beginT := EncodeDateTime(2009, 5, 22, 11, 22, 33, 999);TS := DateTimeToTimeStamp(T);ms := TimeStampToMSecs(TS);ShowMessage(FloatToStr(ms)); //63378674553999TS := MSecsToTimeStamp(ms);T := TimeStampToDateTime(TS);ShowMessage(FormatDateTime('yyyy-m-d h:m:s:z', T)); //2009-5-22 11:22:33:999 end;
另外: GetTickCount 函數可獲取從開機時間到當前時間的毫秒數, 結合上面, 可以算出開機時間:
{獲取開機時間的例子} varT1: Int64;T2,T3: Comp;T4: TDateTime; beginT1 := GetTickCount; {從開機到現在的毫秒數}T2 := TimeStampToMSecs(DateTimeToTimeStamp(Now)); {從 0001-1-1 到當前時間的毫秒數}T3 := T2 - T1; {從 0001-1-1 到開機時刻的毫秒數}T4 := TimeStampToDateTime(MSecsToTimeStamp(T3)); {從 0001-1-1 到開機時刻的時間}ShowMessage(DateTimeToStr(T4)); {顯示開機時間} end;
轉載于:https://my.oschina.net/hermer/blog/320108
總結
以上是生活随笔為你收集整理的时间与相关类型(2) - TDate、TTime、TTimeStamp的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搭建管理驾驶舱--以结果倒逼过程管理
- 下一篇: 5分钟带你啃完营销著作《市场营销原理(科