No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmake
doc Copyright update Jan 1, 2017
python
src Copyright update Jan 1, 2017
test
.gitignore
.gitmodules
AUTHORS
CMakeLists.txt
COPYING
ChangeLog Program shell Nov 15, 2016
INSTALL
LICENSE
NEWS
README
cmake.h.in

README

What is holidata?
=================

Holidata is a utility for algorithmically producing holidays for a given locale
and year. This requires date calculations and a syntax for defining the formula
for a holiday.

Formula
-------

What is needed to calculate holidays?  Here are the necessary elements:

  - Determination of Easter Sunday
  - Add/subtract a fixed number of days to a date
  - Project forwards to the next Monday
  - Project backwards to the previous Friday
  - Determine 'first/last/Nth X in Y' dates
  - Some metadata regarding the type of holiday

Given the above, a formula can be written to define each holiday.


Formula Syntax
--------------



---

Notes from Dirk:

Nearly all holiday dates in Germany fall into one of two categories, fixed or depending on easter. That makes them easy to describe. It will be much more difficult in other countries like Great Britain where holidays are shifted (postponed?) to the next weekday if they occur on weekends.

So, I can think of a this:

postpone = yes # Great Britain

Depending on easter:
easter -52 days: Old Maids' Day
easter -48 days: Carnival Monday
easter -46 days: Ash Wednesday
easter  -2 days: Good Friday
easter     days: Easter Sunday
easter  +1 days: Easter Monday
easter +39 days: Ascension Day (Father's Day)
easter +49 days: Whit Sunday
easter +50 days: Whit Monday
easter +60 days: Feast of Corpus Christi

June - 1 Friday: Last Friday in June
July + 2 Monday: Second Monday in July

If you put that in brackets, you could do maths.

There is a funfair in my hometown which starts on the day before the 1st Saturday of August.

(August + 1 Saturday) - 1 day: Cranger Kirmes Start

---

From holidata.net.git/data/US.csv:

  "en-CA", "",     "2016-02-08", "Family Day",                                                          "NV",  "3rd monday in Feb."

  "el-GR", "",     "2012-01-01", "Πρωτοχρονιά",                                                         "NF",  "New year's eve"
  "el-GR", "",     "2012-01-06", "Θεοφάνεια",                                                           "NRF", "Epiphany"
  "el-GR", "",     "2012-02-28", "Καθαρά Δευτέρα",                                                      "NRV", "Beginning of 7th week before Orthodoc Easter Sunday"
  "el-GR", "",     "2012-03-25", "Ευαγγελισμός της Θεοτόκου και Εθνική Ημέρα Ανεξαρτησίας της Ελλάδας", "NF",  "Annunciation to the blessed Virgin Mary & Liberation Day"
  "el-GR", "",     "2012-04-13", "Μεγάλη Παρασκευή",                                                    "NRV", "Eastern Easter - 2d"
  "el-GR", "",     "2012-04-14", "Μεγάλο Σάββατο",                                                      "NRV", "Eastern Easter - 1d"
  "el-GR", "",     "2012-04-15", "Πάσχα",                                                               "NRV", "Eastern Easter (same as ru-RU)"
  "el-GR", "",     "2012-04-16", "Δευτέρα του Πάσχα",                                                   "NRV", "Eastern Easter + 1d"
  "el-GR", "",     "2012-05-01", "Πρωτομαγιά",                                                          "NF",  "International worker's day"
  "el-GR", "",     "2012-05-28", "Δευτέρα του Αγίου Πνεύματος",                                         "NRV", "7 weeks after Eastern Easter + 1d - Monday"
  "el-GR", "",     "2012-08-15", "Κοίμηση της Θεοτόκου",                                                "NRF", "Assumption of Mary"
  "el-GR", "",     "2012-10-28", "Ημέρα του ΌΧΙ",                                                       "NF",  "Ohi Day"
  "el-GR", "",     "2012-12-25", "Χριστούγεννα",                                                        "NRF", "Christmas"
  "el-GR", "",     "2012-12-26", "Επόμενη ημέρα Χριστουγέννων",                                         "NRF", "Second day of Christmas"

---

The holidata utility will return an ISO-8601 formatted date, ie YYYY-MM-DD.
Any other details are application-specific, so the utility only needs to convert
a holiday description to a date.

The "NRF" (etc) holiday flags can also be partially emitted. The "R", "F" and
"V" flags are sometimes known.  If emitted, they should be merged with
expectations.

---

Syntax:

The major forms to be supported are:

1) Fixed, specified date:

   <date>

2) Specified date, with pre- and postponement to a monday:

   <date> --> monday
   monday <-- <date>

3) Ѕpecified date, adjusted to the nearest week day (Saturday --> Friday,
   Sunday --> Monday):

   <date> --> nearest week day

4) Date plus calculated offset:

   <date> + <duration> + <duration>

5) Counted days:

   a) <Nth> <day>     in <month>
      last  <day>     in <month>
   b) <Nth> <weekday> in <month>

To consider for 2)and 3):  <date-period>.

Example:
Specified date-period, choose certain weekday.
Could be modelled with 3.

---

Non-religous variable holidays for 2016 based on the data in hd.net with

  fgrep 2016 *csv|egrep -v 'F"|RV"|es-US'

Excluded are all (non-religous and religous) fixed (F) and religous+variable (RV)
holidays. Assuming all RV holidays are based on Easter. This can be wrong. But it
is a beginning to relate these 110 holidays to the above mentioned 4 rules.

All RV holidays based on Easter or Christmas are 4) date plus offset.

AU.csv: "en-AU", "TAS", "2016-02-08", "Royal Hobart Regatta",                 "V",  ""
AU.csv: "en-AU", "WA",  "2016-03-07", "Labour Day",                           "V",  ""
AU.csv: "en-AU", "VIC", "2016-03-14", "Labour Day",                           "V",  ""
AU.csv: "en-AU", "ACT", "2016-03-14", "Canberra Day",                         "V",  ""
AU.csv: "en-AU", "TAS", "2016-03-14", "Eight Hours Day",                      "V",  ""
AU.csv: "en-AU", "NT",  "2016-05-02", "May Day",                              "V",  ""
AU.csv: "en-AU", "WA",  "2016-06-03", "Foundation Day",                       "V",  ""
AU.csv: "en-AU", "QLD", "2016-06-13", "Queen's Birthday",                     "V",  ""
AU.csv: "en-AU", "SA",  "2016-06-13", "Queen's Birthday",                     "V",  ""
AU.csv: "en-AU", "NSW", "2016-06-13", "Queen's Birthday",                     "V",  ""
AU.csv: "en-AU", "VIC", "2016-06-13", "Queen's Birthday",                     "V",  ""
AU.csv: "en-AU", "TAS", "2016-06-13", "Queen's Birthday",                     "V",  ""
AU.csv: "en-AU", "NT",  "2016-06-13", "Queen's Birthday",                     "V",  ""
AU.csv: "en-AU", "ACT", "2016-06-13", "Queen's Birthday",                     "V",  ""
AU.csv: "en-AU", "NT",  "2016-08-01", "Picnic Day",                           "V",  ""
AU.csv: "en-AU", "NSW", "2016-08-01", "Bank Holiday",                         "V",  ""
AU.csv: "en-AU", "WA",  "2016-09-26", "Queen's Birthday",                     "V",  ""
AU.csv: "en-AU", "QLD", "2016-10-03", "Labour Day",                           "V",  ""
AU.csv: "en-AU", "SA",  "2016-10-03", "Labour Day",                           "V",  ""
AU.csv: "en-AU", "NSW", "2016-10-03", "Labour Day",                           "V",  ""
AU.csv: "en-AU", "ACT", "2016-10-03", "Labour Day",                           "V",  ""
AU.csv: "en-AU", "TAS", "2016-11-07", "Recreation Day",                       "V",  ""
CA.csv: "en-CA", "",    "2016-02-08", "Family Day",                          "NV",  "3rd monday in Feb."
CA.csv: "en-CA", "",    "2016-05-23", "Victoria Day",                        "NV",  ""
CA.csv: "en-CA", "",    "2016-08-01", "First Monday of August",              "NV",  ""
CA.csv: "en-CA", "",    "2016-09-05", "Labour Day",                          "NV",  ""
CA.csv: "en-CA", "",    "2016-10-10", "Thanksgiving Day",                    "NV",  ""
CO.csv: "es-CO", "",    "2016-01-11", "Día de los Reyes Magos",              "NV",  ""
CO.csv: "es-CO", "",    "2016-07-04", "San Pedro y San Pablo",               "NV",  ""
CO.csv: "es-CO", "",    "2016-10-17", "Día de la Raza",                      "NV",  ""
CO.csv: "es-CO", "",    "2016-11-14", "Independencia de Cartagena",          "NV",  ""
EC.csv: "es-EC", "",    "2016-02-08", "Carnaval",                            "NV",  ""
EC.csv: "es-EC", "",    "2016-02-09", "Carnaval",                            "NV",  ""
FI.csv: "fi-FI", "",    "2016-06-24", "Juhannusaatto",                       "NV",  "Friday before Midsommardagen" # Midsummer Eve
FI.csv: "fi-FI", "",    "2016-06-25", "Juhannuspäivä",                       "NV",  "Saturday 20-26 of june"       # Midsummer Day
FI.csv: "fi-FI", "",    "2016-11-05", "Pyhäinpäivä",                         "NV",  "1st Saturday in November"     # All Saints' Day
GB.csv: "en-GB", "",    "2016-05-02", "Early May Bank Holiday",              "NV",  ""
GB.csv: "en-GB", "",    "2016-05-30", "Spring Bank Holiday",                 "NV",  ""
GB.csv: "en-GB", "",    "2016-08-29", "August Bank Holiday",                 "NV",  ""
GB.csv: "en-GB", "",    "2016-12-27", "Christmas Day (substitute)",          "NV",  ""
HK.csv: "en-HK", "",    "2016-02-08", "Lunar New Year’s Day",                "NV",  ""
HK.csv: "en-HK", "",    "2016-02-09", "The second day of Lunar New Year",    "NV",  ""
HK.csv: "en-HK", "",    "2016-02-10", "The third day of Lunar New Year",     "NV",  ""
HK.csv: "en-HK", "",    "2016-03-26", "The day following Good Friday",       "NV",  ""
HK.csv: "en-HK", "",    "2016-05-14", "The Birthday of the Buddha",          "NV",  ""
HK.csv: "en-HK", "",    "2016-06-09", "Tuen Ng Festival",                    "NV",  ""
HK.csv: "en-HK", "",    "2016-09-16", "The day following the Chinese Mid-Autumn Festival", "NV",  ""
HK.csv: "en-HK", "",    "2016-10-10", "Chung Yeung Festival",                "NV",  ""
IE.csv: "ga-IE", "",    "2016-05-02", "Lá an Lucht Oibre",                   "NV",  ""
IE.csv: "ga-IE", "",    "2016-06-06", "Lá Saoire i mí Mheitheamh",           "NV",  ""
IE.csv: "ga-IE", "",    "2016-08-01", "Lá Saoire i mí Lúnasa",               "NV",  ""
IE.csv: "ga-IE", "",    "2016-10-31", "Lá Saoire i mí Dheireadh Fómhair",    "NV",  ""
IN.csv: "en-IN", "",    "2016-01-14", "Lohri",                               "NV",  ""
IN.csv: "en-IN", "",    "2016-01-15", "Pongal, Makar Sankranti",             "NV",  ""
IN.csv: "en-IN", "",    "2016-01-16", "Guru Gobind Singh Jayanti",           "NV",  ""
IN.csv: "en-IN", "",    "2016-01-26", "Republic Day",                        "NV",  ""
IN.csv: "en-IN", "",    "2016-02-12", "Vasant Panchami",                     "NV",  ""
IN.csv: "en-IN", "",    "2016-02-22", "Guru Ravidas Jayanti",                "NV",  ""
IN.csv: "en-IN", "",    "2016-03-07", "Maha Shivaratri",                     "NV",  ""
IN.csv: "en-IN", "",    "2016-03-23", "Chhoti Holi, Holika Dahan",           "NV",  ""
IN.csv: "en-IN", "",    "2016-03-24", "Holi",                                "NV",  ""
IN.csv: "en-IN", "",    "2016-03-25", "Good Friday",                         "NV",  ""
IN.csv: "en-IN", "",    "2016-03-27", "Easter",                              "NV",  ""
IN.csv: "en-IN", "",    "2016-04-08", "Gudi Padwa, Ugadi",                   "NV",  ""
IN.csv: "en-IN", "",    "2016-04-13", "Solar New Year, Baisakhi",            "NV",  ""
IN.csv: "en-IN", "",    "2016-04-15", "Rama Navami",                         "NV",  ""
IN.csv: "en-IN", "",    "2016-04-21", "Hazarat Ali's Birthday",              "NV",  ""
IN.csv: "en-IN", "",    "2016-05-21", "Buddha Purnima",                      "NV",  ""
IN.csv: "en-IN", "",    "2016-07-07", "Eid al-Fitr , Ramadan",               "NV",  ""
IN.csv: "en-IN", "",    "2016-08-15", "Independence Day",                    "NV",  ""
IN.csv: "en-IN", "",    "2016-08-18", "Rakhi, Raksha Bandhan",               "NV",  ""
IN.csv: "en-IN", "",    "2016-08-25", "Krishna Janmashtami",                 "NV",  ""
IN.csv: "en-IN", "",    "2016-09-05", "Ganesh Chaturthi",                    "NV",  ""
IN.csv: "en-IN", "",    "2016-09-13", "Onam, Eid al-Adha, Bakrid",           "NV",  ""
IN.csv: "en-IN", "",    "2016-10-02", "Gandhi Jayanti",                      "NV",  ""
IN.csv: "en-IN", "",    "2016-10-09", "Durga Ashtami",                       "NV",  ""
IN.csv: "en-IN", "",    "2016-10-10", "Maha Navami",                         "NV",  ""
IN.csv: "en-IN", "",    "2016-10-11", "Dussehra, Madhvacharya Jayanti",      "NV",  ""
IN.csv: "en-IN", "",    "2016-10-12", "Muharram",                            "NV",  ""
IN.csv: "en-IN", "",    "2016-10-16", "Valmiki Jayanti",                     "NV",  ""
IN.csv: "en-IN", "",    "2016-10-19", "Karwa Chauth",                        "NV",  ""
IN.csv: "en-IN", "",    "2016-10-30", "Diwali, Lakshmi Puja",                "NV",  ""
IN.csv: "en-IN", "",    "2016-10-31", "Gowardhan Puja",                      "NV",  ""
IN.csv: "en-IN", "",    "2016-11-01", "Bhaiya Dooj",                         "NV",  ""
IN.csv: "en-IN", "",    "2016-11-06", "Chhath Puja",                         "NV",  ""
IN.csv: "en-IN", "",    "2016-11-14", "Guru Nanak Jayanti, Nehru Jayanti",   "NV",  ""
IN.csv: "en-IN", "",    "2016-12-12", "Milad an-Nabi, Id-e-Milad",           "NV",  ""
IS.csv: "is-IS", "",    "2016-04-21", "Sumardagurinn fyrsti",                "NV",  ""
IS.csv: "is-IS", "",    "2016-08-01", "Frídagur verslunarmanna",             "NV",  ""
JP.csv: "jp-JP", "",    "2016-01-11", "成人の日",                            "NV",  ""
JP.csv: "jp-JP", "",    "2016-03-21", "春分の日",                            "NV",  ""
JP.csv: "jp-JP", "",    "2016-07-18", "海の日",                              "NV",  ""
JP.csv: "jp-JP", "",    "2016-09-19", "敬老の日",                            "NV",  ""
JP.csv: "jp-JP", "",    "2016-09-22", "秋分の日",                            "NV",  ""
JP.csv: "jp-JP", "",    "2016-10-10", "体育の日",                            "NV",  ""
MX.csv: "es-MX", "",    "2016-02-01", "Día de la Constitución",              "NV",  ""
MX.csv: "es-MX", "",    "2016-03-14", "Natalicio de Benito Juárez",          "NV",  ""
MX.csv: "es-MX", "",    "2016-11-21", "Día de la Revolución",                "NV",  ""
NZ.csv: "en-NZ", "",    "2016-01-04", "Day after New Years Day",             "NV",  ""
NZ.csv: "en-NZ", "",    "2016-06-06", "Queen's Birthday",                    "NV",  ""
NZ.csv: "en-NZ", "",    "2016-10-24", "Labour Day",                          "NV",  ""
SE.csv: "sv-SE", "",    "2016-06-24", "Midsommarafton",                      "NV",  "Friday before Midsommardagen"
SE.csv: "sv-SE", "",    "2016-06-25", "Midsommardagen",                      "NV",  "Saturday 20-26 of june"
SE.csv: "sv-SE", "",    "2016-11-05", "Alla Helgons Dag",                    "NV",  "1st Saturday in November"
US.csv: "en-US", "",    "2016-01-18", "Birthday of Martin Luther King, Jr.",  "V",  ""
US.csv: "en-US", "",    "2016-02-15", "Washington's Birthday",               "NV",  ""
US.csv: "en-US", "MA",  "2016-04-18", "Patriots' Day",                       "NV",  ""
US.csv: "en-US", "ME",  "2016-04-18", "Patriots' Day",                       "NV",  ""
US.csv: "en-US", "",    "2016-05-30", "Memorial Day",                        "NV",  ""
US.csv: "en-US", "",    "2016-09-05", "Labor Day",                           "NV",  ""
US.csv: "en-US", "",    "2016-10-10", "Columbus Day",                        "NV",  ""
US.csv: "en-US", "",    "2016-11-11", "Veterans Day",                        "NV",  ""
US.csv: "en-US", "",    "2016-11-24", "Thanksgiving Day",                    "NV",  ""
ZA.csv: "en-ZA", "",    "2016-03-28", "Family Day",                          "NV",  ""

---

Go through all the RV holidays and confirm their calculation on Easter/Christmas

//TODO few occurances left to check

NO.csv: "nb-NO", "2016-02-07", "Fastelavn",                  "NRV", ""
SJ.csv: "nb-SJ", "2016-02-07", "Fastelavn",                  "NRV", ""
BR.csv: "pt-BR", "2016-02-08", "Carnaval",                   "NRV", ""
BR.csv: "pt-BR", "2016-02-09", "Carnaval",                   "NRV", ""
PT.csv: "pt-PT", "2016-02-09", "Carnaval",                   "NRV", ""
IT.csv: "it-IT", "2016-02-09", "Carnevale",                  "NRV", ""
GR.csv: "el-GR", "2016-03-14", "Καθαρά Δευτέρα",             "NRV", ""
NO.csv: "nb-NO", "2016-03-20", "Palmesøndag",                "NRV", "E-7"
SJ.csv: "nb-SJ", "2016-03-20", "Palmesøndag",                "NRV", "E-7"
CO.csv: "es-CO", "2016-03-21", "Día de San José",            "NRV", ""
CO.csv: "es-CO", "2016-03-24", "Jueves Santo",               "NRV", "E-3"
MX.csv: "es-MX", "2016-03-24", "Jueves Santo",               "NRV", "E-3"
GL.csv: "en-GL", "2016-03-24", "Maundy Thursday",            "NRV", "E-3"
NO.csv: "nb-NO", "2016-03-24", "Skjærtorsdag",               "NRV", "E-3"
SJ.csv: "nb-SJ", "2016-03-24", "Skjærtorsdag",               "NRV", "E-3"
DK.csv: "da-DK", "2016-03-24", "Skærtorsdag",                "NRV", "E-3"
IS.csv: "is-IS", "2016-03-24", "Skírdagur",                  "NRV", "E-3"
IS.csv: "is-IS", "2016-03-25", "Föstudaginn langi",          "NRV", "E-2"
NL.csv: "nl-NL", "2016-03-25", "Goede Vrijdag",              "NRV", "E-2"
CA.csv: "en-CA", "2016-03-25", "Good Friday",                "NRV", "E-2"
GB.csv: "en-GB", "2016-03-25", "Good Friday",                "NRV", "E-2"
GL.csv: "en-GL", "2016-03-25", "Good Friday",                "NRV", "E-2"
HK.csv: "en-HK", "2016-03-25", "Good Friday",                "NRV", "E-2"
NZ.csv: "en-NZ", "2016-03-25", "Good Friday",                "NRV", "E-2"
AU.csv: "en-AU", "2016-03-25", "Good Friday",                "NRV", "E-2"
ZA.csv: "en-ZA", "2016-03-25", "Good Friday",                "NRV", "E-2"
DE.csv: "de-DE", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
AT.csv: "de-AT", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
CH.csv: "de-CH", "2016-03-25", "Karfreitag",                 "NRV", "E-2"
DK.csv: "da-DK", "2016-03-25", "Langfredag",                 "NRV", "E-2"
NO.csv: "nb-NO", "2016-03-25", "Langfredag",                 "NRV", "E-2"
SJ.csv: "nb-SJ", "2016-03-25", "Langfredag",                 "NRV", "E-2"
LV.csv: "lv-LV", "2016-03-25", "Lielā Piektdiena",           "NRV", "E-2"
SE.csv: "sv-SE", "2016-03-25", "Långfredagen",               "NRV", "E-2"
FI.csv: "fi-FI", "2016-03-25", "Pitkäperjantai",             "NRV", "E-2" # Good Friday
BR.csv: "pt-BR", "2016-03-25", "Sexta-feira Santa",          "NRV", "E-2"
PT.csv: "pt-PT", "2016-03-25", "Sexta-feira Santa",          "NRV", "E-2"
SK.csv: "sk-SK", "2016-03-25", "Veľký piatok",               "NRV", "E-2"
CO.csv: "es-CO", "2016-03-25", "Viernes Santo",              "NRV", "E-2"
EC.csv: "es-EC", "2016-03-25", "Viernes Santo",              "NRV", "E-2"
ES.csv: "es-ES", "2016-03-25", "Viernes Santo",              "NRV", "E-2"
MX.csv: "es-MX", "2016-03-25", "Viernes Santo",              "NRV", "E-2"
EE.csv: "et-EE", "2016-03-25", "suur reede",                 "NRV", "E-2"
AU.csv: "en-AU", "2016-03-26", "Easter Saturday",             "RV", "E-1"
AU.csv: "en-AU", "2016-03-26", "Easter Saturday",             "RV", "E-1"
AU.csv: "en-AU", "2016-03-26", "Easter Saturday",             "RV", "E-1"
AU.csv: "en-AU", "2016-03-26", "Easter Saturday",             "RV", "E-1"
AU.csv: "en-AU", "2016-03-26", "Easter Saturday",             "RV", "E-1"
CO.csv: "es-CO", "2016-03-27", "Domingo de Pascua",          "NRV", "E"
LV.csv: "lv-LV", "2016-03-27", "2. Lieldienas",              "NRV", "E"
LV.csv: "lv-LV", "2016-03-27", "Lieldienas",                 "NRV", "E"
DE.csv: "de-DE", "2016-03-27", "Ostern",                     "NRV", "E"
AT.csv: "de-AT", "2016-03-27", "Ostersonntag",               "NRV", "E"
CH.csv: "de-CH", "2016-03-27", "Ostersonntag",               "NRV", "E"
ES.csv: "es-ES", "2016-03-27", "Pascua",                     "NRV", "E"
BE.csv: "nl-BE", "2016-03-27", "Pasen",                      "NRV", "E"
NL.csv: "nl-NL", "2016-03-27", "Pasen",                      "NRV", "E"
IT.csv: "it-IT", "2016-03-27", "Pasqua",                     "NRV", "E"
BR.csv: "pt-BR", "2016-03-27", "Páscoa",                     "NRV", "E"
PT.csv: "pt-PT", "2016-03-27", "Páscoa",                     "NRV", "E"
IS.csv: "is-IS", "2016-03-27", "Páskadagur",                 "NRV", "E"
FI.csv: "fi-FI", "2016-03-27", "Pääsiäispäivä",              "NRV", "E" # Easter Sunday
SE.csv: "sv-SE", "2016-03-27", "Påskdagen",                  "NRV", "E"
DK.csv: "da-DK", "2016-03-27", "Påskedag",                   "NRV", "E"
NO.csv: "nb-NO", "2016-03-27", "Påskedag",                   "NRV", "E"
SJ.csv: "nb-SJ", "2016-03-27", "Påskedag",                   "NRV", "E"
HR.csv: "hr-HR", "2016-03-27", "Uskrs",                      "NRV", "E"
LT.csv: "lt-LT", "2016-03-27", "Velykos",                    "NRV", "E"
PL.csv: "pl-PL", "2016-03-27", "Wielkanoc",                  "NRV", "E"
EE.csv: "et-EE", "2016-03-27", "ülestõusmispühade 1. püha",  "NRV", "E"
BY.csv: "be-BY", "2016-03-27", "Пасха(праваслаўная)",        "NRV", "E"
AU.csv: "en-AU", "2016-03-28", "Easter Monday",              "NRV", "E+1"
FI.csv: "fi-FI", "2016-03-28", "2. pääsiäispäivä",           "NRV", "E+1" # Easter Monday
DK.csv: "da-DK", "2016-03-28", "Anden påskedag",             "NRV", "E+1"
SE.csv: "sv-SE", "2016-03-28", "Annandag påsk",              "NRV", "E+1"
IS.csv: "is-IS", "2016-03-28", "Annar í páskum",             "NRV", "E+1"
CA.csv: "en-CA", "2016-03-28", "Easter Monday",              "NRV", "E+1"
GB.csv: "en-GB", "2016-03-28", "Easter Monday",              "NRV", "E+1"
NZ.csv: "en-NZ", "2016-03-28", "Easter Monday",              "NRV", "E+1"
IE.csv: "ga-IE", "2016-03-28", "Luan Cásca",                 "NRV", "E+1"
FR.csv: "fr-FR", "2016-03-28", "Lundi de Pâques",            "NRV", "E+1"
DE.csv: "de-DE", "2016-03-28", "Ostermontag",                "NRV", "E+1"
AT.csv: "de-AT", "2016-03-28", "Ostermontag",                "NRV", "E+1"
CH.csv: "de-CH", "2016-03-28", "Ostermontag",                "NRV", "E+1"
CH.csv: "de-CH", "2016-03-28", "Ostermontag",                "NRV", "E+1"
CH.csv: "de-CH", "2016-03-28", "Ostermontag",                "NRV", "E+1"
CH.csv: "de-CH", "2016-03-28", "Ostermontag",                "NRV", "E+1"
CH.csv: "de-CH", "2016-03-28", "Ostermontag",                "NRV", "E+1"
CH.csv: "de-CH", "2016-03-28", "Ostermontag",                "NRV", "E+1"
CH.csv: "de-CH", "2016-03-28", "Ostermontag",                "NRV", "E+1"
CH.csv: "de-CH", "2016-03-28", "Ostermontag",                "NRV", "E+1"
CH.csv: "de-CH", "2016-03-28", "Ostermontag",                "NRV", "E+1"
CH.csv: "de-CH", "2016-03-28", "Ostermontag",                "NRV", "E+1"
CH.csv: "de-CH", "2016-03-28", "Ostermontag",                "NRV", "E+1"
CH.csv: "de-CH", "2016-03-28", "Ostermontag",                "NRV", "E+1"
CH.csv: "de-CH", "2016-03-28", "Ostermontag",                "NRV", "E+1"
CH.csv: "de-CH", "2016-03-28", "Ostermontag",                "NRV", "E+1"
CH.csv: "de-CH", "2016-03-28", "Ostermontag",                "NRV", "E+1"
CH.csv: "de-CH", "2016-03-28", "Ostermontag",                "NRV", "E+1"
CH.csv: "de-CH", "2016-03-28", "Ostermontag",                "NRV", "E+1"
BE.csv: "nl-BE", "2016-03-28", "Paasmaandag",                "NRV", "E+1"
PL.csv: "pl-PL", "2016-03-28", "Poniedziałek Wielkanocny",   "NRV", "E+1"
NO.csv: "nb-NO", "2016-03-28", "Påskedag",                   "NRV", "E+1"
SJ.csv: "nb-SJ", "2016-03-28", "Påskedag",                   "NRV", "E+1"
NL.csv: "nl-NL", "2016-03-28", "Tweede Pasdag",              "NRV", "E+1"
HR.csv: "hr-HR", "2016-03-28", "Uskrsni ponedjeljak",        "NRV", "E+1"
CZ.csv: "cs-CZ", "2016-03-28", "Velikonoční pondělí",        "NRV", "E+1"
LT.csv: "lt-LT", "2016-03-28", "Velykos",                    "NRV", "E+1"
SK.csv: "sk-SK", "2016-03-28", "Veľkonočný pondelok",        "NRV", "E+1"
HK.csv: "en-HK", "2016-04-04", "Ching Ming Festival",        "NRV", ""
GL.csv: "en-GL", "2016-04-22", "General Prayer Day",         "NRV", ""
GL.csv: "en-GL", "2016-04-28", "Easter Monday",              "NRV", ""
GR.csv: "el-GR", "2016-04-29", "Μεγάλη Παρασκευή",           "NRV", ""
GR.csv: "el-GR", "2016-04-30", "Μεγάλο Σάββατο",             "NRV", ""
GR.csv: "el-GR", "2016-05-01", "Πάσχα",                      "NRV", ""
RU.csv: "ru-RU", "2016-05-01", "Пасха",                      "NRV", ""
GR.csv: "el-GR", "2016-05-02", "Δευτέρα του Πάσχα",          "NRV", ""
FR.csv: "fr-FR", "2016-05-05", "Ascencion",                  "NRV", "E+39"
BE.csv: "fr-BE", "2016-05-05", "Ascension",                  "NRV", "E+39"
GL.csv: "en-GL", "2016-05-05", "Ascension",                  "NRV", "E+39"
CH.csv: "de-CH", "2016-05-05", "Auffahrt",                    "RV", "E+39"
AT.csv: "de-AT", "2016-05-05", "Christi Himmelfahrt",        "NRV", "E+39"
BE.csv: "de-BE", "2016-05-05", "Christi Himmelfahrt",        "NRV", "E+39"
DE.csv: "de-DE", "2016-05-05", "Christi Himmelfahrt",        "NRV", "E+39"
FI.csv: "fi-FI", "2016-05-05", "Helatorstai",                "NRV", "E+39" # Ascension Day
NL.csv: "nl-NL", "2016-05-05", "Hemelvaartsdag",             "NRV", "E+39"
NO.csv: "nb-NO", "2016-05-05", "Kristi Himmelfartsdag",      "NRV", "E+39"
SJ.csv: "nb-SJ", "2016-05-05", "Kristi Himmelfartsdag",      "NRV", "E+39"
SE.csv: "sv-SE", "2016-05-05", "Kristi Himmelsfärdsdag",     "NRV", "E+39"
DK.csv: "da-DK", "2016-05-05", "Kristi himmelfartsdag",      "NRV", "E+39"
BE.csv: "nl-BE", "2016-05-05", "Onze Lieve Heer hemelvaart", "NRV", "E+39"
IS.csv: "is-IS", "2016-05-05", "Uppstigningardagur",         "NRV", "E+39"
CO.csv: "es-CO", "2016-05-09", "La Ascensión del Señor",     "NRV", ""
BY.csv: "be-BY", "2016-05-10", "Радуніца",                   "NRV", ""
FI.csv: "fi-FI", "2016-05-15", "Helluntaipäivä",             "NRV", "E+49" # Pentecost Sunday
BE.csv: "fr-BE", "2016-05-15", "Pentecôte",                  "NRV", "E+49"
FR.csv: "fr-FR", "2016-05-15", "Pentecôte",                  "NRV", "E+49"
BE.csv: "de-BE", "2016-05-15", "Pfingsten",                  "NRV", "E+49"
CH.csv: "de-CH", "2016-05-15", "Pfingstsonntag",              "RV", "E+49"
AT.csv: "de-AT", "2016-05-15", "Pfingstsonntag",             "NRV", "E+49"
DE.csv: "de-DE", "2016-05-15", "Pfingstsonntag",             "NRV", "E+49"
SE.csv: "sv-SE", "2016-05-15", "Pingstdagen",                "NRV", "E+49"
BE.csv: "nl-BE", "2016-05-15", "Pinksteren",                 "NRV", "E+49"
NL.csv: "nl-NL", "2016-05-15", "Pinksteren",                 "NRV", "E+49"
DK.csv: "da-DK", "2016-05-15", "Pinsedag",                   "NRV", "E+49"
NO.csv: "nb-NO", "2016-05-15", "Pinsedag",                   "NRV", "E+49"
SJ.csv: "nb-SJ", "2016-05-15", "Pinsedag",                   "NRV", "E+49"
PL.csv: "pl-PL", "2016-05-15", "Zielone Świątki",            "NRV", "E+49"
EE.csv: "et-EE", "2016-05-15", "nelipühade 1. püha",         "NRV", "E+49"
DK.csv: "da-DK", "2016-05-16", "Anden pinsedag",             "NRV", "E+50"
IS.csv: "is-IS", "2016-05-16", "Annar í hvítasunnu",         "NRV", "E+50"
BE.csv: "fr-BE", "2016-05-16", "Lundi de Pentecôte",         "NRV", "E+50"
CH.csv: "de-CH", "2016-05-16", "Pfingstmontag",               "RV", "E+50"
CH.csv: "de-CH", "2016-05-16", "Pfingstmontag",               "RV", "E+50"
CH.csv: "de-CH", "2016-05-16", "Pfingstmontag",               "RV", "E+50"
CH.csv: "de-CH", "2016-05-16", "Pfingstmontag",               "RV", "E+50"
CH.csv: "de-CH", "2016-05-16", "Pfingstmontag",               "RV", "E+50"
CH.csv: "de-CH", "2016-05-16", "Pfingstmontag",               "RV", "E+50"
CH.csv: "de-CH", "2016-05-16", "Pfingstmontag",               "RV", "E+50"
CH.csv: "de-CH", "2016-05-16", "Pfingstmontag",               "RV", "E+50"
CH.csv: "de-CH", "2016-05-16", "Pfingstmontag",               "RV", "E+50"
CH.csv: "de-CH", "2016-05-16", "Pfingstmontag",               "RV", "E+50"
CH.csv: "de-CH", "2016-05-16", "Pfingstmontag",               "RV", "E+50"
CH.csv: "de-CH", "2016-05-16", "Pfingstmontag",               "RV", "E+50"
CH.csv: "de-CH", "2016-05-16", "Pfingstmontag",               "RV", "E+50"
CH.csv: "de-CH", "2016-05-16", "Pfingstmontag",               "RV", "E+50"
CH.csv: "de-CH", "2016-05-16", "Pfingstmontag",               "RV", "E+50"
CH.csv: "de-CH", "2016-05-16", "Pfingstmontag",               "RV", "E+50"
CH.csv: "de-CH", "2016-05-16", "Pfingstmontag",               "RV", "E+50"
AT.csv: "de-AT", "2016-05-16", "Pfingstmontag",              "NRV", "E+50"
BE.csv: "de-BE", "2016-05-16", "Pfingstmontag",              "NRV", "E+50"
DE.csv: "de-DE", "2016-05-16", "Pfingstmontag",              "NRV", "E+50"
BE.csv: "nl-BE", "2016-05-16", "Pinkstermaandag",            "NRV", "E+50"
NO.csv: "nb-NO", "2016-05-16", "Pinsedag",                   "NRV", "E+50"
SJ.csv: "nb-SJ", "2016-05-16", "Pinsedag",                   "NRV", "E+50"
NL.csv: "nl-NL", "2016-05-16", "Tweede Pinksterdag",         "NRV", "E+50"
GL.csv: "en-GL", "2016-05-16", "Whit Monday",                "NRV", "E+50"
PL.csv: "pl-PL", "2016-05-26", "Boże Ciało",                 "NRV", "E+60"
PT.csv: "pt-PT", "2016-05-26", "Corpo de Deus",              "NRV", "E+60"
BR.csv: "pt-BR", "2016-05-26", "Corpus Christi",             "NRV", "E+60"
CH.csv: "de-CH", "2016-05-26", "Fronleichnam",                "RV", "E+60"
CH.csv: "de-CH", "2016-05-26", "Fronleichnam",                "RV", "E+60"
CH.csv: "de-CH", "2016-05-26", "Fronleichnam",                "RV", "E+60"
CH.csv: "de-CH", "2016-05-26", "Fronleichnam",                "RV", "E+60"
CH.csv: "de-CH", "2016-05-26", "Fronleichnam",                "RV", "E+60"
CH.csv: "de-CH", "2016-05-26", "Fronleichnam",                "RV", "E+60"
CH.csv: "de-CH", "2016-05-26", "Fronleichnam",                "RV", "E+60"
CH.csv: "de-CH", "2016-05-26", "Fronleichnam",                "RV", "E+60"
CH.csv: "de-CH", "2016-05-26", "Fronleichnam",                "RV", "E+60"
CH.csv: "de-CH", "2016-05-26", "Fronleichnam",                "RV", "E+60"
AT.csv: "de-AT", "2016-05-26", "Fronleichnam",               "NRV", "E+60"
DE.csv: "de-DE", "2016-05-26", "Fronleichnam",               "NRV", "E+60"
DE.csv: "de-DE", "2016-05-26", "Fronleichnam",               "NRV", "E+60"
DE.csv: "de-DE", "2016-05-26", "Fronleichnam",               "NRV", "E+60"
DE.csv: "de-DE", "2016-05-26", "Fronleichnam",               "NRV", "E+60"
DE.csv: "de-DE", "2016-05-26", "Fronleichnam",               "NRV", "E+60"
DE.csv: "de-DE", "2016-05-26", "Fronleichnam",               "NRV", "E+60"
HR.csv: "hr-HR", "2016-05-26", "Tijelovo",                   "NRV", "E+60"
BE.csv: "de-BE", "2016-05-27", "Ostern",                     "NRV", ""
BE.csv: "fr-BE", "2016-05-27", "Pâques",                     "NRV", ""
BE.csv: "fr-BE", "2016-05-28", "Lundi de Pâques",            "NRV", ""
BE.csv: "de-BE", "2016-05-28", "Ostermontag",                "NRV", ""
CO.csv: "es-CO", "2016-05-30", "Corpus Christi",             "NRV", ""
CO.csv: "es-CO", "2016-06-06", "El Sagrado Corazón de Jesús","NRV", ""
GR.csv: "el-GR", "2016-06-20", "Δευτέρα του Αγίου Πνεύματος","NRV", ""
TR.csv: "tr-TR", "2016-07-05", "Ramazan Bayramı 1",          "NRV", ""
TR.csv: "tr-TR", "2016-07-06", "Ramazan Bayramı 2",          "NRV", ""
TR.csv: "tr-TR", "2016-07-07", "Ramazan Bayramı 3",          "NRV", ""
CO.csv: "es-CO", "2016-08-15", "Asunción de la Virgen",      "NRV", ""
TR.csv: "tr-TR", "2016-09-12", "Kurban Bayramı 1",           "NRV", ""
TR.csv: "tr-TR", "2016-09-13", "Kurban Bayramı 2",           "NRV", ""
TR.csv: "tr-TR", "2016-09-14", "Kurban Bayramı 3",           "NRV", ""
TR.csv: "tr-TR", "2016-09-15", "Kurban Bayramı 4",           "NRV", ""
CO.csv: "es-CO", "2016-11-07", "Todos los Santos",           "NRV", ""
DE.csv: "de-DE", "2016-11-16", "Buß- und Bettag",            "NRV", "Wednesday before November 23 (alternative: 11 days before fourth to last Sunday
                                                                                                   before Christmas)"