QuantLib: a free/open-source library for quantitative finance
Reference manual - version 1.40
Loading...
Searching...
No Matches
Calendar Class Reference

calendar class More...

#include <ql/time/calendar.hpp>

Inheritance diagram for Calendar:

Classes

class  Impl
 abstract base class for calendar implementations More...
class  OrthodoxImpl
 partial calendar implementation More...
class  WesternImpl
 partial calendar implementation More...

Public Member Functions

 Calendar ()=default
Calendar interface
bool empty () const
 Returns whether or not the calendar is initialized.
std::string name () const
 Returns the name of the calendar.
const std::set< Date > & addedHolidays () const
const std::set< Date > & removedHolidays () const
void resetAddedAndRemovedHolidays ()
bool isBusinessDay (const Date &d) const
bool isHoliday (const Date &d) const
bool isWeekend (Weekday w) const
bool isStartOfMonth (const Date &d) const
Date startOfMonth (const Date &d) const
 first business day of the month to which the given date belongs
bool isEndOfMonth (const Date &d) const
Date endOfMonth (const Date &d) const
 last business day of the month to which the given date belongs
void addHoliday (const Date &)
void removeHoliday (const Date &)
std::vector< DateholidayList (const Date &from, const Date &to, bool includeWeekEnds=false) const
std::vector< DatebusinessDayList (const Date &from, const Date &to) const
Date adjust (const Date &, BusinessDayConvention convention=Following) const
Date advance (const Date &, Integer n, TimeUnit unit, BusinessDayConvention convention=Following, bool endOfMonth=false) const
Date advance (const Date &date, const Period &period, BusinessDayConvention convention=Following, bool endOfMonth=false) const
Date::serial_type businessDaysBetween (const Date &from, const Date &to, bool includeFirst=true, bool includeLast=false) const

Protected Attributes

ext::shared_ptr< Implimpl_

(Note that these are not member symbols.)

bool operator== (const Calendar &, const Calendar &)
bool operator!= (const Calendar &, const Calendar &)
std::ostream & operator<< (std::ostream &, const Calendar &)

Detailed Description

calendar class

This class provides methods for determining whether a date is a business day or a holiday for a given market, and for incrementing/decrementing a date of a given number of business days.

The Bridge pattern is used to provide the base behavior of the calendar, namely, to determine whether a date is a business day.

A calendar should be defined for specific exchange holiday schedule or for general country holiday schedule. Legacy city holiday schedule calendars will be moved to the exchange/country convention.

Tests
the methods for adding and removing holidays are tested by inspecting the calendar before and after their invocation.
Examples
BasketLosses.cpp, BermudanSwaption.cpp, Bonds.cpp, CDS.cpp, CVAIRS.cpp, CallableBonds.cpp, ConvertibleBonds.cpp, DiscreteHedging.cpp, EquityOption.cpp, FRA.cpp, FittedBondCurve.cpp, LatentModel.cpp, MulticurveBootstrapping.cpp, and Repo.cpp.

Constructor & Destructor Documentation

◆ Calendar()

Calendar ( )
default

The default constructor returns a calendar with a null implementation, which is therefore unusable except as a placeholder.

Member Function Documentation

◆ name()

std::string name ( ) const

Returns the name of the calendar.

Warning
This method is used for output and comparison between calendars. It is not meant to be used for writing switch-on-type code.

◆ addedHolidays()

const std::set< Date > & addedHolidays ( ) const

Returns true iff the date is a business day for the given market.

Returns the set of added holidays for the given calendar

◆ removedHolidays()

const std::set< Date > & removedHolidays ( ) const

Returns the set of removed holidays for the given calendar

◆ resetAddedAndRemovedHolidays()

void resetAddedAndRemovedHolidays ( )

Clear the set of added and removed holidays

◆ isHoliday()

bool isHoliday ( const Date & d) const

Returns true iff the date is a holiday for the given market.

◆ isWeekend()

bool isWeekend ( Weekday w) const

Returns true iff the weekday is part of the weekend for the given market.

◆ isStartOfMonth()

bool isStartOfMonth ( const Date & d) const

Returns true iff in the given market, the date is on or before the first business day for that month.

◆ isEndOfMonth()

bool isEndOfMonth ( const Date & d) const

Returns true iff in the given market, the date is on or after the last business day for that month.

◆ addHoliday()

void addHoliday ( const Date & )

Adds a date to the set of holidays for the given calendar.

◆ removeHoliday()

void removeHoliday ( const Date & )

Removes a date from the set of holidays for the given calendar.

◆ holidayList()

std::vector< Date > holidayList ( const Date & from,
const Date & to,
bool includeWeekEnds = false ) const

Returns the holidays between two dates.

◆ businessDayList()

std::vector< Date > businessDayList ( const Date & from,
const Date & to ) const

Returns the business days between two dates.

◆ adjust()

Date adjust ( const Date & ,
BusinessDayConvention convention = Following ) const

Adjusts a non-business day to the appropriate near business day with respect to the given convention.

Examples
BasketLosses.cpp, CDS.cpp, CVAIRS.cpp, ConvertibleBonds.cpp, FittedBondCurve.cpp, LatentModel.cpp, and MulticurveBootstrapping.cpp.

◆ advance() [1/2]

Date advance ( const Date & ,
Integer n,
TimeUnit unit,
BusinessDayConvention convention = Following,
bool endOfMonth = false ) const

Advances the given date of the given number of business days and returns the result.

Note
The input date is not modified.
Examples
BermudanSwaption.cpp, Bonds.cpp, CDS.cpp, CallableBonds.cpp, ConvertibleBonds.cpp, FRA.cpp, FittedBondCurve.cpp, Gaussian1dModels.cpp, LatentModel.cpp, and MulticurveBootstrapping.cpp.

◆ advance() [2/2]

Date advance ( const Date & date,
const Period & period,
BusinessDayConvention convention = Following,
bool endOfMonth = false ) const

Advances the given date as specified by the given period and returns the result.

Note
The input date is not modified.

◆ businessDaysBetween()

Date::serial_type businessDaysBetween ( const Date & from,
const Date & to,
bool includeFirst = true,
bool includeLast = false ) const

Calculates the number of business days between two given dates and returns the result.

◆ operator==()

bool operator== ( const Calendar & ,
const Calendar &  )
related

Returns true iff the two calendars belong to the same derived class.