全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2057
推到 Plurk!
推到 Facebook!

時間的運算

尚未結案
gavinj123
初階會員


發表:88
回覆:48
積分:27
註冊:2002-10-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-29 11:47:24 IP:211.75.xxx.xxx 未訂閱
我想做時間的運算,如 2002/11/29 - 2天,2002/11/29 23:00 5:00,或是某二個日期時間相減等問題,請問有沒有人有這樣的函式?
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-11-29 12:02:26 IP:203.73.xxx.xxx 未訂閱
引言: 我想做時間的運算,如 2002/11/29 - 2天,2002/11/29 23:00 5:00,或是某二個日期時間相減等問題,請問有沒有人有這樣的函式?
gavinj123 你好: 可以利用 Win32 API(請查詢 M$DN or Platform SDK) 關鍵字 FILETIME, SYSTEMTIME 例如: 先利用 GetSystemTime 取得今天的「年月日時分秒」-->ST1 想要對這個時間加減「年月日時分秒」-->ST2 先分別把 ST1, ST2 轉換成 FILETIME FT1, FT2 FT1 跟 FT2 做完加減運算之後的結果 FTR 再把 FTR 轉回 SYSTEMTIME STR-->就是答案了 -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-11-29 12:17:33 IP:61.219.xxx.xxx 未訂閱
引言: 我想做時間的運算,如 2002/11/29 - 2天,2002/11/29 23:00 5:00,或是某二個日期時間相減等問題,請問有沒有人有這樣的函式?
這不須任何函式, DateTime本身就是Double,整數部分為日期,可直接計算 var d1,d2:TDateTime; begin d1:=StrTOdate('2002/11/29'); d2:=d1-2; d1:=StrTodatetime('2002/11/29 23:00'); d2:=d1 5 /24; end; 兩個日期變數可直接相減
Selena
一般會員


發表:16
回覆:28
積分:8
註冊:2002-11-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-11-29 14:56:39 IP:211.74.xxx.xxx 未訂閱
procedure TForm1.Button1Click(Sender: TObject); var t: tdatetime; begin t:= 0; // 1899/12/30 canvas.TextOut(0,20, datetimetostr(t)); t:= 1/(60*24); // 1899/12/30, 12:01 canvas.TextOut(0,40, datetimetostr(t)); t:= 1 1/(60*24); // 1899/12/31, 12:01 canvas.TextOut(0,60, datetimetostr(t)); t:= 2 1/(60*24)*60; // 1901/1/1, 01:00 canvas.TextOut(0,80, datetimetostr(t)); t:= 2 1/(60*24)*61; // 1900/1/1, 01:01 canvas.TextOut(0,100, datetimetostr(t)); end; 沒有直接回答您的問題,因為有二位大大已經做了很棒的回答了, 不過我想這個小東西可以給你參考看看,希望會有幫助 月光小築~月牙兒
------
月光小築~月牙兒
系統時間:2024-04-18 12:03:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!