Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
SQL Server - Multiple holidays Model
Language:
Ada
Assembly
Bash
C#
C++ (gcc)
C++ (clang)
C++ (vc++)
C (gcc)
C (clang)
C (vc)
Client Side
Clojure
Common Lisp
D
Elixir
Erlang
F#
Fortran
Go
Haskell
Java
Javascript
Kotlin
Lua
MySql
Node.js
Ocaml
Octave
Objective-C
Oracle
Pascal
Perl
Php
PostgreSQL
Prolog
Python
Python 3
R
Rust
Ruby
Scala
Scheme
Sql Server
Swift
Tcl
Visual Basic
Layout:
Vertical
Horizontal
--Set the start of the week to Monday SET DATEFIRST 1; -------------------------------------------------------------------------------- -- Create Date Table -------------------------------------------------------------------------------- CREATE TABLE date_t ( [TheDate] DATE NOT NULL PRIMARY KEY, [IsWeekend] INT NOT NULL, [IsWeekday] INT NOT NULL ); -------------------------------------------------------------------------------- -- Create Holiday Table -------------------------------------------------------------------------------- CREATE TABLE holiday_t ( [HolidayID] BIGINT NOT NULL IDENTITY(1,1) PRIMARY KEY, [HolidayDate] DATE NOT NULL, [HolidayIsBankHoliday] INT NOT NULL, [HolidayDescription] VARCHAR(100) NULL, FOREIGN KEY ([HolidayDate]) REFERENCES date_t([TheDate]) ); CREATE INDEX DT_holiday_t ON holiday_t ([HolidayDate]) ; -------------------------------------------------------------------------------- -- Create Date list, and insert to table -------------------------------------------------------------------------------- DECLARE @DateStart DATE = DateFromParts(2009, 01, 01); -- At time of writing, in the past DECLARE @DateEnd DATE = DateFromParts(2020, 12, 31); -- At time of writing, in the future PRINT 'Start Date: ' + CONVERT(VARCHAR(10), @DateStart, 120); PRINT 'Start End: ' + CONVERT(VARCHAR(10), @DateEnd, 120); WITH number_tbl AS ( SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 ), number_sequences AS ( SELECT t1.a AS t1a, t2.a AS t2a, t3.a AS t3a, t4.a AS t4a, (t1.a + (10 * t2.a) + (100 * t3.a) + (1000 * t4.a)) AS concatenate_calculation FROM number_tbl t1 CROSS JOIN number_tbl t2 CROSS JOIN number_tbl t3 CROSS JOIN number_tbl t4 ), date_sequence AS ( SELECT CAST(DateAdd(DAY, concatenate_calculation, @DateStart) AS DATE) AS [TheDate] FROM number_sequences WHERE CAST(DateAdd(DAY, concatenate_calculation, @DateStart) AS DATE) <= @DateEnd ) INSERT INTO date_t ([TheDate], [IsWeekend], [IsWeekday]) SELECT [TheDate], CASE WHEN DatePart(dw, [TheDate]) IN (6, 7) THEN 1 ELSE 0 END AS [IsWeekend], CASE WHEN DatePart(dw, [TheDate]) IN (6, 7) THEN 0 ELSE 1 END AS [IsWeekday] FROM date_sequence ; -------------------------------------------------------------------------------- -- Create Holidays -------------------------------------------------------------------------------- INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2009-01-01', 120), '1', 'New Year''s Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2009-04-10', 120), '1', 'Good Friday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2009-04-13', 120), '1', 'Easter Monday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2009-05-04', 120), '1', 'May Day (Early May Bank Holiday)'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2009-05-25', 120), '1', 'Spring Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2009-08-31', 120), '1', 'Summer Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2009-12-25', 120), '1', 'Christmas'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2009-12-28', 120), '1', 'Boxing Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2010-01-01', 120), '1', 'New Year''s Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2010-04-02', 120), '1', 'Good Friday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2010-04-05', 120), '1', 'Easter Monday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2010-05-03', 120), '1', 'May Day (Early May Bank Holiday)'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2010-05-31', 120), '1', 'Spring Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2010-08-30', 120), '1', 'Summer Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2010-12-27', 120), '1', 'Boxing Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2010-12-28', 120), '1', 'Christmas'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2011-01-03', 120), '1', 'New Year''s Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2011-04-22', 120), '1', 'Good Friday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2011-04-25', 120), '1', 'Easter Monday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2011-05-02', 120), '1', 'May Day (Early May Bank Holiday)'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2011-05-30', 120), '1', 'Spring Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2011-08-29', 120), '1', 'Summer Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2011-12-26', 120), '1', 'Boxing Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2011-12-27', 120), '1', 'Christmas'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2012-01-02', 120), '1', 'New Year''s Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2012-04-06', 120), '1', 'Good Friday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2012-04-09', 120), '1', 'Easter Monday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2012-05-07', 120), '1', 'May Day (Early May Bank Holiday)'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2012-05-28', 120), '1', 'Spring Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2012-08-27', 120), '1', 'Summer Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2012-12-25', 120), '1', 'Christmas'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2012-12-26', 120), '1', 'Boxing Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2013-01-01', 120), '1', 'New Year''s Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2013-03-29', 120), '1', 'Good Friday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2013-04-01', 120), '1', 'Easter Monday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2013-05-06', 120), '1', 'May Day (Early May Bank Holiday)'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2013-05-27', 120), '1', 'Spring Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2013-08-26', 120), '1', 'Summer Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2013-12-25', 120), '1', 'Christmas'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2013-12-26', 120), '1', 'Boxing Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2014-01-01', 120), '1', 'New Year''s Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2014-04-18', 120), '1', 'Good Friday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2014-04-21', 120), '1', 'Easter Monday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2014-05-05', 120), '1', 'May Day (Early May Bank Holiday)'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2014-05-26', 120), '1', 'Spring Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2014-08-25', 120), '1', 'Summer Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2014-12-25', 120), '1', 'Christmas'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2014-12-26', 120), '1', 'Boxing Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2015-01-01', 120), '1', 'New Year''s Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2015-04-03', 120), '1', 'Good Friday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2015-04-06', 120), '1', 'Easter Monday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2015-05-04', 120), '1', 'May Day (Early May Bank Holiday)'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2015-05-25', 120), '1', 'Spring Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2015-08-31', 120), '1', 'Summer Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2015-12-25', 120), '1', 'Christmas'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2015-12-28', 120), '1', 'Boxing Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2016-01-01', 120), '1', 'New Year''s Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2016-03-25', 120), '1', 'Good Friday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2016-03-28', 120), '1', 'Easter Monday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2016-05-02', 120), '1', 'May Day (Early May Bank Holiday)'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2016-05-30', 120), '1', 'Spring Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2016-08-29', 120), '1', 'Summer Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2016-12-26', 120), '1', 'Boxing Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2016-12-27', 120), '1', 'Christmas'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2017-01-02', 120), '1', 'New Year''s Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2017-04-14', 120), '1', 'Good Friday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2017-04-17', 120), '1', 'Easter Monday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2017-05-01', 120), '1', 'May Day (Early May Bank Holiday)'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2017-05-29', 120), '1', 'Spring Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2017-08-28', 120), '1', 'Summer Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2017-12-25', 120), '1', 'Christmas'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2017-12-26', 120), '1', 'Boxing Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2018-01-01', 120), '1', 'New Year''s Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2018-03-30', 120), '1', 'Good Friday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2018-04-02', 120), '1', 'Easter Monday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2018-05-07', 120), '1', 'May Day (Early May Bank Holiday)'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2018-05-28', 120), '1', 'Spring Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2018-08-27', 120), '1', 'Summer Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2018-12-25', 120), '1', 'Christmas'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2018-12-26', 120), '1', 'Boxing Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2019-01-01', 120), '1', 'New Year''s Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2019-04-19', 120), '1', 'Good Friday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2019-04-22', 120), '1', 'Easter Monday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2019-05-06', 120), '1', 'May Day (Early May Bank Holiday)'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2019-05-27', 120), '1', 'Spring Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2019-08-26', 120), '1', 'Summer Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2019-12-25', 120), '1', 'Christmas'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2019-12-26', 120), '1', 'Boxing Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2020-01-01', 120), '1', 'New Year''s Day'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2020-04-10', 120), '1', 'Good Friday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2020-04-13', 120), '1', 'Easter Monday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2020-05-04', 120), '1', 'May Day (Early May Bank Holiday)'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2020-05-25', 120), '1', 'Spring Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2020-08-31', 120), '1', 'Summer Bank Holiday'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2020-12-25', 120), '1', 'Christmas'); INSERT INTO holiday_t ([HolidayDate], [HolidayIsBankHoliday], [HolidayDescription]) VALUES(CONVERT(DATE, '2020-12-28', 120), '1', 'Boxing Day'); -------------------------------------------------------------------------------- -- View Holidays -- -- CTE using windowing makes sure we only get one result for each date -------------------------------------------------------------------------------- WITH bank_holidays AS ( SELECT DISTINCT h.[HolidayDate], FIRST_VALUE(h.[HolidayIsBankHoliday]) OVER (PARTITION BY h.[HolidayDate] ORDER BY [HolidayID] DESC) AS [HolidayIsBankHoliday], FIRST_VALUE(h.[HolidayDescription] ) OVER (PARTITION BY h.[HolidayDate] ORDER BY [HolidayID] DESC) AS [HolidayDescription] FROM holiday_t h ) SELECT d.[TheDate], DateName(dw, d.[TheDate]) AS [DayName], d.[IsWeekend], d.[IsWeekday], h.[HolidayIsBankHoliday], h.[HolidayDescription] FROM date_t d LEFT JOIN bank_holidays h ON h.[HolidayDate] = d.[TheDate] WHERE h.[HolidayIsBankHoliday] = 1 ORDER BY d.[TheDate] ;
View schema
Execution time: 0,12 sec, rows selected: 98, rows affected: 4479, absolute service time: 0,33 sec
latest
|
history
TheDate
DayName
IsWeekend
IsWeekday
HolidayIsBankHoliday
HolidayDescription
1
01.01.2009 00:00:00
Thursday
0
1
1
New Year's Day
2
10.04.2009 00:00:00
Friday
0
1
1
Good Friday
3
13.04.2009 00:00:00
Monday
0
1
1
Easter Monday
4
04.05.2009 00:00:00
Monday
0
1
1
May Day (Early May Bank Holiday)
5
25.05.2009 00:00:00
Monday
0
1
1
Spring Bank Holiday
6
31.08.2009 00:00:00
Monday
0
1
1
Summer Bank Holiday
7
25.12.2009 00:00:00
Friday
0
1
1
Christmas
8
28.12.2009 00:00:00
Monday
0
1
1
Boxing Day
9
01.01.2010 00:00:00
Friday
0
1
1
New Year's Day
10
02.04.2010 00:00:00
Friday
0
1
1
Good Friday
11
05.04.2010 00:00:00
Monday
0
1
1
Easter Monday
12
03.05.2010 00:00:00
Monday
0
1
1
May Day (Early May Bank Holiday)
13
31.05.2010 00:00:00
Monday
0
1
1
Spring Bank Holiday
14
30.08.2010 00:00:00
Monday
0
1
1
Summer Bank Holiday
15
27.12.2010 00:00:00
Monday
0
1
1
Boxing Day
16
28.12.2010 00:00:00
Tuesday
0
1
1
Christmas
17
03.01.2011 00:00:00
Monday
0
1
1
New Year's Day
18
22.04.2011 00:00:00
Friday
0
1
1
Good Friday
19
25.04.2011 00:00:00
Monday
0
1
1
Easter Monday
20
02.05.2011 00:00:00
Monday
0
1
1
May Day (Early May Bank Holiday)
21
30.05.2011 00:00:00
Monday
0
1
1
Spring Bank Holiday
22
29.08.2011 00:00:00
Monday
0
1
1
Summer Bank Holiday
23
26.12.2011 00:00:00
Monday
0
1
1
Boxing Day
24
27.12.2011 00:00:00
Tuesday
0
1
1
Christmas
25
02.01.2012 00:00:00
Monday
0
1
1
New Year's Day
26
06.04.2012 00:00:00
Friday
0
1
1
Good Friday
27
09.04.2012 00:00:00
Monday
0
1
1
Easter Monday
28
07.05.2012 00:00:00
Monday
0
1
1
May Day (Early May Bank Holiday)
29
28.05.2012 00:00:00
Monday
0
1
1
Spring Bank Holiday
30
27.08.2012 00:00:00
Monday
0
1
1
Summer Bank Holiday
31
25.12.2012 00:00:00
Tuesday
0
1
1
Christmas
32
26.12.2012 00:00:00
Wednesday
0
1
1
Boxing Day
33
01.01.2013 00:00:00
Tuesday
0
1
1
New Year's Day
34
29.03.2013 00:00:00
Friday
0
1
1
Good Friday
35
01.04.2013 00:00:00
Monday
0
1
1
Easter Monday
36
06.05.2013 00:00:00
Monday
0
1
1
May Day (Early May Bank Holiday)
37
27.05.2013 00:00:00
Monday
0
1
1
Spring Bank Holiday
38
26.08.2013 00:00:00
Monday
0
1
1
Summer Bank Holiday
39
25.12.2013 00:00:00
Wednesday
0
1
1
Christmas
40
26.12.2013 00:00:00
Thursday
0
1
1
Boxing Day
41
01.01.2014 00:00:00
Wednesday
0
1
1
New Year's Day
42
18.04.2014 00:00:00
Friday
0
1
1
Good Friday
43
21.04.2014 00:00:00
Monday
0
1
1
Easter Monday
44
05.05.2014 00:00:00
Monday
0
1
1
May Day (Early May Bank Holiday)
45
26.05.2014 00:00:00
Monday
0
1
1
Spring Bank Holiday
46
25.08.2014 00:00:00
Monday
0
1
1
Summer Bank Holiday
47
25.12.2014 00:00:00
Thursday
0
1
1
Christmas
48
26.12.2014 00:00:00
Friday
0
1
1
Boxing Day
49
01.01.2015 00:00:00
Thursday
0
1
1
New Year's Day
50
03.04.2015 00:00:00
Friday
0
1
1
Good Friday
51
06.04.2015 00:00:00
Monday
0
1
1
Easter Monday
52
04.05.2015 00:00:00
Monday
0
1
1
May Day (Early May Bank Holiday)
53
25.05.2015 00:00:00
Monday
0
1
1
Spring Bank Holiday
54
31.08.2015 00:00:00
Monday
0
1
1
Summer Bank Holiday
55
25.12.2015 00:00:00
Friday
0
1
1
Christmas
56
28.12.2015 00:00:00
Monday
0
1
1
Boxing Day
57
01.01.2016 00:00:00
Friday
0
1
1
New Year's Day
58
25.03.2016 00:00:00
Friday
0
1
1
Good Friday
59
28.03.2016 00:00:00
Monday
0
1
1
Easter Monday
60
02.05.2016 00:00:00
Monday
0
1
1
May Day (Early May Bank Holiday)
61
30.05.2016 00:00:00
Monday
0
1
1
Spring Bank Holiday
62
29.08.2016 00:00:00
Monday
0
1
1
Summer Bank Holiday
63
26.12.2016 00:00:00
Monday
0
1
1
Boxing Day
64
27.12.2016 00:00:00
Tuesday
0
1
1
Christmas
65
02.01.2017 00:00:00
Monday
0
1
1
New Year's Day
66
14.04.2017 00:00:00
Friday
0
1
1
Good Friday
67
17.04.2017 00:00:00
Monday
0
1
1
Easter Monday
68
01.05.2017 00:00:00
Monday
0
1
1
May Day (Early May Bank Holiday)
69
29.05.2017 00:00:00
Monday
0
1
1
Spring Bank Holiday
70
28.08.2017 00:00:00
Monday
0
1
1
Summer Bank Holiday
71
25.12.2017 00:00:00
Monday
0
1
1
Christmas
72
26.12.2017 00:00:00
Tuesday
0
1
1
Boxing Day
73
01.01.2018 00:00:00
Monday
0
1
1
New Year's Day
74
30.03.2018 00:00:00
Friday
0
1
1
Good Friday
75
02.04.2018 00:00:00
Monday
0
1
1
Easter Monday
76
07.05.2018 00:00:00
Monday
0
1
1
May Day (Early May Bank Holiday)
77
28.05.2018 00:00:00
Monday
0
1
1
Spring Bank Holiday
78
27.08.2018 00:00:00
Monday
0
1
1
Summer Bank Holiday
79
25.12.2018 00:00:00
Tuesday
0
1
1
Christmas
80
26.12.2018 00:00:00
Wednesday
0
1
1
Boxing Day
81
01.01.2019 00:00:00
Tuesday
0
1
1
New Year's Day
82
19.04.2019 00:00:00
Friday
0
1
1
Good Friday
83
22.04.2019 00:00:00
Monday
0
1
1
Easter Monday
84
06.05.2019 00:00:00
Monday
0
1
1
May Day (Early May Bank Holiday)
85
27.05.2019 00:00:00
Monday
0
1
1
Spring Bank Holiday
86
26.08.2019 00:00:00
Monday
0
1
1
Summer Bank Holiday
87
25.12.2019 00:00:00
Wednesday
0
1
1
Christmas
88
26.12.2019 00:00:00
Thursday
0
1
1
Boxing Day
89
01.01.2020 00:00:00
Wednesday
0
1
1
New Year's Day
90
10.04.2020 00:00:00
Friday
0
1
1
Good Friday
91
13.04.2020 00:00:00
Monday
0
1
1
Easter Monday
92
04.05.2020 00:00:00
Monday
0
1
1
May Day (Early May Bank Holiday)
93
25.05.2020 00:00:00
Monday
0
1
1
Spring Bank Holiday
94
31.08.2020 00:00:00
Monday
0
1
1
Summer Bank Holiday
95
25.12.2020 00:00:00
Friday
0
1
1
Christmas
96
28.12.2020 00:00:00
Monday
0
1
1
Boxing Day