[PHP-users 24214] Re: 指定期間にx曜日が何回存在するか知る方法

Hiroshi Ishiura issy777 @ e-entrance.org
2005年 1月 25日 (火) 19:15:41 JST


石浦です。

自己レスです。

いいアイデアがみつかりました。
休暇には、日〜土曜までのチェックのほかに祝日、会社として休日などがあり
今やりたいことは休暇データを一括して休暇テーブルに登録したい事なので
カレンダーテーブル自体を未来数年後まで余裕をもって日付と曜日(0〜6)、祝
日の内容、祝日フラグなどをデータとしてあらかじめいれておけばDBからの
selectだけでできそうな気がしてきました。
(ただしASP形式を想定しているので会社休日は会社ごとに毎年違うので別テーブ
ルで個別で管理するとします)

例えば
Aさんは、土日+祝日+会社休日
Bさんは、水木+会社休日
が休みだったとしたら
Aさんの場合は、select * from calendar where (date between A and B) and
youbi in ('0'.'6') or syukujitu_day='t' and date in (select date from
company_holiday where date between A and B and company_id='1')

Bさんの場合は、select * from calendar where (date between A and B) and
youbi in ('4'.'5') and date in (select date from
company_holiday where date between A and B and company_id='1')

とSQLにやらせたほうが簡単にできそうな気が^^
ということでやってみます。


> 石浦です。
> 
> 勤怠の休暇管理のようなことをやろうとしているんですが
> 日曜〜土曜までチェックボックスがあり例えば土日が休日なら土・日をチェック
> させます。
> それで指定期間A〜B内にチェックされた曜日が何回あるか調べ実際に働く日数
> などをだしたいんですが、
> 一番単純な方法としてはチェックボックスの曜日を配列の0〜6でもっているので
> 指定期間を一日ずつループしていってdate("w")と=なものをカウントしていく
> 方法を今考えているのですがもっと単純に関数的な方法はありますでしょうか。
> 
> よろしくお願いします
> 
> 
> -- 
> Hiroshi Ishiura <issy777 @ e-entrance.org>
> 
> 
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3

-- 
Hiroshi Ishiura <issy777 @ e-entrance.org>




PHP-users メーリングリストの案内