(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください)
アプリで使うために作ったけど意外と汎用性高そうだったので別ライブラリに分離しました(もともとAngularJSのfactoryとして作ったものだったので、その名残が若干残っていて使い方に違和感を感じるかもしれません)。
使い方は、ライブラリを読み込んで
calendar().calendar(year, month);
です。しかし、こんな普通のただカレンダーを配列で渡してくれるライブラリではありません。特筆すべき機能はセレクタ機能です。プログラマだらけのQiitaならセレクタというだけで大体察したと思います。使い方は
calendar().execSelectors('セレクタ', year, month);
です。year 年 month+1 月のうちセレクタに当てはまる日の配列を返します。該当する日がない場合は空の配列を返します。monthはJavascriptのDate型と同じく現実の月-1した数値を指定してください。 セレクタを使うことでいろんなことができます。 (以下、yearとmonthにはなんらかの数値が代入されているとする)
calendar().execSelectors('date:13 and day:fri', year, month);
とすれば対象の月の13日の金曜日が出せます。
calendar().execSelectors('(day:saturday or day:sunday) and date:20', year, month);
とすると土曜日か日曜日かつ20日の日を求めることができます。
calendar().execSelectors('is:public-holiday', year, month);
とすれば祝日が求まります。 使えるセレクタとか詳細な使い方はRabbit Plotをみてもらえればわかります。