From ae5a97a677dd2f3b92672b0f4f38d84fc53f8b86 Mon Sep 17 00:00:00 2001 From: Jonathan Hodgson Date: Thu, 19 Nov 2020 14:35:28 +0000 Subject: [PATCH] REM: Changes to uk hollidays Omits bank hollidays Re-structured dates around crhistmas Adds some dates such as black friday --- remind/.local/share/remind/uk-hollidays.rem | 105 +++++++++++++------- 1 file changed, 68 insertions(+), 37 deletions(-) diff --git a/remind/.local/share/remind/uk-hollidays.rem b/remind/.local/share/remind/uk-hollidays.rem index 7df0620a..2b07eaed 100644 --- a/remind/.local/share/remind/uk-hollidays.rem +++ b/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