渡したDateが第何何曜日かを取得する一行スクリプト
今回は仕事で書いた、ちょっとしたスクリプトをご紹介してみたいと思います。
いきなりですが、申し訳ありません。
実は関数定義を入れると三行のスクリプトとなっております…(´・ω・`)
一行の響きに釣られた方はすみません、三行でも良いよって方は続きをご覧下さい。
渡したDateが第何何曜日かを取得するスクリプト
function getDayAndCount(date){ return {day: date.getDay(), count: Math.floor((date.getDate() - 1) / 7) + 1}; }
このスクリプトは仕事でwebカレンダーの休日対応を頼まれた際に「水曜と第2、第4火曜は定休日にして欲しい」みたいな事を言われた時に作ったスクリプトです。
dayに曜日が、countに第何番目かを示す値が入ったオブジェクトを返します。
具体的な使い方として
Datepicker for Bootstrap
のbeforeShowDayを使った方法をご紹介します。
function checkHoliday(check_date){ function getDayAndCount(date){ return {day: date.getDay(), count: Math.floor((date.getDate() - 1) / 7) + 1}; } var counted_day = getDayAndCount(check_date); // [日, 月, 火, 水, 木, 金, 土]の順に第何番目が休日かを設定します。-1だと全て休日です。 var holidays = [[null], [null], [2, 4], [-1], [null], [null], [null]]; var re; if(holidays[counted_day.day][0] == -1){ re = false } else if(holidays[counted_day.day].indexOf(counted_day.count) != -1){ re = false; } else{ re = true; } return re }
上記のスクリプトをbeforeShowDayのオプションに噛ませて下さい。スクリプト内で指定された第何何曜日をdisabledにする事が出来ます。
決まった曜日を全て休日にするならdaysOfWeekDisabledを使用しても良いのですが、お客さんがjavascriptに余り慣れて居ない方だったので、一箇所で設定出来た方が良いかなと思い「-1は全て休日」の仕様を設けました。
いかがでしょうか?
「一行(関数定義込みだと三行)で渡したDateが第何何曜日かを取得するスクリプト」よろしければ是非お使い下さい。
ではではー。(`・ω・´)ノシ