如何得到一周的数据? |
答題得分者是:小傑克
|
zhouying82
高階會員 ![]() ![]() ![]() ![]() 發表:150 回覆:272 積分:189 註冊:2004-03-16 發送簡訊給我 |
||
小傑克
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:5 回覆:209 積分:357 註冊:2009-02-16 發送簡訊給我 |
function DayOfTheWeek(const AValue: TDateTime): Word;
周1 就是1 , 周2就是2 , 從1 到 7 , 7是周日 function DayOfTheMonth(const AValue: TDateTime): Word; Call DayOfTheMonth to obtain the day of the month represented by a specified TDateTime value. DayOfTheMonth returns a value between 1 and 31. 用這兩個判斷就可以算出來第幾週從幾號到幾號
------
額有朝天骨,眼中有靈光
編輯記錄
小傑克 重新編輯於 2009-05-18 21:09:17, 註解 無‧
|
|
zhouying82
高階會員 ![]() ![]() ![]() ![]() 發表:150 回覆:272 積分:189 註冊:2004-03-16 發送簡訊給我 |
||
小傑克
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:5 回覆:209 積分:357 註冊:2009-02-16 發送簡訊給我 |
其實只要兩行判斷式而已
[code delphi] //顯示 testDay 是從幾號到幾號 procedure TForm1.Button1Click(Sender: TObject); var testDay,a,b:TDateTime; begin testDay := now; WeekFromDayToDay(testDay , a, b); ShowMessage(FormatDateTime('yyyy/mm/dd',a) '-' FormatDateTime('yyyy/mm/dd',b)); end; // procedure TForm1.WeekFromDayToDay(ADay: TDateTime; var FromDay, ToDay: TDateTime); var i,j,k:word; begin i := DayOfTheWeek(ADay); j := DayOfTheMonth(ADay); k := DaysInMonth(ADay); //避免往前算跨月 if i > j then FromDay := ADay - j 1 else FromDay := ADay - i 1 ; //避免往後算跨月 if (k-j) > (7-i) then ToDay := aDay (7-i) else ToDay := aDay (K-j); end; [/code]
------
額有朝天骨,眼中有靈光
編輯記錄
小傑克 重新編輯於 2009-05-19 04:01:58, 註解 無‧
|
|
zhouying82
高階會員 ![]() ![]() ![]() ![]() 發表:150 回覆:272 積分:189 註冊:2004-03-16 發送簡訊給我 |
||
小傑克
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:5 回覆:209 積分:357 註冊:2009-02-16 發送簡訊給我 |
我看你的敘述還以為你不要跨月
如果你跨月不限制的話更簡單,兩個 if 都不用 K,J 也都不用 , 就直接 i := DayOfTheWeek(ADay); FromDay := ADay - i 1; ToDay := aDay ( 7- i ); 三行就可以 ===================引 用 zhouying82 文 章=================== 首先感谢
------
額有朝天骨,眼中有靈光 |
|
zhouying82
高階會員 ![]() ![]() ![]() ![]() 發表:150 回覆:272 積分:189 註冊:2004-03-16 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |