請教:實際的月份 |
尚未結案
|
mirage
初階會員 發表:40 回覆:101 積分:28 註冊:2004-01-05 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
引言: 請問先進們: var yymm1 : String; begin yymm1 := '2003/02'; Label1.Caption := IntToStr(MonthsBetween(Now, StrToDate(yymm1))); end; 1.編譯出現'2002/01'不是有效日期,請問要如何修改.. 2.求出yymm1 3個月,如何做程式最簡潔.. 謝謝!mirage 你好 1.完整的日期須包含年、月及日,'2003/02'只有年月如何轉成日期型態?改成'2003/02/01'就可以 2.由於每個月份的天數不同,所以不適合用天數來計算,如下程式算法應該比較合理 Var yymm1:String; Date1 : TDate ; y,m,d : Word; Begin yymm1 := '2003/02/01'; Date1 := StrToDate(yymm1); DecodeDate(Date1,y,m,d); Inc(m,3); If m > 12 Then Begin inc(y); m := m-12; End; While True Do Begin Try Result := EncodeDate(y,m,d); Break; Except Dec(d);//遇到小月或二月時該月份沒有 31日或29日日須減1 End; End; End; |
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
|
mirage
初階會員 發表:40 回覆:101 積分:28 註冊:2004-01-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |