22#include <ql/time/calendars/japan.hpp>
28 static ext::shared_ptr<Calendar::Impl> impl(
new Japan::Impl);
42 const Time exact_vernal_equinox_time = 20.69115;
43 const Time exact_autumnal_equinox_time = 23.09;
44 const Time diff_per_year = 0.242194;
45 const Time moving_amount = (y-2000)*diff_per_year;
46 Integer number_of_leap_years = (y-2000)/4+(y-2000)/100-(y-2000)/400;
48 Day(exact_vernal_equinox_time
49 + moving_amount - number_of_leap_years);
51 Day(exact_autumnal_equinox_time
52 + moving_amount - number_of_leap_years);
74 && (y >= 1989 && y < 2019))
76 || ((d == ve || (d == ve+1 && w ==
Monday)) && m ==
March)
78 || ((d == 29 || (d == 30 && w ==
Monday)) && m ==
April)
80 || (d == 3 && m ==
May)
82 || (d == 4 && m ==
May)
84 || (d == 5 && m ==
May)
86 || (d == 6 && m ==
May
92 || (w ==
Monday && (d >= 15 && d <= 21) && m ==
July
93 && ((y >= 2003 && y < 2020) || y >= 2022))
94 || ((d == 20 || (d == 21 && w ==
Monday)) && m ==
July
95 && y >= 1996 && y < 2003)
96 || (d == 23 && m ==
July && y == 2020)
97 || (d == 22 && m ==
July && y == 2021)
101 || ((d == 11 || (d == 12 && w ==
Monday)) && m ==
August
102 && ((y >= 2016 && y < 2020) || y >= 2022))
103 || (d == 10 && m ==
August && y == 2020)
104 || (d == 9 && m ==
August && y == 2021)
113 || (w ==
Tuesday && d+1 == ae && d >= 16 && d <= 22
122 && ((y >= 2000 && y < 2020) || y >= 2022))
125 || (d == 24 && m ==
July && y == 2020)
126 || (d == 23 && m ==
July && y == 2021)
135 || (d == 10 && m ==
April && y == 1959)
137 || (d == 24 && m ==
February && y == 1989)
139 || (d == 12 && m ==
November && y == 1990)
141 || (d == 9 && m ==
June && y == 1993)
143 || (d == 30 && m ==
April && y == 2019)
145 || (d == 1 && m ==
May && y == 2019)
147 || (d == 2 && m ==
May && y == 2019)
149 || (d == 22 && m ==
October && y == 2019))
bool isWeekend(Weekday w) const
ext::shared_ptr< Impl > impl_
bool isBusinessDay(const Date &) const override
bool isWeekend(Weekday) const override
Real Time
continuous quantity with 1-year units
QL_INTEGER Integer
integer number