請指教判斷是否爲合法日期的權威算法 |
答題得分者是:cashxin2002
|
WoodTiger
初階會員 發表:35 回覆:90 積分:25 註冊:2003-08-01 發送簡訊給我 |
寫了兩支判斷是否爲合法日期的算法,但總有點問題,請各位賜教,謝謝
程式一:(某些機器上輸入了一個非法日期後,後導致程式出錯,提示“1999/02/31不是一個合法的日期值”)
function blnisdate(strYear,strMonth,strDay:string):boolean;
var
y,m,d:word;
n:TDate;
begin
n:=strtodate(strYear '-' StrMonth '-01');
decodedate(n,y,m,d);
if rightstr(DateToStr(EndOfAMonth(y,m)),2)>=strDay then result:=True else result:=False; 程式二:(在某些機器上明明是正確的日期確告訴用戶日期不合法)
function blnisdate(strYear,strMonth,strDay:string):boolean;
var
st: string;
begin
st:=strYear '-' strMonth '-' strday;
try
StrToDate(st);
Result := True;
except
Result:=False;
end;
end; 請問一下各位是怎麽實現的,有無權威的算法?謝謝! ==================================
搞得懂就答人,搞不懂就問人,沒有人懂還可以問神!
------
-=-=-=-=-=-=-=-=-=-=-= Eveything as your wish. |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi WoodTiger, 我猜測應該是前端日期格式設定不一致所引起,改成如下測試看看
function blnisdate(strYear,strMonth,strDay:string):boolean; var st: string; DS : Char; SDF : String; begin SDF := ShortDateFormat; DS := DateSeparator; DateSeparator := '-'; ShortDateFormat := 'yyyy-mm-dd'; st := strYear '-' strMonth '-' strday; try StrToDate(st); Result := True; except Result:=False; end; DateSeparator := DS; ShortDateFormat := SDF; end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
WoodTiger
初階會員 發表:35 回覆:90 積分:25 註冊:2003-08-01 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 可以使用IsValidDate函數來判斷日期格式是否正确﹕
uses DateUtils begin If IsValidDate(2005,2,29) then ShowMessage('正确格式') else ShowMessage('錯誤格式'); end;相關的函數還有IsValidTime和IsValidDateTime ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟 |
yorkland
高階會員 發表:2 回覆:138 積分:108 註冊:2004-12-17 發送簡訊給我 |
|
WoodTiger
初階會員 發表:35 回覆:90 積分:25 註冊:2003-08-01 發送簡訊給我 |
非常感謝Fishman、cashxin2002和yorkland。
按Fishman的方法改了程式後,用戶這裏沒有再說有錯誤了,真是謝謝
cashxin2002和yorkland說的小弟仔細學習,謝謝
很爲難奧,分只能給一個人,真對不住其他兩位了,請以後繼續幫助小弟,謝謝! ==================================
搞得懂就答人,搞不懂就問人,沒有人懂還可以問神!
------
-=-=-=-=-=-=-=-=-=-=-= Eveything as your wish. |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |