Создает и возвращает список всех федеральных праздников США за заданный год, а также предоставляет вспомогательный метод для определения того, является ли данная дата федеральным праздником США. Управляет переносом праздников на ближайший будний день, если праздник приходится на выходные.
Федеральные праздники США определены OPM.
npm install @18f/us-federal-holidays
Требуется Node.js 12 или выше.
Чтобы получить список всех федеральных праздников США в данном году, используйте метод allForYear
. Если год не указан, используется текущий год.
const fedHolidays = require ( '@18f/us-federal-holidays' ) ;
const options = { shiftSaturdayHolidays : true , shiftSundayHolidays : true } ;
const holidays = fedHolidays . allForYear ( 2016 , options ) ;
// Returns
[ { name : 'New Year's Day' ,
date : 2016 - 01 - 01 T00 : 00 : 00 .000 Z ,
dateString : '2016-1-1' } ,
{ name : 'Birthday of Martin Luther King, Jr.' ,
date : 2016 - 01 - 18 T00 : 00 : 00 .000 Z ,
dateString : '2016-1-18' } ,
{ name : 'Washington's Birthday' ,
alsoObservedAs : 'Presidents' Day' ,
date : 2016 - 02 - 15 T00 : 00 : 00 .000 Z ,
dateString : '2016-2-15' } ,
{ name : 'Memorial Day' ,
date : 2016 - 05 - 30 T00 : 00 : 00 .000 Z ,
dateString : '2016-5-30' } ,
{
name : 'Juneteenth National Independence Day' ,
date : 2016 - 06 - 20 T00 : 00 : 00 .000 Z ,
dateString : '2016-6-20' } ,
{ name : 'Independence Day' ,
date : 2016 - 07 - 04 T00 : 00 : 00 .000 Z ,
dateString : '2016-7-4' } ,
{ name : 'Labor Day' ,
date : 2016 - 09 - 05 T00 : 00 : 00 .000 Z ,
dateString : '2016-9-5' } ,
{ name : 'Columbus Day' ,
alsoObservedAs : 'Indigenous Peoples' Day' ,
date : 2016 - 10 - 10 T00 : 00 : 00 .000 Z ,
dateString : '2016-10-10' } ,
{ name : 'Veterans Day' ,
date : 2016 - 11 - 11 T00 : 00 : 00 .000 Z ,
dateString : '2016-11-11' } ,
{ name : 'Thanksgiving Day' ,
date : 2016 - 11 - 24 T00 : 00 : 00 .000 Z ,
dateString : '2016-11-24' } ,
{ name : 'Christmas Day' ,
date : 2016 - 12 - 26 T00 : 00 : 00 .000 Z ,
dateString : '2016-12-26' } ]
Чтобы получить список всех федеральных праздников США в заданном диапазоне дат, используйте метод inRange
. Если дата start
не указана, используется текущая дата. Если дата окончания опущена, используется один год от текущей даты.
const fedHolidays = require ( '@18f/us-federal-holidays' ) ;
const start = new Date ( '2016-02-13' ) ;
const end = new Date ( '2017-07-23' ) ;
const options = { shiftSaturdayHolidays : true , shiftSundayHolidays : true } ;
const holidays = fedHolidays . inRange ( start , end , options ) ;
// Returns
[ { name : 'Washington's Birthday' ,
date : 2016 - 02 - 15 T00 : 00 : 00 .000 Z ,
dateString : '2016-2-15' } ,
{ name : 'Memorial Day' ,
date : 2016 - 05 - 30 T00 : 00 : 00 .000 Z ,
dateString : '2016-5-30' } ,
{
name : 'Juneteenth National Independence Day'
date : 2016 - 06 - 20 T00 : 00 : 00 .000 Z ,
dateString : '2016-6-20' } ,
{ name : 'Independence Day' ,
date : 2016 - 07 - 04 T00 : 00 : 00 .000 Z ,
dateString : '2016-7-4' } ,
{ name : 'Labor Day' ,
date : 2016 - 09 - 05 T00 : 00 : 00 .000 Z ,
dateString : '2016-9-5' } ,
{ name : 'Columbus Day' ,
alsoObservedAs : 'Indigenous Peoples' Day' ,
date : 2016 - 10 - 10 T00 : 00 : 00 .000 Z ,
dateString : '2016-10-10' } ,
{ name : 'Veterans Day' ,
date : 2016 - 11 - 11 T00 : 00 : 00 .000 Z ,
dateString : '2016-11-11' } ,
{ name : 'Thanksgiving Day' ,
date : 2016 - 11 - 24 T00 : 00 : 00 .000 Z ,
dateString : '2016-11-24' } ,
{ name : 'Christmas Day' ,
date : 2016 - 12 - 26 T00 : 00 : 00 .000 Z ,
dateString : '2016-12-26' } ,
{ name : 'New Year's Day' ,
date : 2017 - 01 - 02 T00 : 00 : 00 .000 Z ,
dateString : '2017-1-2' } ,
{ name : 'Birthday of Martin Luther King, Jr.' ,
date : 2017 - 01 - 16 T00 : 00 : 00 .000 Z ,
dateString : '2017-1-16' } ,
{ name : 'Washington's Birthday' ,
alsoObservedAs : 'Presidents' Day' ,
date : 2017 - 02 - 20 T00 : 00 : 00 .000 Z ,
dateString : '2017-2-20' } ,
{ name : 'Memorial Day' ,
date : 2017 - 05 - 29 T00 : 00 : 00 .000 Z ,
dateString : '2017-5-29' } ,
{
name : 'Juneteenth National Independence Day'
date : 2017 - 06 - 19 T00 : 00 : 00 .000 Z ,
dateString : '2017-6-19' } ,
{ name : 'Independence Day' ,
date : 2017 - 07 - 04 T00 : 00 : 00 .000 Z ,
dateString : '2017-7-4' } ]
Чтобы определить, является ли дата федеральным праздником, используйте метод isAHoliday
. Если аргумент не указан, по умолчанию используется текущая дата:
const fedHolidays = require ( "@18f/us-federal-holidays" ) ;
const options = {
shiftSaturdayHolidays : true ,
shiftSundayHolidays : true ,
utc : false
} ;
const isAHoliday = fedHolidays . isAHoliday ( myDate , options ) ;
// Returns true or false
Все три метода принимают options
в качестве второго аргумента. Этот аргумент представляет собой простой объект, который принимает следующие свойства:
{
// Whether or not holidays that fall on Saturdays should be
// shifted to Friday observance. If you don't follow the
// US federal standard for observing holidays on weekends,
// you can adjust by setting this value to false.
// Default value is true.
shiftSaturdayHolidays : boolean ,
// Whether or not holidays that fall on Sundays should be
// shifted to Monday observance. If you don't follow the
// US federal standard for observing holidays on weekends,
// you can adjust by setting this value to false.
// Default value is true.
shiftSundayHolidays : boolean
}
Кроме того, isAHoliday
принимает параметр options.utc
:
{
// Whether to treat the first argument as a UTC date instead
// of the local time. Defaults to false. This is useful if
// you're generating dates from UTC timestamps or otherwise
// creating objects from UTC-based dates.
// Default value is false.
// This option only applies to the isAHoliday method.
utc: boolean ;
}
Этот проект находится в мировом общественном достоянии. Как указано в ВКЛАДЫ:
Этот проект находится в общественном достоянии на территории США, а авторские и смежные права на произведение во всем мире отменяются в соответствии с соглашением CC0 1.0 Universal об общественном достоянии.
Все материалы, внесенные в этот проект, будут опубликованы под знаком CC0. Отправляя запрос на включение, вы соглашаетесь соблюдать этот отказ от авторских прав.