關於日期的偵測 |
|
jiannrong
一般會員 發表:58 回覆:36 積分:18 註冊:2002-05-09 發送簡訊給我 |
想請教一下 我想把兩個日期 取出他們的日期差
只是 我發現到會有錯誤
我想應該是取日期 這一部分 有錯誤
只是 我不知道該用哪個函數
所以 請教一下 如果你知道了兩個日期
你是如何取出他們的日期差呢 還有 可不可以 把周六週日扣除掉 算出 這兩段時間內
他們的工作時間 var
date1,date2:Tdate;
date3:integer;
begin
//時間的取得
DM.Query1.close;
DM.Query1.SQL.Clear;
try
DM.Query1.SQL.ADD('select * from first where title =''施工測量放樣''');
DM.Query1.Prepare;
DM.Query1.Open;
if not DM.Query1.FieldByName('SDate').IsNull then
Date1 := StrToDate(DM.Query1.FieldByName('SDate').AsString);
if not DM.Query1.FieldByName('FDate').IsNull then
Date2 := StrToDate(DM.Query1.FieldByName('FDate').AsString);
date3:=strtoint(datetostr(date2-date1));
|
Kimmy
一般會員 發表:10 回覆:17 積分:5 註冊:2002-05-31 發送簡訊給我 |
|
Diviner
初階會員 發表:36 回覆:112 積分:34 註冊:2002-03-13 發送簡訊給我 |
引言: if not DM.Query1.FieldByName('SDate').IsNull then Date1 := StrToDate(DM.Query1.FieldByName('SDate').AsString); if not DM.Query1.FieldByName('FDate').IsNull then Date2 := StrToDate(DM.Query1.FieldByName('FDate').AsString); date3:=strtoint(datetostr(date2-date1));Kimmy 說得對, 做個工作曆是有需要的, 否則有天你要把其它的假期也排除計入, 又或星期六要加班, 就麻煩了。 另外引文中的程式有問題, 第一, 應該兩個 Fields 都不是 Null 才開始計算, 所以只應有一個 if clause; 第二, 取出兩個 Date 值之後的任何操作, 仍然應該在 if block 之內; 第三, field 之內容應該直接以 .AsDateTime 來取得, 若該欄位居然不是 Date Type, 你該改一改你的資料庫設計; 第四, 兩 date 相減, 是為日數, 用 DateToStr 來處理這個日數, 又有甚麼意義呢? 若你想把這日數放進 Date3(其實這變數命名不太好), 直接把 date2-date1 的結果放進 date3 就可以了。 -- 小卜子 發表人 - diviner 於 2002/07/08 12:33:37
------
-- 小卜子 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |