QuantLib
A free/open-source library for quantitative finance
Fully annotated sources - version 1.22
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Related Functions | List of all members
DayCounter Class Reference

day counter class More...

#include <ql/time/daycounter.hpp>

+ Inheritance diagram for DayCounter:
+ Collaboration diagram for DayCounter:

Classes

class  Impl
 abstract base class for day counter implementations More...
 

Public Member Functions

 DayCounter ()=default
 
DayCounter interface
bool empty () const
 Returns whether or not the day counter is initialized. More...
 
std::string name () const
 Returns the name of the day counter. More...
 
Date::serial_type dayCount (const Date &, const Date &) const
 Returns the number of days between two dates. More...
 
Time yearFraction (const Date &, const Date &, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date()) const
 Returns the period between two dates as a fraction of year. More...
 

Protected Member Functions

 DayCounter (ext::shared_ptr< Impl > impl)
 

Protected Attributes

ext::shared_ptr< Implimpl_
 

Related Functions

(Note that these are not member functions.)

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

Detailed Description

day counter class

This class provides methods for determining the length of a time period according to given market convention, both as a number of days and as a year fraction.

The Bridge pattern is used to provide the base behavior of the day counter.

Examples
BermudanSwaption.cpp, Bonds.cpp, CallableBonds.cpp, ConvertibleBonds.cpp, CVAIRS.cpp, DiscreteHedging.cpp, EquityOption.cpp, FittedBondCurve.cpp, FRA.cpp, MulticurveBootstrapping.cpp, Replication.cpp, and Repo.cpp.

Definition at line 44 of file daycounter.hpp.

Constructor & Destructor Documentation

◆ DayCounter() [1/2]

DayCounter ( ext::shared_ptr< Impl impl)
explicitprotected

This constructor can be invoked by derived classes which define a given implementation.

Definition at line 65 of file daycounter.hpp.

◆ DayCounter() [2/2]

DayCounter ( )
default

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

Member Function Documentation

◆ empty()

bool empty ( ) const

Returns whether or not the day counter is initialized.

Definition at line 113 of file daycounter.hpp.

+ Here is the caller graph for this function:

◆ name()

std::string name ( ) const

Returns the name of the day counter.

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

Definition at line 117 of file daycounter.hpp.

+ Here is the caller graph for this function:

◆ dayCount()

Date::serial_type dayCount ( const Date d1,
const Date d2 
) const

Returns the number of days between two dates.

Definition at line 122 of file daycounter.hpp.

+ Here is the caller graph for this function:

◆ yearFraction()

Time yearFraction ( const Date d1,
const Date d2,
const Date refPeriodStart = Date(),
const Date refPeriodEnd = Date() 
) const

Returns the period between two dates as a fraction of year.

Examples
ConvertibleBonds.cpp, and FittedBondCurve.cpp.

Definition at line 128 of file daycounter.hpp.

+ Here is the caller graph for this function:

Friends And Related Function Documentation

◆ operator==()

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

Returns true iff the two day counters belong to the same derived class.

Definition at line 135 of file daycounter.hpp.

◆ operator!=()

bool operator!= ( const DayCounter ,
const DayCounter  
)
related

Definition at line 140 of file daycounter.hpp.

◆ operator<<()

std::ostream & operator<< ( std::ostream &  ,
const DayCounter  
)
related

Definition at line 144 of file daycounter.hpp.

Member Data Documentation

◆ impl_

ext::shared_ptr<Impl> impl_
protected

Definition at line 61 of file daycounter.hpp.