Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@date/holidays-us

elidoran9.1kMIT0.4.0

USA bank and (some) public holidays

holidays, holiday, dates, date, usa, us, new years, presidents, valentines, martin luther king jr, washington, memorial, independence, labor, columbus, veterans, halloween, thanksgiving, christmas

readme

@date/holidays-us

Build Status npm version Coverage Status

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:

  1. newYearsDay() - can calculate observed holiday as well
  2. valentinesDay()
  3. martinLutherKingDay()
  4. presidentsDay()
  5. easter()
  6. mothersDay()
  7. memorialDay()
  8. fathersDay()
  9. independenceDay() - can calculate observed holiday as well
  10. laborDay()
  11. columbusDay()
  12. halloween()
  13. veteransDay() - can calculate observed holiday as well
  14. thanksgiving()
  15. 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

MIT License

changelog

0.4.0 - 2018/07/20

  1. update deps
  2. switch to JS from CS (except tests)
  3. move to node 6+
  4. add testing scripts for multiple node versions
  5. add code coverage
  6. remove gemnasium badge
  7. add coveralls badge
  8. update tests for 100% code coverage
  9. have TravisCI test nodes 6, 8, and 10

0.3.0 - 2016/07/22

  1. accepted PR from @water42 with easter() implementation
  2. split generator into two groups: 1. bank; 2. public.
  3. added functions to use one group or the other instead of both

0.2.0 - 2016/06/30

  1. removed "observed" from holidays which don't have them (copy-paste mistake)
  2. correct assigning "bank:true" only when the holiday is a weekday
  3. separate holiday generator into public and bank holiday generators
  4. provide all by default, add two subfunctions to provide them individually
  5. updated testing to match above changes
  6. corrected Halloween which was using month 10 instead of 9 (Date's months are -1)

0.1.0 - 2016/06/30

  1. initial working version with tests