QuantLib
: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
ql
time
calendars
jointcalendar.hpp
Go to the documentation of this file.
1
/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
3
/*
4
Copyright (C) 2003 RiskMap srl
5
Copyright (C) 2020 Piotr Siejda
6
7
This file is part of QuantLib, a free-software/open-source library
8
for financial quantitative analysts and developers - http://quantlib.org/
9
10
QuantLib is free software: you can redistribute it and/or modify it
11
under the terms of the QuantLib license. You should have received a
12
copy of the license along with this program; if not, please email
13
<quantlib-dev@lists.sf.net>. The license is also available online at
14
<http://quantlib.org/license.shtml>.
15
16
This program is distributed in the hope that it will be useful, but WITHOUT
17
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
18
FOR A PARTICULAR PURPOSE. See the license for more details.
19
*/
20
21
/*! \file jointcalendar.hpp
22
\brief Joint calendar
23
*/
24
25
#ifndef quantlib_joint_calendar_h
26
#define quantlib_joint_calendar_h
27
28
#include <
ql/time/calendar.hpp
>
29
30
namespace
QuantLib
{
31
32
//! rules for joining calendars
33
enum
JointCalendarRule
{
JoinHolidays
,
/*!< A date is a holiday
34
for the joint calendar
35
if it is a holiday
36
for any of the given
37
calendars */
38
JoinBusinessDays
/*!< A date is a business day
39
for the joint calendar
40
if it is a business day
41
for any of the given
42
calendars */
43
};
44
45
//! Joint calendar
46
/*! Depending on the chosen rule, this calendar has a set of
47
business days given by either the union or the intersection
48
of the sets of business days of the given calendars.
49
50
\ingroup calendars
51
52
\test the correctness of the returned results is tested by
53
reproducing the calculations.
54
*/
55
class
JointCalendar
:
public
Calendar
{
56
private
:
57
class
Impl
final :
public
Calendar::Impl
{
58
public
:
59
Impl
(
const
Calendar
&,
const
Calendar
&,
60
JointCalendarRule
);
61
Impl
(
const
Calendar
&,
const
Calendar
&,
62
const
Calendar
&,
JointCalendarRule
);
63
Impl
(
const
Calendar
&,
const
Calendar
&,
64
const
Calendar
&,
const
Calendar
&,
65
JointCalendarRule
);
66
Impl
(std::vector<Calendar>,
JointCalendarRule
);
67
std::string
name
()
const override
;
68
bool
isWeekend
(
Weekday
)
const override
;
69
bool
isBusinessDay
(
const
Date
&)
const override
;
70
71
private
:
72
JointCalendarRule
rule_
;
73
std::vector<Calendar>
calendars_
;
74
};
75
public
:
76
JointCalendar
(
const
Calendar
&,
const
Calendar
&,
77
JointCalendarRule
=
JoinHolidays
);
78
JointCalendar
(
const
Calendar
&,
const
Calendar
&,
79
const
Calendar
&,
80
JointCalendarRule
=
JoinHolidays
);
81
JointCalendar
(
const
Calendar
&,
const
Calendar
&,
82
const
Calendar
&,
const
Calendar
&,
83
JointCalendarRule
=
JoinHolidays
);
84
explicit
JointCalendar
(
const
std::vector<Calendar>&,
85
JointCalendarRule
=
JoinHolidays
);
86
};
87
88
}
89
90
91
92
#endif
calendar.hpp
calendar class
QuantLib::Calendar::Impl
abstract base class for calendar implementations
Definition:
calendar.hpp:64
QuantLib::Calendar
calendar class
Definition:
calendar.hpp:61
QuantLib::Date
Concrete date class.
Definition:
date.hpp:125
QuantLib::JointCalendar::Impl
Definition:
jointcalendar.hpp:57
QuantLib::JointCalendar::Impl::isBusinessDay
bool isBusinessDay(const Date &) const override
Definition:
jointcalendar.cpp:103
QuantLib::JointCalendar::Impl::calendars_
std::vector< Calendar > calendars_
Definition:
jointcalendar.hpp:73
QuantLib::JointCalendar::Impl::name
std::string name() const override
Definition:
jointcalendar.cpp:63
QuantLib::JointCalendar::Impl::rule_
JointCalendarRule rule_
Definition:
jointcalendar.hpp:72
QuantLib::JointCalendar::Impl::isWeekend
bool isWeekend(Weekday) const override
Definition:
jointcalendar.cpp:83
QuantLib::JointCalendar
Joint calendar.
Definition:
jointcalendar.hpp:55
QuantLib::Weekday
Weekday
Definition:
weekday.hpp:41
QuantLib
Definition:
any.hpp:35
QuantLib::JointCalendarRule
JointCalendarRule
rules for joining calendars
Definition:
jointcalendar.hpp:33
QuantLib::JoinBusinessDays
@ JoinBusinessDays
Definition:
jointcalendar.hpp:38
QuantLib::JoinHolidays
@ JoinHolidays
Definition:
jointcalendar.hpp:33
Generated by
Doxygen
1.9.5