JavaScriptで日付から「第○曜日」(何番目の曜日か)を調べる方法
ゴミ出しの日や雑誌の出版日など、隔週で「第2、第4水曜日」などの情報を調べる方法を探してもパッと見当たらなかったので、JavaScriptで作ってみました。
getIndexDay関数(自作)
使いやすい関数にするために、引数にDateオブジェクトを渡す方法と、年月日を配列で渡す方法が利用できます。
/** * 日付から、第○の曜日かを返す関数 * * 日付パラメーターには、Dateオブジェクトインスタンスか、 * 年月日の配列(例:[2011,3,11])を指定します。 * * @param Date|array 日付パラメーター * @return integer */ function getIndexDay(param) { try { param.getDate(); var dte = param; } catch (e) { var dte = new Date(param[0],param[1],param[2]); } var c = 1; for (var i=dte.getDate(); i>7; i-=7) c++; return c; }
ポイントは、引数で指定した日から7日づつ減算していき、日が7未満になったらカウントを止めるところですかね。
サンプル
以下にサンプルを置いてみたので試しに使ってみてください。 ただし、閏年(うるうどし)チェックは省いてあります。
年
月
日は、第
○
○曜日です。
2011-03-31