@date/holidays-us
A @date/holidays
instance with USA public and bank holidays.
Also has functions to calculate dates for specific holidays.
Install
npm install @date/holidays-us --save
Usage
// get Holidays instance with both public and bank holidays
var holidays = require('@date/holidays-us')
var date = new Date(2016, 0, 1) // New Year's Day 2016
holidays.isHoliday(date) // true
date.setDate(10) // January 10th 2016
holidays.isHoliday(date) // false
date = holidays.thanksgiving(2015) // November 26th, 2015
date = holidays.thanksgiving(2016) // November 24th, 2016
date = holidays.valentinesDay(2016) // February 14th, 2016
holidays.isHoliday(date) // true, it's a holiday
// this will return false because Valentine's Day isn't a bank holiday
holidays.isHoliday(date, {
// only consider it a holiday when the properties in this object match
bank:true // must be a bank holiday
})
Only Bank Holidays
// this has only the bank holidays, not the 'public' ones
var holidays = require('@date/holidays-us').bank()
// returns false, Valentine's isn't a bank holiday
holidays.isHoliday(new Date(2016, 1, 14))
// returns true, New Year's is a bank holiday
holidays.isHoliday(new Date(2016, 0, 1))
Only Public Holidays
// this has only the non-bank holidays
var holidays = require('@date/holidays-us').public()
// returns true, Valentine's is a public holiday
holidays.isHoliday(new Date(2016, 1, 14))
// returns false, because New Year's is a bank holiday
holidays.isHoliday(new Date(2016, 0, 1))
// NOTE: technically, I suppose the bank holidays are also
// public holidays, but, if you want both, use the default
// instance which has both
API: Generators
Functions which generate a specific holiday based on a specified year:
- newYearsDay() - can calculate observed holiday as well
- valentinesDay()
- martinLutherKingDay()
- presidentsDay()
- easter()
- mothersDay()
- memorialDay()
- fathersDay()
- independenceDay() - can calculate observed holiday as well
- laborDay()
- columbusDay()
- halloween()
- veteransDay() - can calculate observed holiday as well
- thanksgiving()
- christmas() - can calculate observed holiday as well
API: Observed Holidays
Some holidays are "observed" on a different day than the holiday. The generate functions can calculate that as well.
var holidays = require('@date/holidays-us')
// Christmas in 2016 is on a Sunday so it is "observed" the next day, Monday.
// the call to the generator returns the date instance as expected
var christmasDay = holidays.christmas(2016) // same as new Date(2016, 11, 25)
// it also has an `observed` property containing the "observed" holiday date
// Note: if there is no "observed" holiday then `observed` is undefined
var observedChristmas = date.observed
// christmas == new Date(2016, 11, 25) Sunday, December 25th 2016
// observedChristmas == new Date(2016, 11, 26) Monday, December 26th 2016