23#include <ql/time/calendars/turkey.hpp>
29 static ext::shared_ptr<Calendar::Impl> impl(
new Turkey::Impl);
47 || (d == 23 && m ==
April)
49 || (d == 1 && m ==
May)
51 || (d == 19 && m ==
May)
53 || (d == 15 && m ==
July && y >= 2017)
55 || (d == 30 && m ==
August)
65 || (m ==
November && d >= 14 && d <= 16))
67 }
else if (y == 2005) {
69 if ((m ==
January && d >= 19 && d <= 21)
71 || (m ==
November && d >= 2 && d <= 5))
73 }
else if (y == 2006) {
75 if ((m ==
January && d >= 10 && d <= 13)
77 || (m ==
October && d >= 23 && d <= 25)
81 }
else if (y == 2007) {
85 || (m ==
October && d >= 12 && d <= 14)
87 || (m ==
December && d >= 20 && d <= 23))
89 }
else if (y == 2008) {
94 || (m ==
December && d >= 8 && d <= 11))
96 }
else if (y == 2009) {
98 if ((m ==
September && d >= 20 && d <= 22)
100 || (m ==
November && d >= 27 && d <= 30))
102 }
else if (y == 2010) {
104 if ((m ==
September && d >= 9 && d <= 11)
106 || (m ==
November && d >= 16 && d <= 19))
108 }
else if (y == 2011) {
111 || (m ==
November && d >= 9 && d <= 13))
113 }
else if (y == 2012) {
115 if ((m ==
August && d >= 18 && d <= 21)
117 || (m ==
October && d >= 24 && d <= 28))
119 }
else if (y == 2013) {
121 if ((m ==
August && d >= 7 && d <= 10)
123 || (m ==
October && d >= 14 && d <= 18)
127 }
else if (y == 2014) {
129 if ((m ==
July && d >= 27 && d <= 30)
131 || (m ==
October && d >= 4 && d <= 7)
135 }
else if (y == 2015) {
137 if ((m ==
July && d >= 17 && d <= 19)
139 || (m ==
October && d >= 24 && d <= 27))
141 }
else if (y == 2016) {
143 if ((m ==
July && d >= 5 && d <= 7)
145 || (m ==
September && d >= 12 && d <= 15))
147 }
else if (y == 2017) {
149 if ((m ==
June && d >= 25 && d <= 27)
153 }
else if (y == 2018) {
155 if ((m ==
June && d >= 15 && d <= 17)
157 || (m ==
August && d >= 21 && d <= 24))
159 }
else if (y == 2019) {
161 if ((m ==
June && d >= 4 && d <= 6)
163 || (m ==
August && d >= 11 && d <= 14))
165 }
else if (y == 2020) {
167 if ((m ==
May && d >= 24 && d <= 26)
169 || (m ==
July && d == 31) || (m ==
August && d >= 1 && d <= 3))
171 }
else if (y == 2021) {
173 if ((m ==
May && d >= 13 && d <= 15)
175 || (m ==
July && d >= 20 && d <= 23))
177 }
else if (y == 2022) {
179 if ((m ==
May && d >= 2 && d <= 4)
181 || (m ==
July && d >= 9 && d <= 12))
183 }
else if (y == 2023) {
185 if ((m ==
April && d >= 21 && d <= 23)
188 || (m ==
June && d >= 28 && d <= 30))
190 }
else if (y == 2024) {
194 if ((m ==
April && d >= 10 && d <= 12)
196 || (m ==
June && d >= 17 && d <= 19))
198 }
else if (y == 2025) {
200 if ((m ==
March && d == 31) || (m ==
April && d >= 1 && d <= 2)
202 || (m ==
June && d >= 6 && d <= 9))
204 }
else if (y == 2026) {
206 if ((m ==
March && d >= 20 && d <= 22)
208 || (m ==
May && d >= 26 && d <= 29))
210 }
else if (y == 2027) {
212 if ((m ==
March && d >= 10 && d <= 12)
214 || (m ==
May && d >= 16 && d <= 19))
216 }
else if (y == 2028) {
218 if ((m ==
February && d >= 27 && d <= 29)
220 || (m ==
May && d >= 4 && d <= 7))
222 }
else if (y == 2029) {
224 if ((m ==
February && d >= 15 && d <= 17)
226 || (m ==
April && d >= 23 && d <= 26))
228 }
else if (y == 2030) {
230 if ((m ==
February && d >= 5 && d <= 7)
232 || (m ==
April && d >= 13 && d <= 16))
234 }
else if (y == 2031) {
236 if ((m ==
January && d >= 25 && d <= 27)
238 || (m ==
April && d >= 2 && d <= 5))
240 }
else if (y == 2032) {
242 if ((m ==
January && d >= 14 && d <= 16)
244 || (m ==
March && d >= 21 && d <= 24))
246 }
else if (y == 2033) {
250 || (m ==
March && d >= 11 && d <= 14))
252 }
else if (y == 2034) {
254 if ((m ==
December && d >= 12 && d <= 14)
256 || (m ==
February && d == 28) || (m ==
March && d >= 1 && d <= 3))
bool isWeekend(Weekday w) const
ext::shared_ptr< Impl > impl_
bool isBusinessDay(const Date &) const override
bool isWeekend(Weekday) const override