關於使用TDateTime計算起始時間與終止時間的問題 |
答題得分者是:gac
|
szj
一般會員 發表:7 回覆:6 積分:2 註冊:2006-09-06 發送簡訊給我 |
假設有輸入兩個 TDateTime 變數 ( Start, End) ex: start 為 2006/01/01 end 為 2007/01/01 請問是否有函式可以列出中間經過的日期 Output: 2006/01/01 2006/01/02 2006/01/03 ... ... 2007/01/01 我知道可以用 DecodeDate(Start->DateTime, StartYear, StartMonth, StartDay); 的方式取出 Year, Month, Day。 但是卻不曉得有什麼方法可以一天一天的增加 有想過 StartDay =1 來累加,但是又需要考慮 Month 可能有28,30,31天數不同, 每4年又會潤2/29, 不曉得有什麼解決的方法,還是說只能自己來計算... 請問是否有人能給我一點意見....謝謝 編輯記錄
taishyang 重新編輯於 2007-04-25 14:47:25, 註解 將文章分類成[問題]‧
|
ivljoe
一般會員 發表:3 回覆:5 積分:1 註冊:2007-02-26 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
h@visli
資深會員 發表:103 回覆:429 積分:431 註冊:2004-02-13 發送簡訊給我 |
|
szj
一般會員 發表:7 回覆:6 積分:2 註冊:2006-09-06 發送簡訊給我 |
|
gac
初階會員 發表:2 回覆:28 積分:26 註冊:2004-08-16 發送簡訊給我 |
在BCB裡對 "TDateTime" 按滑鼠右鍵 "Find Declaration",
class RTL_DELPHIRETURN TDateTimeBase { public: doubleVal; }; 其實 TDataTime 就是一個 double 的值, 按 [F1] 查看 TDateTime 的說明也可以看到, "The integral part of a TDateTime value is the number of days that have passed since 12/30/1899. The fractional part of a TDateTime value is the time of day." 整數部分是由 1899/12/30 開始算的 "天數" - 日期, 小數部分則是 - 時間, 所以對 TDateTime 1 就是日期加一天, 要加一個小時則是 TDateTime double( 1.0 / 24.0 ), 加一個分鐘則是 TDateTime double( 1.0 / 24.0 / 60.0 ) ..... 依此類推, 有這些觀念,對於 TDateTime 時間的計算會有幫助的。
------
我..........還很嫩! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |