npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

coparenter-date-holidays

v1.1.4

Published

coparenter worldwide holidays based off of date-holidays from commenthol

Downloads

6

Readme

date-holidays

world-wide holidays in gregorian calender

NPM version Build Status

This module provides dates of holidays for various countries, states and regions by type while considering the applicable timezone.

The features are:

  • calculation of public, bank and observance holidays for different countries, state, region, following ISO 3166-2
  • consideration of timezones for holiday checks
  • consideration of start and end time dependent on timezone
  • substitute days
  • multi-language support for all holiday names
  • setting of custom holidays
  • uses own grammar for calculation of days
  • support for islamic calendar from 1970 to 2080 (*islamic dates might not be correct as they are subject to the sighting of the moon)
  • support for hebrew calendar from 1970 to 2100
  • support for chinese calendar
  • for generation of iCal calendar check out date-holidays-ical

Happy holidays!

Table of Contents

Supported Countries, States, Regions

If you are missing holidays from your country, state, region please consider contributing.

Countries: 111
├── AD: Andorra
│   └── 07: Andorra la Vella
├── AG: Antigua & Barbuda
│   └── 10: Barbuda
├── AI: Anguilla
├── AL: Shqipëri
├── AM: Հայաստան
├── AO: Angola
├── AR: Argentina
├── AS: American Samoa
├── AT: Österreich
│   ├── 1: Burgenland
│   ├── 2: Kärnten
│   ├── 3: Niederösterreich
│   ├── 4: Oberösterreich
│   ├── 5: Land Salzburg
│   ├── 6: Steiermark
│   ├── 7: Tirol
│   ├── 8: Vorarlberg
│   └── 9: Wien
├── AU: Australia
│   ├── ACT: Australian Capital Territory
│   ├── NSW: New South Wales
│   ├── NT: Northern Territory
│   ├── QLD: Queensland
│   ├── SA: South Australia
│   ├── TAS: Tasmania
│   │   ├── H: Hobart
│   │   └── NH: Non-Hobart
│   ├── VIC: Victoria
│   │   └── M: Melbourne
│   └── WA: Western Australia
├── AW: Aruba
├── AX: Landskapet Åland
├── AZ: Azərbaycan Respublikası
├── BA: Bosna i Hercegovina
│   ├── BIH: Federation of Bosnia and Herzegovina
│   │   └── W: Western Herzegovina
│   ├── BRC: Brčko District
│   └── SRP: Republika Srpska
├── BB: Barbados
├── BE: Belgique
│   ├── BRU: Bruxelles
│   ├── DE: Deutschsprachige Gemeinschaft
│   ├── VLG: Vlaamse Gemeenschap
│   └── WAL: Communauté française
├── BG: България
├── BI: République du Burundi
├── BL: St. Barthélemy
├── BO: Bolivia
├── BQ: Caribisch Nederland
│   ├── BO: Bonaire
│   ├── SA: Saba
│   └── SE: Sint Eustatius
├── BR: Brasil
├── BS: Bahamas
├── BW: Botswana
├── BY: Рэспубліка Беларусь
├── BZ: Belize
├── CA: Canada
│   ├── AB: Alberta
│   ├── BC: British Columbia
│   ├── MB: Manitoba
│   ├── NB: New Brunswick
│   ├── NL: Newfoundland and Labrador
│   ├── NS: Nova Scotia
│   ├── NT: Northwest Territories
│   ├── NU: Nunavut
│   ├── ON: Ontario
│   ├── PE: Prince Edward Island
│   ├── QC: Quebec
│   ├── SK: Saskatchewan
│   └── YT: Yukon
├── CC: Cocos (Keeling) Islands
├── CD: République démocratique du Congo
├── CF: République centrafricaine
├── CG: République du Congo
├── CH: Schweiz
│   ├── ZH: Kanton Zürich
│   ├── BE: Kanton Bern
│   ├── LU: Kanton Luzern
│   ├── UR: Kanton Uri
│   ├── SZ: Kanton Schwyz
│   ├── OW: Kanton Obwalden
│   ├── NW: Kanton Nidwalden
│   ├── GL: Kanton Glarus
│   ├── ZG: Kanton Zug
│   ├── FR: Kanton Freiburg
│   ├── SO: Kanton Solothurn
│   ├── BS: Kanton Basel-Stadt
│   ├── BL: Kanton Basel-Landschaft
│   ├── SH: Kanton Schaffhausen
│   ├── AR: Kanton Appenzell Ausserrhoden
│   ├── AI: Kanton Appenzell Innerrhoden
│   ├── SG: Kanton St. Gallen
│   ├── GR: Kanton Graubünden
│   ├── AG: Kanton Aargau
│   ├── TG: Kanton Thurgau
│   ├── TI: Kanton Tessin
│   ├── VD: Kanton Waadt
│   ├── VS: Kanton Wallis
│   ├── NE: Kanton Neuenburg
│   ├── GE: Kanton Genf
│   └── JU: Kanton Jura
├── CL: Chile
│   ├── AP: Arica y Parinacota
│   ├── BI: Biobío
│   │   └── CH: Chillán y Chillán Viejo
│   └── TA: Tarapacá
├── CM: Cameroun
├── CN: 中华人民共和国
├── CO: Colombia
├── CR: Costa Rica
├── CU: Cuba
├── CY: Κύπρος
├── CZ: Česká republika
├── DE: Deutschland
│   ├── BB: Brandenburg
│   ├── BE: Berlin
│   ├── BW: Baden Würtemberg
│   ├── BY: Bayern
│   │   ├── A: Stadt Augsburg
│   │   └── EVANG: Überwiegend evangelische Gemeinden
│   ├── HB: Hansestadt Bremen
│   ├── HE: Hessen
│   ├── HH: Hansestadt Hamburg
│   ├── MV: Mecklenburg Vorpommern
│   ├── NI: Niedersachsen
│   ├── NW: Nordrhein-Westfalen
│   ├── RP: Rheinland-Pfalz
│   ├── SH: Schleswig-Holstein
│   ├── SL: Saarland
│   ├── SN: Sachsen
│   │   └── BZ: Landkreis Bautzen
│   ├── ST: Sachsen-Anhalt
│   └── TH: Thüringen
│       ├── EIC: Landkreis Eichfeld
│       ├── UH: Unstrut-Hainich-Kreis
│       └── WAK: Wartburgkreis
├── DK: Danmark
├── DO: República Dominicana
├── EC: Ecuador
│   └── P: Pichincha
│       └── QU: Quito
├── EE: Eesti
├── ES: España
│   └── MD: Comunidad de Madrid
├── ET: ኢትዮጵያ
├── FI: Suomi
├── FO: Føroyar
├── FR: France
│   ├── 57: Département Moselle
│   ├── 67: Département Bas-Rhin
│   ├── 68: Département Haut-Rhin
│   ├── YT: Département et région d'outre-mer Mayotte
│   ├── MQ: Département et région d'outre-mer Martinique
│   ├── GP: Département et région d'outre-mer Guadeloupe
│   ├── GF: Département et région d'outre-mer Guyane
│   └── RE: Département et région d'outre-mer La Réunion
├── GA: Gabon
├── GB: United Kingdom
│   ├── ALD: Alderney
│   ├── ENG: England
│   ├── NIR: Northern Ireland
│   ├── SCT: Scottland
│   └── WLS: Wales
├── GD: Grenada
├── GG: Guernsey
├── GQ: República de Guinea Ecuatorial
├── GR: Ελλάδα
├── GT: Guatemala
├── GU: Guam
├── GY: Guyana
├── HN: Honduras
├── HR: Hrvatska
│   ├── 17: Split-Dalmatia
│   └── 19: Dubrovnik-Neretva
├── HT: Haïti
├── HU: Magyarország
├── IE: Ireland
├── IM: Isle of Man
├── IS: Ísland
├── IT: Italia
│   └── 32: Südtirol, Alto Adige
├── JE: Jersey
├── JM: Jamaica
├── JP: 日本
├── KE: Kenia
├── KR: 대한민국
├── LI: Lichtenstein
├── LT: Lietuva
├── LU: Luxembourg
├── LV: Latvija
├── MC: Monaco
├── ME: Crna Gora
├── MG: Repoblikan'i Madagasikara
├── MT: Malta
├── MW: Malawi
├── MX: México
├── MZ: Moçambique
├── NA: Namibia
├── NI: Nicaragua
├── NL: Nederland
├── NO: Norge
├── NZ: New Zealand
│   ├── AUK: Auckland Province
│   ├── CAN: Canterbury
│   │   └── S: South Canterbury
│   ├── CIT: Chatham Islands
│   ├── HKB: Hawke's Bay
│   ├── MBH: Marlborough
│   ├── NSN: Nelson
│   ├── NTL: Northland
│   ├── OTA: Otago Province
│   ├── STL: Southland
│   ├── TKI: Taranaki
│   ├── WGN: Wellington Province
│   └── WTC: Westland
├── PA: Panamá
├── PE: Perú
│   └── CUS: Cuzco
├── PL: Polska
├── PT: Portugal
├── PY: Paraguay
├── RO: Romania
├── RU: Россия
├── RW: Repubulika y'u Rwanda
├── SE: Sverige
├── SO: Jamhuuriyadda Federaalka Soomaaliya
│   ├── AW: Awdal
│   ├── SA: Sanaag
│   ├── SO: Sool
│   ├── TO: Togdheer
│   └── WO: Woqooyi Galbeed
├── SS: South Sudan
├── SV: El Salvador
│   └── SS: San Salvador
├── TG: République togolaise
├── TR: Türkiye
├── TZ: Tanzania
├── UG: Uganda
├── US: United States of America
│   ├── AL: Alabama
│   ├── AK: Alaska
│   ├── AZ: Arizona
│   ├── AR: Arkansas
│   ├── CA: California
│   │   └── LA: Los Angeles
│   ├── CO: Colorado
│   ├── CT: Connecticut
│   ├── DE: Delaware
│   ├── DC: District of Columbia
│   ├── FL: Florida
│   ├── GA: Georgia
│   ├── HI: Hawaii
│   ├── ID: Idaho
│   ├── IL: Illinois
│   ├── IN: Indiana
│   ├── IA: Iowa
│   ├── KS: Kansas
│   ├── KY: Kentucky
│   ├── LA: Louisiana
│   │   └── NO: New Orleans
│   ├── ME: Maine
│   ├── MD: Maryland
│   ├── MA: Massachusetts
│   ├── MI: Michigan
│   ├── MN: Minnesota
│   ├── MS: Mississippi
│   ├── MO: Missouri
│   ├── MT: Montana
│   ├── NE: Nebraska
│   ├── NV: Nevada
│   ├── NH: New Hampshire
│   ├── NJ: New Jersey
│   ├── NM: New Mexico
│   ├── NY: New York
│   ├── NC: North Carolina
│   ├── ND: North Dakota
│   ├── OH: Ohio
│   ├── OK: Oklahoma
│   ├── OR: Oregon
│   ├── PA: Pennsylvania
│   ├── RI: Rhode Island
│   ├── SC: South Carolina
│   ├── SD: South Dakota
│   ├── TN: Tennessee
│   ├── TX: Texas
│   ├── UT: Utah
│   ├── VT: Vermont
│   ├── VA: Virginia
│   ├── WA: Washington
│   ├── WV: West Virginia
│   ├── WI: Wisconsin
│   └── WY: Wyoming
├── UY: Uruguay
├── VE: Venezuela
│   ├── B: Anzoátegui
│   ├── G: Carabobo
│   ├── K: Lara
│   │   └── BA: Barquisimeto
│   ├── M: Miranda
│   ├── N: Monagas
│   ├── S: Táchira
│   └── V: Zulia
├── VN: Cộng hòa Xã hội chủ nghĩa Việt Nam
├── ZA: South Africa
├── ZM: Zambia
└── ZW: Zimbabwe

Usage

var Holidays = require('date-holidays')
var hd = new Holidays()

// get supported countries
hd.getCountries()
/*>
{ AD: 'Andorra',
  ...
  US: 'United States' }
*/

// get supported states e.g. for US
hd.getStates('US')
/*>
{ al: 'Alabama',
  ...
  wy: 'Wyoming' }
*/

// get supported regions e.g. for US, Lousiana
hd.getRegions('US', 'la')
/*>
{ no: 'New Orleans' }
*/

// initialize holidays for US, Lousiana, New Orleans
hd.init('US', 'la', 'no')
// or using a new instance
hd = new Holidays('US', 'la', 'no')

// get all holidays for the year 2016
hd.getHolidays(2016)
/*>
[ { date: '2016-01-01 00:00:00',
    start: Fri Jan 01 2016 00:00:00 GMT-0600 (CST),
    end: Sat Jan 02 2016 00:00:00 GMT-0600 (CST),
    name: 'New Year\'s Day',
    type: 'public' },
  ...
  { date: '2016-11-24 00:00:00',
    start: Thu Nov 24 2016 00:00:00 GMT-0600 (CST),
    end: Fri Nov 25 2016 00:00:00 GMT-0600 (CST),
    name: 'Thanksgiving Day',
    type: 'public' },
  ...
  { date: '2016-12-26 00:00:00',
    start: Mon Dec 26 2016 00:00:00 GMT-0600 (CST),
    end: Tue Dec 27 2016 00:00:00 GMT-0600 (CST),
    substitute: true,
    name: 'Christmas Day (substitute day)',
    type: 'public' } ]
*/

// check if date is a holiday while respecting timezones
hd.isHoliday(new Date('2016-02-09 00:00:00 GMT+0000'))
//> false
hd.isHoliday(new Date('2016-02-09 10:00:00 GMT-0600'))
/*>
{ date: '2016-02-09 00:00:00',
  start: Tue Feb 09 2016 00:00:00 GMT-0600 (CST),
  end: Wed Feb 10 2016 00:00:00 GMT-0600 (CST),
  name: 'Mardi Gras',
  type: 'public' }
*/

Holiday object

getHolidays() as well as a matching isHoliday() call return either a list or a single holiday object which consists of:

  • {String} date - ISO Date String of (start)-date in local format
  • {Date} start - start date of holiday
  • {Date} end - end date of holiday
  • {String} name - name of holiday using language (if available)
  • {String} type - type of holiday public|bank|school|optional|observance
  • {Boolean} substitute - (optional) if true holiday substitutes another holiday`
  • {String} note - (optional) note`

Dates

The date String represents the start date of the holiday in ISO format without timezone. This string it intended for information only.

start and end are the start/end date of the holiday within the selected timezone of the country, state, region.

Name

The name names the holiday in the local language of the selected country, state, region. The applied language(s) can be requested using getLanguages().

The language can be changed using the setLanguages() method. In case that not translation is available a fall-back to the next given language will be made. E.g. local language is "fr", setLanguages('nl') was called. For all holidays where no dutch translation is available the French version will be used instead.

All holiday names should support an English translation.

Types of holidays

Currently the following type with their meaning are supported

| type | meaning | | ----------- | ------------------------------------------ | | public | public holiday | | bank | bank holiday, banks and offices are closed | | school | school holiday, schools are closed | | optional | majority of people take a day off | | observance | optional festivity, no paid day off |

Additionally a note field is sometimes available for further clarification.

API

See Holidays API for further information.

Browser

This project also runs in all modern browsers. See ./examples/browser

Browser | Version | Notes --- | --- | --- Chrome | >=45 | Firefox | >=45 | Safari | >=10 | Edge | >=13 | IE | >=10 | needs polyfill core-js/es6

Please do not forget to set the correct charset!

<html>
<head>
  <!-- set page-wide -->
  <meta charset="UTF-8">
  ...
</head>
<body>
  ...
  <!-- or per script -->
  <script src="your-bundle.js" charset="UTF-8"></script>

Testing is done with zuul. For local browser tests run npm run zuul -- --local 3000 and open http://localhost:3000/__zuul.

Data

All data for the holidays of the different countries is contained in ./data/holidays.json. For changing holiday data edit the appropriate country in ./data/countries.
Any details on structure and available grammar for holiday attribution is described in holidays.yaml specification.

Custom builds of holidays.json

If only selected countries are required in data/holidays.json you can add the following script to your npm scripts section. E.g. for picking just US, Canada, Mexico do the following:

"scripts": {
  "build": "holidays2json --pick US,CA,MX"
},

Alternatively you may use the --omit option.

Manually use

$(npm bin)/holidays2json --pick US,CA,MX

NOTE: There are some countries which depend on data of others which might render the file useless. e.g. "GU" requires "US", so try to pick or omit both.

Contribution and License Agreement

You like to contribute please read CONTRIBUTING.md.

If you contribute code to this project, you are implicitly allowing your code to be distributed under the ISC license. You are also implicitly verifying that all code is your original work or correctly attributed with the source of its origin and license.

License

Copyright (c) 2016- commenthol (ISC License)

The data contained in holidays.json and ./data/countries/*.yaml is available under CC BY-SA 3.0 as the majority of data obtained relies on wikipedia articles. The required attribution can be found inside the files ./data/countries/*.yaml.

See LICENSE for more information.

References