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

關於日期的偵測

 
jiannrong
一般會員


發表:58
回覆:36
積分:18
註冊:2002-05-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-07-07 22:55:40 IP:61.70.xxx.xxx 未訂閱
想請教一下 我想把兩個日期 取出他們的日期差 只是 我發現到會有錯誤 我想應該是取日期 這一部分 有錯誤 只是 我不知道該用哪個函數 所以 請教一下 如果你知道了兩個日期 你是如何取出他們的日期差呢 還有 可不可以 把周六週日扣除掉 算出 這兩段時間內 他們的工作時間 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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-07-08 09:10:06 IP:203.149.xxx.xxx 未訂閱
先請問一下你的錯誤是什麼呢....看起來沒有問題呢... 
引言: 還有 可不可以 把周六週日扣除掉 算出 這兩段時間內 他們的工作時間
這個呀...你就要寫一個工作曆了... 發表人 - KIMMY 於 2002/07/08 09:13:08
Diviner
初階會員


發表:36
回覆:112
積分:34
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-07-08 12:32:44 IP:202.123.xxx.xxx 未訂閱
引言: 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
------
--
小卜子
系統時間:2024-05-07 11:46:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!