filendarはカレンダー上の日付へフィルタリングをするライブラリです。
npm install filendar例えば、次のコードで2016年の5月の平日を求めることができます。
``javascript`
const Calendar = requie('filendar');
new Calendar.Month(2016, 5 - 1).filter(Calendar.filter.weekday());
(平日とは、祝日でなく、振替休日でなく、国民の休日でなく、土日でない日のことを指します)
Yearクラス、Monthクラスはfilter()を持っています。
DateクラスはビルトインオブジェクトのDateとほぼ同じ挙動をとります。ただし、セッターはDateに対して破壊的変更を行いません。セッターは新しいオブジェクトを返します。
year(year): year*年である
month(month): month*月である
date(date): date*日である
day(day): day*曜日である(dayは0から6の数字(0が日曜日、6が土曜日))
nthDay(n, day): その月のn番目のday*曜日である
every(n, baseDate = new Date(1970, 0, 1)): baseDateから(まで)n*日おきにあたる日である。例えばbaseDateを2016年1月1日とし、nを3にすると、2016/1/4、2016/1/7、…だけでなく、201512/29、2015/12/26、…も該当する
* and(...filters): 与えられたフィルタすべてに合致する
* nand(...filters): 与えられたフィルタのいずれかが合致しない
* or(...filters): 与えられたフィルタのいずれかに合致する
* nor(...filters): 与えられたフィルタすべてに合致しない
* not(filter): 与えられたフィルタに合致しない
* fullMoonNight(): 十五夜である
* substituteHoliday(): 振替休日である
* citizensHoliday(): 国民の休日である
* weekday(): 平日である
* leapYear(): うるう年である
`javascript``
new Calendar.Year(2016).filter(Calendar.filter.publicHoliday())