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

如何實作(現在日期時間-起始日期時間)%動作日期時間間隔的程式

尚未結案
markov
中階會員


發表:55
回覆:135
積分:53
註冊:2003-12-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-20 22:58:36 IP:61.229.xxx.xxx 未訂閱
我想寫一個(現在日期時間-起始日期時間)%動作日期時間間隔的程式 現在起始日期時間StartDateTime己知, 動作日期時間間隔也已知,但是是 month=1~30 day=1~30 hour=1~60 min=1~60 sec=1~60的格式儲存於變數int當中 我想要問的是我要如何做取餘數的動作? (現在日期時間-起始日期時間)我已經知道可以實作成 TDateTime DiffDateTime=Now()-StartDateTime; p.s.我總共會有約2000個元件都需要使用上述function判斷是否時間到了該動作 ,此外,就算程式剛開啟時間一到也要能自動動作,所以我沒有採用Timer
erosme
初階會員


發表:5
回覆:44
積分:29
註冊:2002-12-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-21 01:37:55 IP:218.166.xxx.xxx 未訂閱
Dear Markov, 其實你還是可以用 Timer ,只不過你要先把 Interval 設為 10 or 11 or 12...., 且 Enable = true . 如此程式一開啟,Timer 便會自動執行. 此時先設定下次運作時間以及確認是否要執行,若要動作則繼續執行. 不知是否符合你要的答案. 發表人 - erosme 於 2004/02/21 03:05:24
markov
中階會員


發表:55
回覆:135
積分:53
註冊:2003-12-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-21 14:43:00 IP:61.229.xxx.xxx 未訂閱
謝謝erosme的回答 可是我那2000個物件都有自己的起始時間及動作時間 有可能的情形是假設起始時間為8:0:0,動作時間為min=30 而且程式有可能在8:29:58起動, 如果用timer就會在8:29:58秒才起動計數30min 可是我希望的結果是8:30:0也要能動作 當然timer可以在起動時計算8:29:58-8:0:0的差值 但是時間一久,尤其是跨月或跨年之後, timer要用msec當單位,就變成要寫萬年曆程式才能正確算得相差多少msec 當然這是我的疑惑,有可能想錯了,還請各位予以指教
erosme
初階會員


發表:5
回覆:44
積分:29
註冊:2002-12-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-22 00:21:48 IP:218.166.xxx.xxx 未訂閱
Dear Markov, 我先解釋問題1. 當你希望的結果是8:30:0也要能動作時, 要在timer起動時先取得系統時間, 然後計算"8:30:00-系統時間"的差值 "2 sec". 最後timer的Interval 設為 2 sec. 如此不就解決了. 接著解釋問題2:萬年曆程式 若該動作時間為每日定時執行,則無萬年曆的問題. 因為每次執行timer時,先取得系統時間來計算下次啟動時間. 但若是每個月底才執行timer,這時候你只好勤快一點, 寫一個日期判斷程式了.
系統時間:2024-11-25 23:25:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!