สร้างและส่งคืนรายการวันหยุดของรัฐบาลกลางของสหรัฐอเมริกาทั้งหมดสำหรับปีที่กำหนด และให้วิธีการช่วยเหลือในการพิจารณาว่าวันที่ที่กำหนดเป็นวันหยุดของรัฐบาลกลางของสหรัฐอเมริกาหรือไม่ จัดการการเปลี่ยนวันหยุดเป็นวันทำงานที่ใกล้ที่สุดหากวันหยุดตรงกับวันหยุดสุดสัปดาห์
วันหยุดของรัฐบาลกลางสหรัฐอเมริกาเป็นไปตามที่กำหนดโดย 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 การส่งคำขอดึงแสดงว่าคุณตกลงที่จะปฏิบัติตามการสละสิทธิ์ผลประโยชน์ด้านลิขสิทธิ์นี้