REM: Changes to uk hollidays

Omits bank hollidays

Re-structured dates around crhistmas

Adds some dates such as black friday
Jonathan Hodgson 4 years ago
parent 85e1755799
commit 142b72fbd2
  1. 105
      remind/.local/share/remind/uk-hollidays.rem

@ -1,25 +1,21 @@
####################
# Notes #
####################
# For some reason, Omit doesn't like having a day in it's definition.
# You can get around this limitation by using REM without a message.
# If the rem has `SATISFY 1` in its definition, it will always be run and Trigdate
# will be set.
# You can then use Trigdate (or %T) in the omit definition
# https://blog.thechases.com/posts/remind/#omit-weekdays
####################
# New Year #
####################
# New Year is always January 1st
REM 01 Jan MSG New Year's Day
OMIT 01 Jan MSG New Year's Day
# Although, there will be a bank holliday on the following monday if
# new years day is on a weekend
REM 02 Jan [YEAR(CURRENT())] THROUGH 03 Jan [YEAR(CURRENT())] SATISFY [$Uw == 1] MSG New Year's Bank Holiday
####################
# Simple #
####################
# Early May bank holliday is the first Monday in May
REM Mon 1 May MSG Early May Bank Holiday
# Spring bank holiday is the last Monday in May
# (7 days before first Monday in June)
REM Mon 1 Jun --7 MSG Spring Bank Holiday (Whitsun)
# Summer bank holiday is the last Monday in May
# (7 days before first Monday in June)
REM Mon 1 Sep --7 MSG Summer Bank Holiday
OMIT 02 Jan [YEAR(CURRENT())] THROUGH 03 Jan [YEAR(CURRENT())] SATISFY [$Uw == 1] MSG New Year's Bank Holiday
####################
# Easter #
@ -27,47 +23,82 @@ REM Mon 1 Sep --7 MSG Summer Bank Holiday
# Easter is confusing, thankfully remind gives us a way to get it
SET easter EASTERDATE(YEAR(CURRENT()))
# Good Friday is always exactly 2 days before easter
REM [trigger(easter-2)] MSG Good Friday
OMIT [trigger(easter-2)] MSG Good Friday
# Easter is on easter
REM [trigger(easter)] MSG Easter Sunday
OMIT [trigger(easter)] MSG Easter Sunday
# Easter Monday is always 1 day after Easter
REM [trigger(easter+1)] MSG Easter Monday
OMIT [trigger(easter+1)] MSG Easter Monday
# Mothering Sunday is always 3 weeks before easter
# It is not a bank holliday though so don't omit it
REM [trigger(easter-21)] MSG Mothering Sunday
####################
# Christmas #
####################
# Christmas eve is always the 24th December
REM 24 Dec MSG Christmas Eve
# Christmas is always the 25th December
REM 25 Dec MSG Christmas Day
# Boxing Day is always the 26th December
REM 26 Dec MSG Boxing Day
# If Christmas day is on a Saturday, the following Monday and Tuesday will be
# substitute bank holidays for Christmas and boxing day
REM 27 Dec SATISFY [$Tw == 1] MSG Christmas Day (substitute bank holiday)
REM 28 Dec SATISFY [$Tw == 2] MSG Boxing Day (substitute bank holiday)
# If boxing day is a Saturday, the following Monday will be a bank holiday
REM 28 Dec SATISFY [$Tw == 1] MSG Boxing Day (substitute bank holiday)
# Need to look into what happens if Christmas falls on a Sunday.
# I expect Mon and Tues are both bank holidays
REM 27 Dec SATISFY [$Tw == 2 ] MSG Christmas Day (substitute bank holiday)
REM 25 Dec SCANFROM [$U - 7] SATISFY 1
set christmas trigdate()
# Christmas eve is always the 24th December
# It is not a bank holliday though
REM [christmas - 1] MSG Christmas Eve
# if Christmas fell on a Saturday
IF wkdaynum(christmas) == 6
REM [christmas] MSG Christmas Day
REM [christmas+1] MSG Boxing Day
# The following Mon and Tues will be bank hollidays
OMIT [christmas+2] MSG Christmas day (bank holliday)
OMIT [christmas+3] MSG Boxing Day (bank holliday)
ELSE
# if it fell on a Friday
IF wkdaynum(christmas) == 5
OMIT [christmas] MSG Christmas Day
REM [christmas+1] MSG Boxing Day
OMIT [christmas+3] MSG Boxing Day (bank holliday)
ELSE
# if it falls on a Sunday
IF wkdaynum(christmas) == 0
REM [christmas] MSG Christmas Day
OMIT [christmas+1] MSG Boxing Day
OMIT [christmas+2] MSG Christmas day (bank holliday)
ELSE
# otherwise, observed=actual
OMIT [christmas] MSG Christmas Day
OMIT [christmas+1] MSG Boxing Day
ENDIF
ENDIF
ENDIF
# If I don't buy an advent callender, I'll be in trouble
REM 1 Dec ++7 MSG %"Advent starts %b%"%_Have you bought an advent callender%_scratchcard advent calender is on cork board
####################
# Other Events #
####################
REM 14 Feb MSG Valentine's Day
# Valentine's day is always 14th February
REM 14 Feb ++14 MSG Valentine's Day %b
# Early May bank holliday is the first Monday in May
REM Mon 1 May SATISFY 1
OMIT [$T] MSG Early May Bank Holiday
# Spring bank holiday is the last Monday in May
# (7 days before first Monday in June)
REM Mon 1 Jun --7 SATISFY 1
OMIT [$T] MSG Spring Bank Holiday (Whitsun)
# 3rd Sunday of June
# This expression means the first Sunday after or on 15th June
REM Sun 15 Jun MSG Father's Day
# Summer bank holiday is the last Monday in May
# (7 days before first Monday in June)
REM Mon 1 Sep --7 SATISFY 1
OMIT [$T] MSG Summer Bank Holiday
# Black Friday is always the 4th Friday of November
# that is the same as saying the friday on or after the 22nd
REM Fri 22 November MSG Black Friday
####################
# Daylight Savings #
####################
# British summer time starts on the last Sunday of March
REM Sun 1 Apr --7 MSG %"Clocks Forward%" British Summer Time Starts
REM Sun 1 Apr --7 ++1 MSG %"Clocks Forward%" British Summer Time Starts
# British summer time ends on the last Sunday of October
REM Sun 1 Nov --7 MSG %"Clocks Backward%" British Summer Time Ends
REM Sun 1 Nov --7 ++1 MSG %"Clocks Backward%" British Summer Time Ends

Loading…
Cancel
Save