{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Holidays in NSW, 1900-1950\n", "\n", "While working on assigning dates to pages in the [ANU Archives' Stock Exchange records](summary.ipynb), I needed information about holidays in NSW. So here we go..." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "import datetime\n", "import calendar\n", "import arrow\n", "import pandas as pd\n", "from IPython.display import display, FileLink" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What days was the Stock Market closed? I'm assuming it will be for the standard bank holidays. These are set out in legislation. See AustLII:\n", "\n", "* [Banks and Bank Holidays Act 1898 No 9](https://www.austlii.edu.au/cgi-bin/viewdoc/au/legis/nsw/num_act/babha1898n9215)\n", "* [Banks and Bank Holidays Act Amendment Act 1899 No 30](https://www.austlii.edu.au/cgi-bin/viewdoc/au/legis/nsw/num_act/babhaaa1899n30316)\n", "* [Banks and Bank Holidays Further Amendment Act 1906 No 15](https://www.austlii.edu.au/cgi-bin/viewdoc/au/legis/nsw/num_act/babhfaa1906n15384)\n", "* [Banks and Bank Holidays Act 1912 No 43](https://www.austlii.edu.au/cgi-bin/viewdoc/au/legis/nsw/num_act/babha1912n43215)\n", "* [Banks and Bank Holidays (Amendment) Act 1924 No 25](https://www.austlii.edu.au/cgi-bin/viewdoc/au/legis/nsw/num_act/babha1924n25295)\n", "* [Banks and Bank Holidays (Amendment) Act 1925 No 10](https://www.austlii.edu.au/cgi-bin/viewdoc/au/legis/nsw/num_act/babha1925n10295)\n", "\n", "Of course, the legislation also allowed the government to proclaim other holidays as required, so there could be ones that I'm missing...\n", "\n", "## Summarising the legislation...\n", "\n", "### From 1899 onwards:\n", "\n", "* 1 January\n", "* 25 December\n", "* 26 December\n", "* Good Friday\n", "* Easter Saturday\n", "* Easter Monday\n", "\n", "If any of the above fall on Sunday, there's a holiday on the following Monday. If 26 December is a Monday, holiday is on the Tuesday.\n", "\n", "* 26 January\n", "* King/Queens's birthday\n", "* Prince of Wales' birthday\n", "* 1 August\n", "\n", "If any of the above are not on a Monday, the holiday will be on the following Monday.\n", "\n", "### From 1906 onwards:\n", "\n", "* 1 January\n", "* 25 December\n", "* 26 December\n", "* Good Friday\n", "* Easter Saturday\n", "* Easter Monday\n", "* 26 January\n", "\n", "If any of the above fall on Sunday, there's a holiday on the following Monday. If 26 December is a Monday, holiday is on the Tuesday.\n", "\n", "* King/Queens's birthday\n", "* Prince of Wales' birthday\n", "* 1 August\n", "\n", "If any of the above are not on a Monday, the holiday will be on the following Monday.\n", "\n", "### From 1912 onwards:\n", "\n", "* 1 January\n", "* 25 December\n", "* 26 December\n", "* Good Friday\n", "* Easter Saturday\n", "* Easter Monday\n", "* 26 January\n", "\n", "If 1 Jan or 25 Dec fall on Sunday, there's a holiday on the following Monday. If 26 December is a Monday, holiday is on the Tuesday. This seems to indicate that if Boxing Day is on a Sunday, there's no holiday on Monday, but in 1915 when this happened there was a holiday on Monday. So it seems Boxing Day was in practice treated like NY Day and Christmas Day. Same goes for Australia (Anniversary) Day, in 1913 and 1919 ther was a holiday Monday.\n", "\n", "* King/Queens's birthday\n", "* Prince of Wales' birthday\n", "* 1 August\n", "\n", "If any of the above are not on a Monday, the holiday will be on the following Monday.\n", "\n", "### From 1924 onwards:\n", "\n", "* 1 January\n", "* 25 December\n", "* 26 December\n", "* Good Friday\n", "* Easter Saturday\n", "* Easter Monday\n", "* 26 January\n", "* 25 April (Anzac Day)\n", "\n", "If 1 or 26 Jan or 25 or 26 Dec fall on Sunday, there's a holiday on the following Monday. If 26 December is a Monday, holiday is on the Tuesday.\n", "\n", "* King/Queens's birthday\n", "* 1 August\n", "\n", "If any of the above are not on a Monday, the holiday will be on the following Monday.\n", "\n", "### From 1925 onwards:\n", "\n", "* 1 January\n", "* 25 December\n", "* 25 April (Anzac Day)\n", "* 26 January\n", "* 26 December\n", "* Good Friday\n", "* Easter Saturday\n", "* Easter Monday\n", "\n", "If any of the above fall on Sunday, there's a holiday on the following Monday. If 26 December is a Monday, holiday is on the Tuesday.\n", "\n", "* King/Queens's birthday\n", "* 1 August\n", "\n", "If any of the above are not on a Monday, the holiday will be on the following Monday.\n", "\n", "### From 1935 onwards:\n", "\n", "It seems that from 1935 it was decided that if Australia (Anniversary) Day didn't fall on a Monday, the holiday would be on the following Monday. See: \n", "\n", "But in 1938 it was held on the actual day because of the 150th celebtrations.\n", "\n", "### But in practice...\n", "\n", "Despite what the legislation seems to indicate, it appears that if any of 1 Jan, 26 Jan, 25 April, 25 Dec, 26 Dec fell on a Sunday, there was a holiday on the Monday. In any case, that's what I'll assume unless proven otherwise.\n", "\n", "### More variations\n", "\n", "1901: Anniversary Day was cancelled\n", "\n", "## 8 hour / Labour Day\n", "\n", "Although it's not in the legislation, there was also a Labour Day holiday on the first Monday in October.\n", "\n", "## Easter\n", "\n", "See .\n", "\n", "## When the the King/Queen's and Prince of Wales' birthdays?\n", "\n", "### King/Queen's birthdays (an other royal holidays)\n", "\n", "Victoria was born on 24 May 1819. She died on 22 January 1901.\n", "\n", "Edward VII was born on 9 November 1841. He died on 6 May 1910.\n", "\n", "George V was born on 3 June 1865. He died on 20 January 1936.\n", "\n", "Edward VIII was born on 23 June 1894. He abdicated on 11 December 1936.\n", "\n", "George VI was born on 14 December 1895. He died on 6 February 1952.\n", "\n", "* 1900: 25 May (holiday on a Friday)\n", "* 1901: 2 February, day of mourning \n", "* 1901-1909: Monday after 9 November\n", "* 1910: 20 May, day of mourning \n", "* 1910-1920: Monday after 3 June\n", "* 1911: 22 February, Coronation\n", "* 1920: No King's birthday holiday -- holidays for PoW visit (see below)\n", "* 1921-1935: Monday after 3 June\n", "* 1936: Monday after 23 June\n", "* 1936: 20 May was a bank holiday for King's funeral\n", "* 1937: 12 May (Coronation day)\n", "* 1937 onwards: the King's Birthday was celebrated on the Monday after 9 June See \n", "\n", "\n", "### Prince of Wales birthday\n", "\n", "Albert Edward: born 9 November 1841, became King 22 January 1901\n", "\n", "George Frederick Ernest Albert: born 3 June 1865, became king 6 May 1910\n", "\n", "Edward Albert Christian George Andrew Patrick David: born 23 June 1894, became king 20 January 1936\n", "\n", "* 1900: Monday after 9 November\n", "* 1901-1909: Monday after 3 June\n", "* 1910: 27 June \n", "* 1911: holiday was on 22 August https://trove.nla.gov.au/newspaper/article/230684354\n", "* 1912-1919: Monday after 23 June\n", "* 1920: 9-10 June, holidays for the PoW visit \n", "* 1921-1924: Monday after 23 June\n", "\n", "This holiday was replaced by Anzac Day in 1925.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Easter dates" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# Dates from https://www.assa.org.au/edm\n", "e_dates = \"\"\"\n", "15th April 1900 12th April 1925 9th April 1950 30th March 1975\n", " 7th April 1901 4th April 1926 25th March 1951 18th April 1976\n", " 30th March 1902 17th April 1927 13th April 1952 10th April 1977\n", " 12th April 1903 8th April 1928 5th April 1953 26th March 1978\n", " 3rd April 1904 31st March 1929 18th April 1954 15th April 1979\n", " 23rd April 1905 20th April 1930 10th April 1955 6th April 1980\n", " 15th April 1906 5th April 1931 1st April 1956 19th April 1981\n", " 31st March 1907 27th March 1932 21st April 1957 11th April 1982\n", " 19th April 1908 16th April 1933 6th April 1958 3rd April 1983\n", " 11th April 1909 1st April 1934 29th March 1959 22nd April 1984\n", " 27th March 1910 21st April 1935 17th April 1960 7th April 1985\n", " 16th April 1911 12th April 1936 2nd April 1961 30th March 1986\n", " 7th April 1912 28th March 1937 22nd April 1962 19th April 1987\n", " 23rd March 1913 17th April 1938 14th April 1963 3rd April 1988\n", " 12th April 1914 9th April 1939 29th March 1964 26th March 1989\n", " 4th April 1915 24th March 1940 18th April 1965 15th April 1990\n", " 23rd April 1916 13th April 1941 10th April 1966 31st March 1991\n", " 8th April 1917 5th April 1942 26th March 1967 19th April 1992\n", " 31st March 1918 25th April 1943 14th April 1968 11th April 1993\n", " 20th April 1919 9th April 1944 6th April 1969 3rd April 1994\n", " 4th April 1920 1st April 1945 29th March 1970 16th April 1995\n", " 27th March 1921 21st April 1946 11th April 1971 7th April 1996\n", " 16th April 1922 6th April 1947 2nd April 1972 30th March 1997\n", " 1st April 1923 28th March 1948 22nd April 1973 12th April 1998\n", " 20th April 1924 17th April 1949 14th April 1974 4th April 1999\n", "\"\"\"\n", "\n", "easter_exceptions = {\n", " datetime.date(1942, 4, 6)\n", "}\n", "\n", "def check_exceptions(date):\n", " if date in easter_exceptions:\n", " return True\n", "\n", "# Create a list of easter dates indexed by year.\n", "e_dates = e_dates.split(' ')\n", "e_dates = [d.strip() for d in e_dates]\n", "easter_dates = {}\n", "for e in e_dates:\n", " edate = arrow.get(e, 'Do MMMM YYYY')\n", " good_friday = edate.shift(days=-2)\n", " easter_saturday = edate.shift(days=-1)\n", " easter_monday = edate.shift(days=+1)\n", " easter_dates[edate.year] = []\n", " if not check_exceptions(good_friday.date()):\n", " easter_dates[edate.year].append((good_friday.date(), 'Good Friday'))\n", " if not check_exceptions(easter_saturday.date()):\n", " easter_dates[edate.year].append((easter_saturday.date(), 'Easter Saturday'))\n", " if not check_exceptions(easter_monday.date()):\n", " easter_dates[edate.year].append((easter_monday.date(), 'Easter Monday'))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(datetime.date(1943, 4, 23), 'Good Friday'),\n", " (datetime.date(1943, 4, 24), 'Easter Saturday'),\n", " (datetime.date(1943, 4, 26), 'Easter Monday')]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get Easter dates for 1930\n", "easter_dates[1943]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Other holidays\n", "\n", "Holidays were proclaimed for a variety of reasons. Here are some that I have found so far:\n", "\n", "* 1901: 27-28 May, visit of the Duke of Cornwall\n", "* 1901: 3 July, polling day\n", "* 1908: 20 & 24 August, visit of the American Fleet\n", "* 1915: 24 May, Empire Day\n", "* 1916: 28 October, conscription referendum\n", "* 1916: 18 November, for postponed 8-hour-day procession\n", "\n", "## Holiday data\n", "\n", "Below is the information summarised above converted into a machine-readable form. The four values for each holiday are:\n", "\n", "* Day\n", "* Month\n", "* How the date of the holiday is calculated – options are:\n", " * `0` – holiday is on the given date\n", " * `1` – holiday is on the given date unless it falls on a Sunday, then it's on a Monday. (And Boxing Day gets shifted to Tuesday if on a Monday.)\n", " * `2` – if the given date is not on a Monday then the holiday is on the next Monday\n", "* Name of the holiday (the names changed over time, these are mostly the modern names)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "general_holidays = {\n", " '1900': [\n", " (1, 1, 1, 'New Year''s day'),\n", " (25, 12, 1, 'Christmas Day'),\n", " (26, 12, 1, 'Boxing Day'),\n", " (26, 1, 1, 'Anniversary Day'), # Australia Day\n", " (1, 8, 2, 'Bank Holiday'), # Bank holiday\n", " (1, 10, 2, 'Labour Day'), # Labour Day\n", " ],\n", " \n", " '1901': [\n", " (1, 1, 1, 'New Year''s day'),\n", " (25, 12, 1, 'Christmas Day'),\n", " (26, 12, 1, 'Boxing Day'),\n", " # (26, 1, 1, 'Anniversary Day'), Cancelled in 1901!\n", " (1, 8, 2, 'Bank Holiday'), # Bank holiday\n", " (1, 10, 2, 'Labour Day'), # Labour Day\n", " ],\n", " \n", " '1902_1904': [\n", " (1, 1, 1, 'New Year''s day'),\n", " (25, 12, 1, 'Christmas Day'),\n", " (26, 12, 1, 'Boxing Day'),\n", " (26, 1, 1, 'Anniversary Day'), # Australia Day\n", " (1, 8, 2, 'Bank Holiday'), # Bank holiday\n", " (1, 10, 2, 'Labour Day'), # Labour Day\n", " ],\n", " \n", " '1905': [\n", " (1, 1, 1, 'New Year''s day'),\n", " (25, 12, 1, 'Christmas Day'),\n", " (26, 12, 1, 'Boxing Day'),\n", " (26, 1, 2, 'Anniversary Day'), # Australia Day\n", " (1, 8, 2, 'Bank Holiday'), # Bank holiday\n", " (1, 10, 2, 'Labour Day'), # Labour Day\n", " ],\n", " \n", " '1906_1921': [\n", " (1, 1, 1, 'New Year''s day'),\n", " (25, 12, 1, 'Christmas Day'),\n", " (26, 12, 1, 'Boxing Day'),\n", " (26, 1, 1, 'Anniversary Day'), # Australia Day\n", " (1, 8, 2, 'Bank Holiday'), # Bank holiday\n", " (1, 10, 2, 'Labour Day'), # Labour Day\n", " ],\n", "\n", " '1922_1934': [\n", " (1, 1, 1, 'New Year''s day'),\n", " (25, 12, 1, 'Christmas Day'),\n", " (26, 12, 1, 'Boxing Day'),\n", " (26, 1, 1, 'Anniversary Day'), # Australia Day,\n", " (25, 4, 1, 'Anzac Day'), # Anzac Day - included in legislation from 1925, but proclaimed in 1922-4\n", " (1, 8, 2, 'Bank Holiday'), # Bank holiday\n", " (1, 10, 2, 'Labour Day'), # Labour Day\n", " ],\n", " \n", " '1935_1937': [\n", " (1, 1, 1, 'New Year''s day'),\n", " (25, 12, 1, 'Christmas Day'),\n", " (26, 12, 1, 'Boxing Day'),\n", " (26, 1, 2, 'Anniversary Day'), # Australia Day,\n", " (25, 4, 1, 'Anzac Day'), # Anzac Day\n", " (1, 8, 2, 'Bank Holiday'), # Bank holiday\n", " (1, 10, 2, 'Labour Day'), # Labour Day\n", " ],\n", " \n", " '1938': [\n", " (1, 1, 1, 'New Year''s day'),\n", " (25, 12, 1, 'Christmas Day'),\n", " (26, 12, 1, 'Boxing Day'),\n", " (26, 1, 0, 'Anniversary Day'), # Australia Day,\n", " (25, 4, 1, 'Anzac Day'), # Anzac Day\n", " (1, 8, 2, 'Bank Holiday'), # Bank holiday\n", " (1, 10, 2, 'Labour Day'), # Labour Day\n", " ],\n", " \n", " '1939': [\n", " (1, 1, 1, 'New Year''s day'),\n", " (25, 12, 1, 'Christmas Day'),\n", " (26, 12, 1, 'Boxing Day'),\n", " (26, 1, 2, 'Anniversary Day'), # Australia Day,\n", " (25, 4, 1, 'Anzac Day'), # Anzac Day\n", " (1, 8, 2, 'Bank Holiday'), # Bank holiday\n", " (1, 10, 2, 'Labour Day'), # Labour Day\n", " ],\n", " \n", " '1940': [\n", " (1, 1, 1, 'New Year''s day'),\n", " (25, 12, 1, 'Christmas Day'),\n", " (26, 12, 1, 'Boxing Day'),\n", " (26, 1, 2, 'Anniversary Day'), # Australia Day,\n", " (25, 4, 1, 'Anzac Day'), # Anzac Day\n", " # Bank holiday cancelled because of war\n", " (1, 10, 2, 'Labour Day'), # Labour Day\n", " ],\n", " \n", " '1941': [\n", " (1, 1, 1, 'New Year''s day'),\n", " (25, 12, 1, 'Christmas Day'),\n", " (26, 12, 1, 'Boxing Day'),\n", " (26, 1, 2, 'Anniversary Day'), # Australia Day,\n", " (25, 4, 1, 'Anzac Day'), # Anzac Day\n", " (1, 8, 2, 'Bank Holiday'), # Bank holiday\n", " (1, 10, 2, 'Labour Day'), # Labour Day\n", " ],\n", " \n", " '1942': [\n", " (1, 1, 1, 'New Year''s day'),\n", " (25, 12, 1, 'Christmas Day'),\n", " (26, 12, 1, 'Boxing Day'),\n", " (28, 12, 1, 'In place of New Year''s Day'),\n", " (26, 1, 2, 'Anniversary Day'), # Australia Day,\n", " (25, 4, 1, 'Anzac Day'), # Anzac Day\n", " (1, 8, 2, 'Bank Holiday'), # Bank holiday\n", " (1, 10, 2, 'Labour Day'), # Labour Day\n", " ],\n", " \n", " '1943': [\n", " # (1, 1, 1, 'New Year''s day'),\n", " (25, 12, 1, 'Christmas Day'),\n", " (26, 12, 1, 'Boxing Day'),\n", " (26, 1, 0, 'Anniversary Day'), # Australia Day,\n", " (25, 4, 1, 'Anzac Day'), # Anzac Day\n", " (1, 8, 2, 'Bank Holiday'), # Bank holiday\n", " (1, 10, 2, 'Labour Day'), # Labour Day\n", " ],\n", " \n", " '1944_1950': [\n", " (1, 1, 1, 'New Year''s day'),\n", " (25, 12, 1, 'Christmas Day'),\n", " (26, 12, 1, 'Boxing Day'),\n", " (26, 1, 2, 'Anniversary Day'), # Australia Day,\n", " (25, 4, 1, 'Anzac Day'), # Anzac Day\n", " (1, 8, 2, 'Bank Holiday'), # Bank holiday\n", " (1, 10, 2, 'Labour Day'), # Labour Day\n", " ]\n", "}\n", "\n", "royal_holidays = {\n", " '1900': [\n", " (25, 5, 0, 'Queen\\'s Birthday'),\n", " (9, 11, 2, 'Prince of Wales\\'s Birthday')\n", " ],\n", "\n", " '1901': [\n", " (2, 2, 0, 'Day of Mourning for Queen'), # Mourning\n", " (9, 11, 2, 'King\\'s Birthday'),\n", " (3, 6, 2, 'Prince of Wales\\'s Birthday')\n", " ],\n", "\n", " '1902_1909': [\n", " (9, 11, 2, 'King\\'s Birthday'),\n", " (3, 6, 2, 'Prince of Wales\\'s Birthday')\n", " ],\n", "\n", " '1910': [\n", " (20, 5, 0, 'Day of Mourning for King'), # Mourning\n", " (3, 6, 2, 'King\\'s Birthday'),\n", " (27, 6, 0, 'Prince of Wales\\'s Birthday')\n", " ],\n", "\n", " '1911': [\n", " (3, 6, 1, 'King\\'s Birthday'),\n", " (22, 6, 0, 'Coronation'), # Coronation\n", " (22, 8, 0, 'Prince of Wales\\'s Birthday')\n", " ],\n", "\n", " '1912_1919': [\n", " (3, 6, 2, 'King\\'s Birthday'),\n", " (23, 6, 2, 'Prince of Wales\\'s Birthday')\n", " ],\n", " '1920': [\n", " (16, 6, 0, 'Prince of Wales\\'s Visit'), # Prince of Wlaes visit\n", " (17, 6, 0, 'Prince of Wales\\'s Visit')\n", " ],\n", " '1921_1924': [\n", " (3, 6, 2, 'King\\'s Birthday'),\n", " (23, 6, 2, 'Prince of Wales\\'s Birthday')\n", " ],\n", "\n", " '1925_1935': [\n", " (3, 6, 2, 'King\\'s Birthday')\n", " ],\n", "\n", " '1936': [\n", " # (20, 5, 0, 'King\\'s funeral'), # King's funeral\n", " (23, 6, 2, 'King\\'s Birthday')\n", " ],\n", "\n", " '1937': [\n", " (12, 5, 0, 'Coronation') # Coronation\n", " ],\n", "\n", " '1938_1939': [\n", " (9, 6, 2, 'King\\'s Birthday') # 2nd monday in June\n", " ],\n", " '1940': [\n", " (17, 6, 2, 'King\\'s Birthday') # For some reasons this was held a week later than usual in 1940\n", " ],\n", " '1941': [\n", " (16, 6, 2, 'King\\'s Birthday') # For some reasons this was held a week later than usual in 1940\n", " ],\n", " '1942': [\n", " (9, 6, 2, 'King\\'s Birthday') \n", " ],\n", " '1943': [\n", " (7, 6, 2, 'King\\'s Birthday') # For some reasons this was held earlier than usual\n", " ],\n", " '1944': [\n", " (9, 6, 2, 'King\\'s Birthday') \n", " ],\n", " '1945': [\n", " (18, 6, 2, 'King\\'s Birthday') \n", " ],\n", " '1946': [\n", " (17, 6, 2, 'King\\'s Birthday') \n", " ],\n", " '1947': [\n", " (16, 6, 2, 'King\\'s Birthday') # 2nd monday in June\n", " ],\n", " '1948_1950': [\n", " (9, 6, 2, 'King\\'s Birthday') # 2nd monday in June\n", " ]\n", "}\n", "\n", "other_holidays = {\n", " '1901': [\n", " (27, 5, 0, 'Visit of the Duke of Cornwall'),\n", " (28, 5, 0, 'Visit of the Duke of Cornwall'),\n", " (3, 7, 0, 'Polling day')\n", " ],\n", " '1908': [\n", " (20, 8, 0, 'Visit of the American Fleet'),\n", " (24, 8, 0, 'Visit of the American Fleet'),\n", " ],\n", " '1915': [\n", " (24, 5, 0, 'Empire Day')\n", " ],\n", " '1916': [\n", " (28, 10, 0, 'Conscription referendum'),\n", " (18, 11, 0, 'Postponed 8-hour-day procession')\n", " ],\n", " '1945': [\n", " (9, 5, 0, 'VE Day')\n", " ],\n", " '1946': [\n", " (10, 6, 0, 'Victory Day')\n", " ]\n", "}\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Process and combine holidays for a given year" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "def not_on_sunday(day, month, year):\n", " '''\n", " If these holidays fall on a Sunday the holiday is the following Monday.\n", " Additionally if Boxing Day is a Monday the holiday is Tuesday.\n", " '''\n", " date = datetime.date(year, month, day)\n", " #print(f'Was {days[date.weekday()]}, {date}')\n", " if date.weekday() == 6:\n", " date = date.replace(day=day+1)\n", " elif day == 26 and month == 12 and date.weekday() == 0:\n", " date = date.replace(day=day+1)\n", " #print(f'Now {days[date.weekday()]}, {date}')\n", " return date\n", " \n", "def always_on_monday(day, month, year):\n", " '''\n", " If these days are not a Monday, the holiday is the following Monday\n", " '''\n", " days = list(calendar.day_name)\n", " date = arrow.get(year, month, day)\n", " #print(f'Was {days[date.weekday()]}, {date}')\n", " if date.weekday() != 0:\n", " add = 7 - date.weekday()\n", " date = date.shift(days=+add)\n", " #print(f'Now {days[date.weekday()]}, {date}')\n", " return date.date()\n", "\n", "def get_dates(holiday_list, year):\n", " '''\n", " Get holiday dates for the specified year from one of the lists above.\n", " '''\n", " for key, dates in holiday_list.items():\n", " years = key.split('_')\n", " years = [int(y) for y in years]\n", " if len(years) == 2:\n", " years = list(range(years[0], years[1] + 1))\n", " if year in years:\n", " return dates\n", " return []\n", "\n", "def get_holidays(year):\n", " '''\n", " Get all holiday dates for the specified year, combining the lists above and Easter,\n", " and shifting the dates as required.\n", " '''\n", " general = get_dates(general_holidays, year)\n", " royal = get_dates(royal_holidays, year)\n", " other = get_dates(other_holidays, year)\n", " holiday_dates = [*general, *royal, *other]\n", " holidays = []\n", " for day, month, htype, hname in holiday_dates:\n", " if htype == 0:\n", " hdate = datetime.date(year, month, day)\n", " elif htype == 1:\n", " hdate = not_on_sunday(day, month, year)\n", " elif htype == 2:\n", " hdate = always_on_monday(day, month, year)\n", " holidays.append((hdate, hname))\n", " holidays += easter_dates[year]\n", " return holidays" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(datetime.date(1929, 1, 1), 'New Years day'),\n", " (datetime.date(1929, 12, 25), 'Christmas Day'),\n", " (datetime.date(1929, 12, 26), 'Boxing Day'),\n", " (datetime.date(1929, 1, 26), 'Anniversary Day'),\n", " (datetime.date(1929, 4, 25), 'Anzac Day'),\n", " (datetime.date(1929, 8, 5), 'Bank Holiday'),\n", " (datetime.date(1929, 10, 7), 'Labour Day'),\n", " (datetime.date(1929, 6, 3), \"King's Birthday\"),\n", " (datetime.date(1929, 3, 29), 'Good Friday'),\n", " (datetime.date(1929, 3, 30), 'Easter Saturday'),\n", " (datetime.date(1929, 4, 1), 'Easter Monday')]" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get all holidays for 1929\n", "get_holidays(1929)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1938-06-13\n", "1939-06-12\n", "1940-06-10\n", "1941-06-09\n", "1942-06-15\n", "1943-06-14\n", "1944-06-12\n", "1945-06-11\n", "1946-06-10\n", "1947-06-09\n", "1948-06-14\n", "1949-06-13\n", "1950-06-12\n" ] } ], "source": [ "for year in list(range(1938, 1951)):\n", " date = always_on_monday(9, 6, year)\n", " print(date)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Display holidays 1900 to 1950" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "1900\n", "\t1 January 1900 (New Years day)\n", "\t26 January 1900 (Anniversary Day)\n", "\t13 April 1900 (Good Friday)\n", "\t14 April 1900 (Easter Saturday)\n", "\t16 April 1900 (Easter Monday)\n", "\t25 May 1900 (Queen's Birthday)\n", "\t6 August 1900 (Bank Holiday)\n", "\t1 October 1900 (Labour Day)\n", "\t12 November 1900 (Prince of Wales's Birthday)\n", "\t25 December 1900 (Christmas Day)\n", "\t26 December 1900 (Boxing Day)\n", "\n", "1901\n", "\t1 January 1901 (New Years day)\n", "\t2 February 1901 (Day of Mourning for Queen)\n", "\t5 April 1901 (Good Friday)\n", "\t6 April 1901 (Easter Saturday)\n", "\t8 April 1901 (Easter Monday)\n", "\t27 May 1901 (Visit of the Duke of Cornwall)\n", "\t28 May 1901 (Visit of the Duke of Cornwall)\n", "\t3 June 1901 (Prince of Wales's Birthday)\n", "\t3 July 1901 (Polling day)\n", "\t5 August 1901 (Bank Holiday)\n", "\t7 October 1901 (Labour Day)\n", "\t11 November 1901 (King's Birthday)\n", "\t25 December 1901 (Christmas Day)\n", "\t26 December 1901 (Boxing Day)\n", "\n", "1902\n", "\t1 January 1902 (New Years day)\n", "\t27 January 1902 (Anniversary Day)\n", "\t28 March 1902 (Good Friday)\n", "\t29 March 1902 (Easter Saturday)\n", "\t31 March 1902 (Easter Monday)\n", "\t9 June 1902 (Prince of Wales's Birthday)\n", "\t4 August 1902 (Bank Holiday)\n", "\t6 October 1902 (Labour Day)\n", "\t10 November 1902 (King's Birthday)\n", "\t25 December 1902 (Christmas Day)\n", "\t26 December 1902 (Boxing Day)\n", "\n", "1903\n", "\t1 January 1903 (New Years day)\n", "\t26 January 1903 (Anniversary Day)\n", "\t10 April 1903 (Good Friday)\n", "\t11 April 1903 (Easter Saturday)\n", "\t13 April 1903 (Easter Monday)\n", "\t8 June 1903 (Prince of Wales's Birthday)\n", "\t3 August 1903 (Bank Holiday)\n", "\t5 October 1903 (Labour Day)\n", "\t9 November 1903 (King's Birthday)\n", "\t25 December 1903 (Christmas Day)\n", "\t26 December 1903 (Boxing Day)\n", "\n", "1904\n", "\t1 January 1904 (New Years day)\n", "\t26 January 1904 (Anniversary Day)\n", "\t1 April 1904 (Good Friday)\n", "\t2 April 1904 (Easter Saturday)\n", "\t4 April 1904 (Easter Monday)\n", "\t6 June 1904 (Prince of Wales's Birthday)\n", "\t1 August 1904 (Bank Holiday)\n", "\t3 October 1904 (Labour Day)\n", "\t14 November 1904 (King's Birthday)\n", "\t26 December 1904 (Christmas Day)\n", "\t27 December 1904 (Boxing Day)\n", "\n", "1905\n", "\t2 January 1905 (New Years day)\n", "\t30 January 1905 (Anniversary Day)\n", "\t21 April 1905 (Good Friday)\n", "\t22 April 1905 (Easter Saturday)\n", "\t24 April 1905 (Easter Monday)\n", "\t5 June 1905 (Prince of Wales's Birthday)\n", "\t7 August 1905 (Bank Holiday)\n", "\t2 October 1905 (Labour Day)\n", "\t13 November 1905 (King's Birthday)\n", "\t25 December 1905 (Christmas Day)\n", "\t26 December 1905 (Boxing Day)\n", "\n", "1906\n", "\t1 January 1906 (New Years day)\n", "\t26 January 1906 (Anniversary Day)\n", "\t13 April 1906 (Good Friday)\n", "\t14 April 1906 (Easter Saturday)\n", "\t16 April 1906 (Easter Monday)\n", "\t4 June 1906 (Prince of Wales's Birthday)\n", "\t6 August 1906 (Bank Holiday)\n", "\t1 October 1906 (Labour Day)\n", "\t12 November 1906 (King's Birthday)\n", "\t25 December 1906 (Christmas Day)\n", "\t26 December 1906 (Boxing Day)\n", "\n", "1907\n", "\t1 January 1907 (New Years day)\n", "\t26 January 1907 (Anniversary Day)\n", "\t29 March 1907 (Good Friday)\n", "\t30 March 1907 (Easter Saturday)\n", "\t1 April 1907 (Easter Monday)\n", "\t3 June 1907 (Prince of Wales's Birthday)\n", "\t5 August 1907 (Bank Holiday)\n", "\t7 October 1907 (Labour Day)\n", "\t11 November 1907 (King's Birthday)\n", "\t25 December 1907 (Christmas Day)\n", "\t26 December 1907 (Boxing Day)\n", "\n", "1908\n", "\t1 January 1908 (New Years day)\n", "\t27 January 1908 (Anniversary Day)\n", "\t17 April 1908 (Good Friday)\n", "\t18 April 1908 (Easter Saturday)\n", "\t20 April 1908 (Easter Monday)\n", "\t8 June 1908 (Prince of Wales's Birthday)\n", "\t3 August 1908 (Bank Holiday)\n", "\t20 August 1908 (Visit of the American Fleet)\n", "\t24 August 1908 (Visit of the American Fleet)\n", "\t5 October 1908 (Labour Day)\n", "\t9 November 1908 (King's Birthday)\n", "\t25 December 1908 (Christmas Day)\n", "\t26 December 1908 (Boxing Day)\n", "\n", "1909\n", "\t1 January 1909 (New Years day)\n", "\t26 January 1909 (Anniversary Day)\n", "\t9 April 1909 (Good Friday)\n", "\t10 April 1909 (Easter Saturday)\n", "\t12 April 1909 (Easter Monday)\n", "\t7 June 1909 (Prince of Wales's Birthday)\n", "\t2 August 1909 (Bank Holiday)\n", "\t4 October 1909 (Labour Day)\n", "\t15 November 1909 (King's Birthday)\n", "\t25 December 1909 (Christmas Day)\n", "\t27 December 1909 (Boxing Day)\n", "\n", "1910\n", "\t1 January 1910 (New Years day)\n", "\t26 January 1910 (Anniversary Day)\n", "\t25 March 1910 (Good Friday)\n", "\t26 March 1910 (Easter Saturday)\n", "\t28 March 1910 (Easter Monday)\n", "\t20 May 1910 (Day of Mourning for King)\n", "\t6 June 1910 (King's Birthday)\n", "\t27 June 1910 (Prince of Wales's Birthday)\n", "\t1 August 1910 (Bank Holiday)\n", "\t3 October 1910 (Labour Day)\n", "\t26 December 1910 (Christmas Day)\n", "\t27 December 1910 (Boxing Day)\n", "\n", "1911\n", "\t2 January 1911 (New Years day)\n", "\t26 January 1911 (Anniversary Day)\n", "\t14 April 1911 (Good Friday)\n", "\t15 April 1911 (Easter Saturday)\n", "\t17 April 1911 (Easter Monday)\n", "\t3 June 1911 (King's Birthday)\n", "\t22 June 1911 (Coronation)\n", "\t7 August 1911 (Bank Holiday)\n", "\t22 August 1911 (Prince of Wales's Birthday)\n", "\t2 October 1911 (Labour Day)\n", "\t25 December 1911 (Christmas Day)\n", "\t26 December 1911 (Boxing Day)\n", "\n", "1912\n", "\t1 January 1912 (New Years day)\n", "\t26 January 1912 (Anniversary Day)\n", "\t5 April 1912 (Good Friday)\n", "\t6 April 1912 (Easter Saturday)\n", "\t8 April 1912 (Easter Monday)\n", "\t3 June 1912 (King's Birthday)\n", "\t24 June 1912 (Prince of Wales's Birthday)\n", "\t5 August 1912 (Bank Holiday)\n", "\t7 October 1912 (Labour Day)\n", "\t25 December 1912 (Christmas Day)\n", "\t26 December 1912 (Boxing Day)\n", "\n", "1913\n", "\t1 January 1913 (New Years day)\n", "\t27 January 1913 (Anniversary Day)\n", "\t21 March 1913 (Good Friday)\n", "\t22 March 1913 (Easter Saturday)\n", "\t24 March 1913 (Easter Monday)\n", "\t9 June 1913 (King's Birthday)\n", "\t23 June 1913 (Prince of Wales's Birthday)\n", "\t4 August 1913 (Bank Holiday)\n", "\t6 October 1913 (Labour Day)\n", "\t25 December 1913 (Christmas Day)\n", "\t26 December 1913 (Boxing Day)\n", "\n", "1914\n", "\t1 January 1914 (New Years day)\n", "\t26 January 1914 (Anniversary Day)\n", "\t10 April 1914 (Good Friday)\n", "\t11 April 1914 (Easter Saturday)\n", "\t13 April 1914 (Easter Monday)\n", "\t8 June 1914 (King's Birthday)\n", "\t29 June 1914 (Prince of Wales's Birthday)\n", "\t3 August 1914 (Bank Holiday)\n", "\t5 October 1914 (Labour Day)\n", "\t25 December 1914 (Christmas Day)\n", "\t26 December 1914 (Boxing Day)\n", "\n", "1915\n", "\t1 January 1915 (New Years day)\n", "\t26 January 1915 (Anniversary Day)\n", "\t2 April 1915 (Good Friday)\n", "\t3 April 1915 (Easter Saturday)\n", "\t5 April 1915 (Easter Monday)\n", "\t24 May 1915 (Empire Day)\n", "\t7 June 1915 (King's Birthday)\n", "\t28 June 1915 (Prince of Wales's Birthday)\n", "\t2 August 1915 (Bank Holiday)\n", "\t4 October 1915 (Labour Day)\n", "\t25 December 1915 (Christmas Day)\n", "\t27 December 1915 (Boxing Day)\n", "\n", "1916\n", "\t1 January 1916 (New Years day)\n", "\t26 January 1916 (Anniversary Day)\n", "\t21 April 1916 (Good Friday)\n", "\t22 April 1916 (Easter Saturday)\n", "\t24 April 1916 (Easter Monday)\n", "\t5 June 1916 (King's Birthday)\n", "\t26 June 1916 (Prince of Wales's Birthday)\n", "\t7 August 1916 (Bank Holiday)\n", "\t2 October 1916 (Labour Day)\n", "\t28 October 1916 (Conscription referendum)\n", "\t18 November 1916 (Postponed 8-hour-day procession)\n", "\t25 December 1916 (Christmas Day)\n", "\t26 December 1916 (Boxing Day)\n", "\n", "1917\n", "\t1 January 1917 (New Years day)\n", "\t26 January 1917 (Anniversary Day)\n", "\t6 April 1917 (Good Friday)\n", "\t7 April 1917 (Easter Saturday)\n", "\t9 April 1917 (Easter Monday)\n", "\t4 June 1917 (King's Birthday)\n", "\t25 June 1917 (Prince of Wales's Birthday)\n", "\t6 August 1917 (Bank Holiday)\n", "\t1 October 1917 (Labour Day)\n", "\t25 December 1917 (Christmas Day)\n", "\t26 December 1917 (Boxing Day)\n", "\n", "1918\n", "\t1 January 1918 (New Years day)\n", "\t26 January 1918 (Anniversary Day)\n", "\t29 March 1918 (Good Friday)\n", "\t30 March 1918 (Easter Saturday)\n", "\t1 April 1918 (Easter Monday)\n", "\t3 June 1918 (King's Birthday)\n", "\t24 June 1918 (Prince of Wales's Birthday)\n", "\t5 August 1918 (Bank Holiday)\n", "\t7 October 1918 (Labour Day)\n", "\t25 December 1918 (Christmas Day)\n", "\t26 December 1918 (Boxing Day)\n", "\n", "1919\n", "\t1 January 1919 (New Years day)\n", "\t27 January 1919 (Anniversary Day)\n", "\t18 April 1919 (Good Friday)\n", "\t19 April 1919 (Easter Saturday)\n", "\t21 April 1919 (Easter Monday)\n", "\t9 June 1919 (King's Birthday)\n", "\t23 June 1919 (Prince of Wales's Birthday)\n", "\t4 August 1919 (Bank Holiday)\n", "\t6 October 1919 (Labour Day)\n", "\t25 December 1919 (Christmas Day)\n", "\t26 December 1919 (Boxing Day)\n", "\n", "1920\n", "\t1 January 1920 (New Years day)\n", "\t26 January 1920 (Anniversary Day)\n", "\t2 April 1920 (Good Friday)\n", "\t3 April 1920 (Easter Saturday)\n", "\t5 April 1920 (Easter Monday)\n", "\t16 June 1920 (Prince of Wales's Visit)\n", "\t17 June 1920 (Prince of Wales's Visit)\n", "\t2 August 1920 (Bank Holiday)\n", "\t4 October 1920 (Labour Day)\n", "\t25 December 1920 (Christmas Day)\n", "\t27 December 1920 (Boxing Day)\n", "\n", "1921\n", "\t1 January 1921 (New Years day)\n", "\t26 January 1921 (Anniversary Day)\n", "\t25 March 1921 (Good Friday)\n", "\t26 March 1921 (Easter Saturday)\n", "\t28 March 1921 (Easter Monday)\n", "\t6 June 1921 (King's Birthday)\n", "\t27 June 1921 (Prince of Wales's Birthday)\n", "\t1 August 1921 (Bank Holiday)\n", "\t3 October 1921 (Labour Day)\n", "\t26 December 1921 (Christmas Day)\n", "\t27 December 1921 (Boxing Day)\n", "\n", "1922\n", "\t2 January 1922 (New Years day)\n", "\t26 January 1922 (Anniversary Day)\n", "\t14 April 1922 (Good Friday)\n", "\t15 April 1922 (Easter Saturday)\n", "\t17 April 1922 (Easter Monday)\n", "\t25 April 1922 (Anzac Day)\n", "\t5 June 1922 (King's Birthday)\n", "\t26 June 1922 (Prince of Wales's Birthday)\n", "\t7 August 1922 (Bank Holiday)\n", "\t2 October 1922 (Labour Day)\n", "\t25 December 1922 (Christmas Day)\n", "\t26 December 1922 (Boxing Day)\n", "\n", "1923\n", "\t1 January 1923 (New Years day)\n", "\t26 January 1923 (Anniversary Day)\n", "\t30 March 1923 (Good Friday)\n", "\t31 March 1923 (Easter Saturday)\n", "\t2 April 1923 (Easter Monday)\n", "\t25 April 1923 (Anzac Day)\n", "\t4 June 1923 (King's Birthday)\n", "\t25 June 1923 (Prince of Wales's Birthday)\n", "\t6 August 1923 (Bank Holiday)\n", "\t1 October 1923 (Labour Day)\n", "\t25 December 1923 (Christmas Day)\n", "\t26 December 1923 (Boxing Day)\n", "\n", "1924\n", "\t1 January 1924 (New Years day)\n", "\t26 January 1924 (Anniversary Day)\n", "\t18 April 1924 (Good Friday)\n", "\t19 April 1924 (Easter Saturday)\n", "\t21 April 1924 (Easter Monday)\n", "\t25 April 1924 (Anzac Day)\n", "\t9 June 1924 (King's Birthday)\n", "\t23 June 1924 (Prince of Wales's Birthday)\n", "\t4 August 1924 (Bank Holiday)\n", "\t6 October 1924 (Labour Day)\n", "\t25 December 1924 (Christmas Day)\n", "\t26 December 1924 (Boxing Day)\n", "\n", "1925\n", "\t1 January 1925 (New Years day)\n", "\t26 January 1925 (Anniversary Day)\n", "\t10 April 1925 (Good Friday)\n", "\t11 April 1925 (Easter Saturday)\n", "\t13 April 1925 (Easter Monday)\n", "\t25 April 1925 (Anzac Day)\n", "\t8 June 1925 (King's Birthday)\n", "\t3 August 1925 (Bank Holiday)\n", "\t5 October 1925 (Labour Day)\n", "\t25 December 1925 (Christmas Day)\n", "\t26 December 1925 (Boxing Day)\n", "\n", "1926\n", "\t1 January 1926 (New Years day)\n", "\t26 January 1926 (Anniversary Day)\n", "\t2 April 1926 (Good Friday)\n", "\t3 April 1926 (Easter Saturday)\n", "\t5 April 1926 (Easter Monday)\n", "\t26 April 1926 (Anzac Day)\n", "\t7 June 1926 (King's Birthday)\n", "\t2 August 1926 (Bank Holiday)\n", "\t4 October 1926 (Labour Day)\n", "\t25 December 1926 (Christmas Day)\n", "\t27 December 1926 (Boxing Day)\n", "\n", "1927\n", "\t1 January 1927 (New Years day)\n", "\t26 January 1927 (Anniversary Day)\n", "\t15 April 1927 (Good Friday)\n", "\t16 April 1927 (Easter Saturday)\n", "\t18 April 1927 (Easter Monday)\n", "\t25 April 1927 (Anzac Day)\n", "\t6 June 1927 (King's Birthday)\n", "\t1 August 1927 (Bank Holiday)\n", "\t3 October 1927 (Labour Day)\n", "\t26 December 1927 (Christmas Day)\n", "\t27 December 1927 (Boxing Day)\n", "\n", "1928\n", "\t2 January 1928 (New Years day)\n", "\t26 January 1928 (Anniversary Day)\n", "\t6 April 1928 (Good Friday)\n", "\t7 April 1928 (Easter Saturday)\n", "\t9 April 1928 (Easter Monday)\n", "\t25 April 1928 (Anzac Day)\n", "\t4 June 1928 (King's Birthday)\n", "\t6 August 1928 (Bank Holiday)\n", "\t1 October 1928 (Labour Day)\n", "\t25 December 1928 (Christmas Day)\n", "\t26 December 1928 (Boxing Day)\n", "\n", "1929\n", "\t1 January 1929 (New Years day)\n", "\t26 January 1929 (Anniversary Day)\n", "\t29 March 1929 (Good Friday)\n", "\t30 March 1929 (Easter Saturday)\n", "\t1 April 1929 (Easter Monday)\n", "\t25 April 1929 (Anzac Day)\n", "\t3 June 1929 (King's Birthday)\n", "\t5 August 1929 (Bank Holiday)\n", "\t7 October 1929 (Labour Day)\n", "\t25 December 1929 (Christmas Day)\n", "\t26 December 1929 (Boxing Day)\n", "\n", "1930\n", "\t1 January 1930 (New Years day)\n", "\t27 January 1930 (Anniversary Day)\n", "\t18 April 1930 (Good Friday)\n", "\t19 April 1930 (Easter Saturday)\n", "\t21 April 1930 (Easter Monday)\n", "\t25 April 1930 (Anzac Day)\n", "\t9 June 1930 (King's Birthday)\n", "\t4 August 1930 (Bank Holiday)\n", "\t6 October 1930 (Labour Day)\n", "\t25 December 1930 (Christmas Day)\n", "\t26 December 1930 (Boxing Day)\n", "\n", "1931\n", "\t1 January 1931 (New Years day)\n", "\t26 January 1931 (Anniversary Day)\n", "\t3 April 1931 (Good Friday)\n", "\t4 April 1931 (Easter Saturday)\n", "\t6 April 1931 (Easter Monday)\n", "\t25 April 1931 (Anzac Day)\n", "\t8 June 1931 (King's Birthday)\n", "\t3 August 1931 (Bank Holiday)\n", "\t5 October 1931 (Labour Day)\n", "\t25 December 1931 (Christmas Day)\n", "\t26 December 1931 (Boxing Day)\n", "\n", "1932\n", "\t1 January 1932 (New Years day)\n", "\t26 January 1932 (Anniversary Day)\n", "\t25 March 1932 (Good Friday)\n", "\t26 March 1932 (Easter Saturday)\n", "\t28 March 1932 (Easter Monday)\n", "\t25 April 1932 (Anzac Day)\n", "\t6 June 1932 (King's Birthday)\n", "\t1 August 1932 (Bank Holiday)\n", "\t3 October 1932 (Labour Day)\n", "\t26 December 1932 (Christmas Day)\n", "\t27 December 1932 (Boxing Day)\n", "\n", "1933\n", "\t2 January 1933 (New Years day)\n", "\t26 January 1933 (Anniversary Day)\n", "\t14 April 1933 (Good Friday)\n", "\t15 April 1933 (Easter Saturday)\n", "\t17 April 1933 (Easter Monday)\n", "\t25 April 1933 (Anzac Day)\n", "\t5 June 1933 (King's Birthday)\n", "\t7 August 1933 (Bank Holiday)\n", "\t2 October 1933 (Labour Day)\n", "\t25 December 1933 (Christmas Day)\n", "\t26 December 1933 (Boxing Day)\n", "\n", "1934\n", "\t1 January 1934 (New Years day)\n", "\t26 January 1934 (Anniversary Day)\n", "\t30 March 1934 (Good Friday)\n", "\t31 March 1934 (Easter Saturday)\n", "\t2 April 1934 (Easter Monday)\n", "\t25 April 1934 (Anzac Day)\n", "\t4 June 1934 (King's Birthday)\n", "\t6 August 1934 (Bank Holiday)\n", "\t1 October 1934 (Labour Day)\n", "\t25 December 1934 (Christmas Day)\n", "\t26 December 1934 (Boxing Day)\n", "\n", "1935\n", "\t1 January 1935 (New Years day)\n", "\t28 January 1935 (Anniversary Day)\n", "\t19 April 1935 (Good Friday)\n", "\t20 April 1935 (Easter Saturday)\n", "\t22 April 1935 (Easter Monday)\n", "\t25 April 1935 (Anzac Day)\n", "\t3 June 1935 (King's Birthday)\n", "\t5 August 1935 (Bank Holiday)\n", "\t7 October 1935 (Labour Day)\n", "\t25 December 1935 (Christmas Day)\n", "\t26 December 1935 (Boxing Day)\n", "\n", "1936\n", "\t1 January 1936 (New Years day)\n", "\t27 January 1936 (Anniversary Day)\n", "\t10 April 1936 (Good Friday)\n", "\t11 April 1936 (Easter Saturday)\n", "\t13 April 1936 (Easter Monday)\n", "\t25 April 1936 (Anzac Day)\n", "\t29 June 1936 (King's Birthday)\n", "\t3 August 1936 (Bank Holiday)\n", "\t5 October 1936 (Labour Day)\n", "\t25 December 1936 (Christmas Day)\n", "\t26 December 1936 (Boxing Day)\n", "\n", "1937\n", "\t1 January 1937 (New Years day)\n", "\t1 February 1937 (Anniversary Day)\n", "\t26 March 1937 (Good Friday)\n", "\t27 March 1937 (Easter Saturday)\n", "\t29 March 1937 (Easter Monday)\n", "\t26 April 1937 (Anzac Day)\n", "\t12 May 1937 (Coronation)\n", "\t2 August 1937 (Bank Holiday)\n", "\t4 October 1937 (Labour Day)\n", "\t25 December 1937 (Christmas Day)\n", "\t27 December 1937 (Boxing Day)\n", "\n", "1938\n", "\t1 January 1938 (New Years day)\n", "\t26 January 1938 (Anniversary Day)\n", "\t15 April 1938 (Good Friday)\n", "\t16 April 1938 (Easter Saturday)\n", "\t18 April 1938 (Easter Monday)\n", "\t25 April 1938 (Anzac Day)\n", "\t13 June 1938 (King's Birthday)\n", "\t1 August 1938 (Bank Holiday)\n", "\t3 October 1938 (Labour Day)\n", "\t26 December 1938 (Christmas Day)\n", "\t27 December 1938 (Boxing Day)\n", "\n", "1939\n", "\t2 January 1939 (New Years day)\n", "\t30 January 1939 (Anniversary Day)\n", "\t7 April 1939 (Good Friday)\n", "\t8 April 1939 (Easter Saturday)\n", "\t10 April 1939 (Easter Monday)\n", "\t25 April 1939 (Anzac Day)\n", "\t12 June 1939 (King's Birthday)\n", "\t7 August 1939 (Bank Holiday)\n", "\t2 October 1939 (Labour Day)\n", "\t25 December 1939 (Christmas Day)\n", "\t26 December 1939 (Boxing Day)\n", "\n", "1940\n", "\t1 January 1940 (New Years day)\n", "\t29 January 1940 (Anniversary Day)\n", "\t22 March 1940 (Good Friday)\n", "\t23 March 1940 (Easter Saturday)\n", "\t25 March 1940 (Easter Monday)\n", "\t25 April 1940 (Anzac Day)\n", "\t17 June 1940 (King's Birthday)\n", "\t7 October 1940 (Labour Day)\n", "\t25 December 1940 (Christmas Day)\n", "\t26 December 1940 (Boxing Day)\n", "\n", "1941\n", "\t1 January 1941 (New Years day)\n", "\t27 January 1941 (Anniversary Day)\n", "\t11 April 1941 (Good Friday)\n", "\t12 April 1941 (Easter Saturday)\n", "\t14 April 1941 (Easter Monday)\n", "\t25 April 1941 (Anzac Day)\n", "\t16 June 1941 (King's Birthday)\n", "\t4 August 1941 (Bank Holiday)\n", "\t6 October 1941 (Labour Day)\n", "\t25 December 1941 (Christmas Day)\n", "\t26 December 1941 (Boxing Day)\n", "\n", "1942\n", "\t1 January 1942 (New Years day)\n", "\t26 January 1942 (Anniversary Day)\n", "\t3 April 1942 (Good Friday)\n", "\t4 April 1942 (Easter Saturday)\n", "\t25 April 1942 (Anzac Day)\n", "\t15 June 1942 (King's Birthday)\n", "\t3 August 1942 (Bank Holiday)\n", "\t5 October 1942 (Labour Day)\n", "\t25 December 1942 (Christmas Day)\n", "\t26 December 1942 (Boxing Day)\n", "\t28 December 1942 (In place of New Years Day)\n", "\n", "1943\n", "\t26 January 1943 (Anniversary Day)\n", "\t23 April 1943 (Good Friday)\n", "\t24 April 1943 (Easter Saturday)\n", "\t26 April 1943 (Anzac Day)\n", "\t26 April 1943 (Easter Monday)\n", "\t7 June 1943 (King's Birthday)\n", "\t2 August 1943 (Bank Holiday)\n", "\t4 October 1943 (Labour Day)\n", "\t25 December 1943 (Christmas Day)\n", "\t27 December 1943 (Boxing Day)\n", "\n", "1944\n", "\t1 January 1944 (New Years day)\n", "\t31 January 1944 (Anniversary Day)\n", "\t7 April 1944 (Good Friday)\n", "\t8 April 1944 (Easter Saturday)\n", "\t10 April 1944 (Easter Monday)\n", "\t25 April 1944 (Anzac Day)\n", "\t12 June 1944 (King's Birthday)\n", "\t7 August 1944 (Bank Holiday)\n", "\t2 October 1944 (Labour Day)\n", "\t25 December 1944 (Christmas Day)\n", "\t26 December 1944 (Boxing Day)\n", "\n", "1945\n", "\t1 January 1945 (New Years day)\n", "\t29 January 1945 (Anniversary Day)\n", "\t30 March 1945 (Good Friday)\n", "\t31 March 1945 (Easter Saturday)\n", "\t2 April 1945 (Easter Monday)\n", "\t25 April 1945 (Anzac Day)\n", "\t9 May 1945 (VE Day)\n", "\t18 June 1945 (King's Birthday)\n", "\t6 August 1945 (Bank Holiday)\n", "\t1 October 1945 (Labour Day)\n", "\t25 December 1945 (Christmas Day)\n", "\t26 December 1945 (Boxing Day)\n", "\n", "1946\n", "\t1 January 1946 (New Years day)\n", "\t28 January 1946 (Anniversary Day)\n", "\t19 April 1946 (Good Friday)\n", "\t20 April 1946 (Easter Saturday)\n", "\t22 April 1946 (Easter Monday)\n", "\t25 April 1946 (Anzac Day)\n", "\t10 June 1946 (Victory Day)\n", "\t17 June 1946 (King's Birthday)\n", "\t5 August 1946 (Bank Holiday)\n", "\t7 October 1946 (Labour Day)\n", "\t25 December 1946 (Christmas Day)\n", "\t26 December 1946 (Boxing Day)\n", "\n", "1947\n", "\t1 January 1947 (New Years day)\n", "\t27 January 1947 (Anniversary Day)\n", "\t4 April 1947 (Good Friday)\n", "\t5 April 1947 (Easter Saturday)\n", "\t7 April 1947 (Easter Monday)\n", "\t25 April 1947 (Anzac Day)\n", "\t16 June 1947 (King's Birthday)\n", "\t4 August 1947 (Bank Holiday)\n", "\t6 October 1947 (Labour Day)\n", "\t25 December 1947 (Christmas Day)\n", "\t26 December 1947 (Boxing Day)\n", "\n", "1948\n", "\t1 January 1948 (New Years day)\n", "\t26 January 1948 (Anniversary Day)\n", "\t26 March 1948 (Good Friday)\n", "\t27 March 1948 (Easter Saturday)\n", "\t29 March 1948 (Easter Monday)\n", "\t26 April 1948 (Anzac Day)\n", "\t14 June 1948 (King's Birthday)\n", "\t2 August 1948 (Bank Holiday)\n", "\t4 October 1948 (Labour Day)\n", "\t25 December 1948 (Christmas Day)\n", "\t27 December 1948 (Boxing Day)\n", "\n", "1949\n", "\t1 January 1949 (New Years day)\n", "\t31 January 1949 (Anniversary Day)\n", "\t15 April 1949 (Good Friday)\n", "\t16 April 1949 (Easter Saturday)\n", "\t18 April 1949 (Easter Monday)\n", "\t25 April 1949 (Anzac Day)\n", "\t13 June 1949 (King's Birthday)\n", "\t1 August 1949 (Bank Holiday)\n", "\t3 October 1949 (Labour Day)\n", "\t26 December 1949 (Christmas Day)\n", "\t27 December 1949 (Boxing Day)\n", "\n", "1950\n", "\t2 January 1950 (New Years day)\n", "\t30 January 1950 (Anniversary Day)\n", "\t7 April 1950 (Good Friday)\n", "\t8 April 1950 (Easter Saturday)\n", "\t10 April 1950 (Easter Monday)\n", "\t25 April 1950 (Anzac Day)\n", "\t12 June 1950 (King's Birthday)\n", "\t7 August 1950 (Bank Holiday)\n", "\t2 October 1950 (Labour Day)\n", "\t25 December 1950 (Christmas Day)\n", "\t26 December 1950 (Boxing Day)\n" ] } ], "source": [ "for year in range(1900, 1951):\n", " holidays = sorted(get_holidays(year))\n", " print(f'\\n{year}')\n", " for d, h in holidays:\n", " print(f'\\t{arrow.get(d).format(\"D MMMM YYYY\")} ({h})')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Save holidays 1900 to 1950 as a CSV" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yeardateholiday
019001900-01-01New Years day
119001900-01-26Anniversary Day
219001900-04-13Good Friday
319001900-04-14Easter Saturday
419001900-04-16Easter Monday
\n", "
" ], "text/plain": [ " year date holiday\n", "0 1900 1900-01-01 New Years day\n", "1 1900 1900-01-26 Anniversary Day\n", "2 1900 1900-04-13 Good Friday\n", "3 1900 1900-04-14 Easter Saturday\n", "4 1900 1900-04-16 Easter Monday" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "holidays_1900_1950 = []\n", "\n", "# Loop through years collecting holidays\n", "for year in range(1900, 1951):\n", " holidays = sorted(get_holidays(year))\n", " for d, h in holidays:\n", " holidays_1900_1950.append({'year': year, 'date': d, 'holiday': h})\n", " \n", "# Convert to a dataframe\n", "df_holidays = pd.DataFrame(holidays_1900_1950)\n", "df_holidays.head() " ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/html": [ "nsw_holidays_1900_1950.csv
" ], "text/plain": [ "/Volumes/Workspace/mycode/stock-exchange/notebooks/nsw_holidays_1900_1950.csv" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Save as CSV\n", "df_holidays.to_csv('nsw_holidays_1900_1950.csv', index=False)\n", "display(FileLink('nsw_holidays_1900_1950.csv'))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 4 }