時間的運算 |
尚未結案
|
gavinj123
初階會員 發表:88 回覆:48 積分:27 註冊:2002-10-15 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 我想做時間的運算,如 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 發送簡訊給我 |
引言: 我想做時間的運算,如 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 發送簡訊給我 |
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; 沒有直接回答您的問題,因為有二位大大已經做了很棒的回答了,
不過我想這個小東西可以給你參考看看,希望會有幫助 月光小築~月牙兒
------
月光小築~月牙兒 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |