QuantLib
A free/open-source library for quantitative finance
Reference manual - version 1.20
Classes | Public Member Functions | Protected Attributes | Related Functions | List of all members
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 ()
 

Protected Attributes

ext::shared_ptr< Implimpl_
 

Related Functions

(Note that these are not member functions.)

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

Calendar interface

bool empty () const
 Returns whether or not the calendar is initialized.
 
std::string name () const
 Returns the name of the calendar. More...
 
const std::set< Date > & addedHolidays () const
 
const std::set< Date > & removedHolidays () const
 
bool isBusinessDay (const Date &d) const
 
bool isHoliday (const Date &d) const
 
bool isWeekend (Weekday w) const
 
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
 
static QL_DEPRECATED std::vector< DateholidayList (const Calendar &calendar, const Date &from, const Date &to, bool includeWeekEnds=false)
 

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.

Constructor & Destructor Documentation

◆ Calendar()

Calendar ( )

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

◆ 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.

◆ 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() [1/2]

static QL_DEPRECATED std::vector<Date> holidayList ( const Calendar calendar,
const Date from,
const Date to,
bool  includeWeekEnds = false 
)
static

Returns the holidays between two dates.

Deprecated:
Use the non-static overload. Deprecated in version 1.18.

◆ holidayList() [2/2]

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.

◆ 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.

◆ 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.

Friends And Related Function Documentation

◆ operator==()

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

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