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

計算天數不包含六日或國定假日

尚未結案
jimmyhuang
一般會員


發表:3
回覆:2
積分:1
註冊:2005-07-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-01 10:18:21 IP:203.79.xxx.xxx 未訂閱
大家好 : 請問要如何計算使用者預約的日期是在一個月之內(31天) , 不包含 (六) (日) 或 (國定假日)? 請各位給小弟一些建議 ~ 在站上看了很多關於日期差異的文章但是都沒有針對 排除 (六) (日) 或 (國定假日) 的例子 , 所以請各位'幫幫忙 ~~
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-01 14:39:58 IP:61.231.xxx.xxx 未訂閱
不包含六日 = 今天 + 31 + (31日內的六日)    所以只要用SQL找出六日共有幾天就可以了。        ..-----------βλμε------------..
◎Oo月夜 光明 藍更愁oO◎
藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475
------
月夜 光明 藍更愁
way888
初階會員


發表:32
回覆:76
積分:36
註冊:2005-05-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-11-02 00:09:17 IP:220.137.xxx.xxx 未訂閱
Hi jimmyhuang您好 function DayOfWeek(day: TDateTime):integer;這個函式對你不知有用否? 以下是我自己寫來判斷星期幾的函式,參考看看... 至於國定假日可能要自己動手寫code囉 function WeekNo(day: TDateTime):string; begin case DayOfWeek(day) of 1 : result:='日'; 2 : result:='一'; 3 : result:='二'; 4 : result:='三'; 5 : result:='四'; 6 : result:='五'; 7 : result:='六'; else result:=''; end; end;
jimmyhuang
一般會員


發表:3
回覆:2
積分:1
註冊:2005-07-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-11-02 08:30:18 IP:203.79.xxx.xxx 未訂閱
對不起 , 因為不知道使用者會從一個月中的那天去做預約的動作 ,  所以 我要判斷他是不是預約超過(31天) , 而這些日子之間到底有幾個 (六)(日) 要排除掉 , 所以想再請大大指點一下        
引言: 不包含六日 = 今天 31 (31日內的六日) 所以只要用SQL找出六日共有幾天就可以了。 ..-----------βλμε------------..
◎Oo月夜 光明 藍更愁oO◎
藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475
way888
初階會員


發表:32
回覆:76
積分:36
註冊:2005-05-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-11-02 09:18:27 IP:220.137.xxx.xxx 未訂閱
use...... DateUtils function StartOfTheMonth(const A Value: TDateTime):TDateTime;該月起始日期 function EndOfTheMonth(const A Value: TDateTime):TDateTime;該月結束日期 function DaysInMonth(const A Value: TDateTime):word;該月有幾天 配合 function DayOfWeek(const A Value: TDateTime):word; 寫個迴圈就可計算出來了 例如要計算以今天為準當月有幾天不含六、日 var i,j :integer; mydate :TDateTime; . . j:=0; mydate:=StartOfTheMonth(date()); for i:=1 to DaysInMonth(date()) do begin if (DayOfWeek(mydate)<>1)and(DayOfWeek(mydate)<>7) then begin j:=j 1; end; mydate:=mydate 1; end;
jimmyhuang
一般會員


發表:3
回覆:2
積分:1
註冊:2005-07-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-11-02 09:57:28 IP:203.79.xxx.xxx 未訂閱
真是謝謝你 ~~~    
引言: use...... DateUtils function StartOfTheMonth(const A Value: TDateTime):TDateTime;該月起始日期 function EndOfTheMonth(const A Value: TDateTime):TDateTime;該月結束日期 function DaysInMonth(const A Value: TDateTime):word;該月有幾天 配合 function DayOfWeek(const A Value: TDateTime):word; 寫個迴圈就可計算出來了 例如要計算以今天為準當月有幾天不含六、日 var i,j :integer; mydate :TDateTime; . . j:=0; mydate:=StartOfTheMonth(date()); for i:=1 to DaysInMonth(date()) do begin if (DayOfWeek(mydate)<>1)and(DayOfWeek(mydate)<>7) then begin j:=j 1; end; mydate:=mydate 1; end;
taihao
一般會員


發表:1
回覆:13
積分:2
註冊:2005-11-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-11-02 12:59:09 IP:211.21.xxx.xxx 未訂閱
這是人事薪支問題. 問題在"國定假日"不是固定值, 所以必須建立一個年度休假日的Table_A. SQL Query 去Select Table_A 比叫可靠
系統時間:2024-06-28 8:32:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!