Membuat dan mengembalikan daftar semua hari libur federal AS pada tahun tertentu, dan menyediakan metode bantuan untuk menentukan apakah tanggal tertentu merupakan hari libur federal AS. Menangani peralihan hari libur ke hari kerja terdekat jika hari libur tersebut jatuh pada akhir pekan.
Hari libur federal AS ditentukan oleh OPM.
npm install @18f/us-federal-holidays
Membutuhkan Node.js 12 atau lebih tinggi.
Untuk mendapatkan daftar semua hari libur federal AS pada tahun tertentu, gunakan metode allForYear
. Jika tidak ada tahun yang dimasukkan, gunakan tahun berjalan.
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' } ]
Untuk mendapatkan daftar semua hari libur federal AS dalam rentang tanggal, gunakan metode inRange
. Jika tidak ada tanggal start
yang diberikan, gunakan tanggal saat ini. Jika tanggal akhir dihilangkan, maka digunakan satu tahun dari tanggal sekarang.
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' } ]
Untuk menentukan apakah suatu tanggal merupakan hari libur federal, gunakan metode isAHoliday
. Jika tidak ada argumen yang diberikan, defaultnya adalah tanggal saat ini:
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
Ketiga metode tersebut mengambil options
sebagai argumen kedua. Argumen ini adalah objek biasa yang menerima properti berikut:
{
// 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
}
Selain itu, isAHoliday
mengambil parameter 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 ;
}
Proyek ini berada dalam domain publik di seluruh dunia. Sebagaimana dinyatakan dalam KONTRIBUSI:
Proyek ini berada dalam domain publik di Amerika Serikat, dan hak cipta serta hak terkait dalam karya di seluruh dunia dilepaskan melalui dedikasi domain publik Universal CC0 1.0.
Semua kontribusi untuk proyek ini akan dirilis di bawah dedikasi CC0. Dengan mengirimkan permintaan penarikan, Anda setuju untuk mematuhi pelepasan kepentingan hak cipta ini.