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

如何做到日期比對問題

答題得分者是:P.D.
kevinsoung
一般會員


發表:36
回覆:41
積分:15
註冊:2011-11-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-11-23 19:30:28 IP:1.161.xxx.xxx 訂閱
各位老師與大大:
我有一個Edit名稱為 InDate_edit 讓使用者輸入日期資料
一個按鈕 Button1 名稱為 Chk_But
當使用者輸入日期後 按下按鈕比對目前日期如果小於系統日期則出現錯誤訊息
例如使用者輸入的日期是 2011/11/01
我用以下方是一直出現無法執行可否幫忙協助一下
[code delphi]
Var
Tmpdate :String;
X_123,X_456: TDateTime;
begin
Tmpdate:=InDate_edit ;
X_123:=StrToDate(Tmpdate);
X_456:=DateToStr(Date);
IF X_123 < X_456 then
ShowMessage('Error');

end;
[/code]

請各位老師與大大幫幫忙

感激不盡 萬般感激 謝謝
編輯記錄
kevinsoung 重新編輯於 2011-11-23 04:31:32, 註解 無‧
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-11-23 21:52:56 IP:118.169.xxx.xxx 未訂閱
使用STRING比對是最不明智的, 尤其是DatetoStr()的方式, 這關係到到你電腦的系統日期定義, 
有 2011/11/23, 11/23/2011, Dec 23, 2011 等各種方式, 轉成字串後你很難掌握對方電腦是那一種
所以要判斷日期, 一定要使用 TDate 來做
宣告一個 x_123: TDate;
只要Date-x_123=0 或者 Date=x_123 都可以判斷出來
因為 TDate-TDate 會回傳一個Integer值, 就是相差的天數
我都是用這樣的方式比對日期, 還不曾出過問題,
除非對方電腦的日期是不對的
===================引 用 kevinsoung 文 章===================
各位老師與大大:
我有一個Edit名稱為 InDate_edit 讓使用者輸入日期資料
一個按鈕Button1名稱為 Chk_But
當使用者輸入日期後按下按鈕比對目前日期如果小於系統日期則出現錯誤訊息
例如使用者輸入的日期是 2011/11/01
我用以下方是一直出現無法執行可否幫忙協助一下
[code delphi]
Var
Tmpdate :String;
X_123,X_456: TDateTime;
begin
Tmpdate:=InDate_edit ;
X_123:=StrToDate(Tmpdate);
X_456:=DateToStr(Date);
IF X_123 < X_456 then
ShowMessage('Error');

end;
[/code]

請各位老師與大大幫幫忙

感激不盡 萬般感激 謝謝
kevinsoung
一般會員


發表:36
回覆:41
積分:15
註冊:2011-11-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-11-23 23:09:16 IP:1.161.xxx.xxx 訂閱
感謝P.D老師的指導
我依您的方式
作了以下修正
[code delphi]
Var
X_123: TDate;
begin
X_123:=StrToDate(Edit2.Text);
If X_123 < Date then ShowMessage('Error');
end;

[/code]
不知這樣可不可以
感謝老師的解答
謝謝
編輯記錄
kevinsoung 重新編輯於 2011-11-23 08:09:38, 註解 無‧
kevinsoung 重新編輯於 2011-11-23 08:10:08, 註解 無‧
kevinsoung 重新編輯於 2011-11-23 08:10:54, 註解 無‧
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-11-24 02:19:35 IP:118.169.xxx.xxx 未訂閱
可不可以你直接測試就知道答案了啊!
===================引 用 kevinsoung 文 章===================
感謝P.D老師的指導
我依您的方式
作了以下修正
[code delphi]
Var
X_123: TDate;
begin
X_123:=StrToDate(Edit2.Text);
If X_123 < Date then ShowMessage('Error');
end;

[/code]
不知這樣可不可以
感謝老師的解答
謝謝
kevinsoung
一般會員


發表:36
回覆:41
積分:15
註冊:2011-11-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-11-24 10:33:06 IP:60.248.xxx.xxx 訂閱
感謝P.D老師的回覆
可以了
謝謝您
系統時間:2024-04-26 6:56:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!