Date Class Reference
[Date and time calculations]

#include <ql/date.hpp>

List of all members.


Detailed Description

Concrete date class.

This class provides methods to inspect dates as well as methods and operators which implement a limited date algebra (increasing and decreasing dates, and calculating their difference).

Tests:
self-consistency of dates, serial numbers, days of month, months, and weekdays is checked over the whole date range.
Examples:

BermudanSwaption.cpp, ConvertibleBonds.cpp, DiscreteHedging.cpp, EquityOption.cpp, FRA.cpp, Replication.cpp, Repo.cpp, and swapvaluation.cpp.


Public Member Functions

inspectors
Weekday weekday () const
Day dayOfMonth () const
Day dayOfYear () const
 One-based (Jan 1st = 1).
Month month () const
Year year () const
BigInteger serialNumber () const
date algebra
Dateoperator+= (BigInteger days)
 increments date by the given number of days
Dateoperator+= (const Period &)
 increments date by the given period
Dateoperator-= (BigInteger days)
 decrement date by the given number of days
Dateoperator-= (const Period &)
 decrements date by the given period
Dateoperator++ ()
 1-day pre-increment
Date operator++ (int)
 1-day post-increment
Dateoperator-- ()
 1-day pre-decrement
Date operator-- (int)
 1-day post-decrement
Date operator+ (BigInteger days) const
 returns a new date incremented by the given number of days
Date operator+ (const Period &) const
 returns a new date incremented by the given period
Date operator- (BigInteger days) const
 returns a new date decremented by the given number of days
Date operator- (const Period &) const
 returns a new date decremented by the given period

Static Public Member Functions

static methods
static Date todaysDate ()
 today's date.
static Date minDate ()
 earliest allowed date
static Date maxDate ()
 latest allowed date
static bool isLeap (Year y)
 whether the given year is a leap one
static Date endOfMonth (const Date &d)
 last day of the month to which the given date belongs
static bool isEOM (const Date &d)
 whether a date is the last day of its month
static Date nextWeekday (const Date &d, Weekday)
 next given weekday following or equal to the given date
static Date nthWeekday (Size n, Weekday, Month m, Year y)
 n-th given weekday in the given month and year
static bool isIMMdate (const Date &d, bool mainCycle=true)
 whether or not the given date is an IMM date
static Date nextIMMdate (const Date &d, bool mainCycle=true)
 next IMM date following (or equal to) the given date
static std::string IMMcode (const Date &date)
static Date IMMdate (const std::string &IMMcode, const Date &referenceDate=Date())

Related Functions

(Note that these are not member functions.)

BigInteger operator- (const Date &, const Date &)
 Difference in days between dates.
bool operator== (const Date &, const Date &)
bool operator!= (const Date &, const Date &)
bool operator< (const Date &, const Date &)
bool operator<= (const Date &, const Date &)
bool operator> (const Date &, const Date &)
bool operator>= (const Date &, const Date &)
std::ostream & operator<< (std::ostream &, const Date &)


Member Function Documentation

static Date nextWeekday ( const Date d,
Weekday   
) [static]

next given weekday following or equal to the given date

E.g., the Friday following Tuesday, January 15th, 2002 was January 18th, 2002.

see http://www.cpearson.com/excel/DateTimeWS.htm

static Date nthWeekday ( Size  n,
Weekday  ,
Month  m,
Year  y 
) [static]

n-th given weekday in the given month and year

E.g., the 4th Thursday of March, 1998 was March 26th, 1998.

see http://www.cpearson.com/excel/DateTimeWS.htm

static Date nextIMMdate ( const Date d,
bool  mainCycle = true 
) [static]

next IMM date following (or equal to) the given date

returns the 1st delivery date for next contract listed in the International Money Market section of the Chicago Mercantile Exchange.

Warning:
The result date is following or equal to the original date.

static std::string IMMcode ( const Date date  )  [static]

returns the IMM code for the given date (e.g. H6 for March 15th, 2006).

Warning:
It raise an exception if the input date is not an IMM date

static Date IMMdate ( const std::string &  IMMcode,
const Date referenceDate = Date() 
) [static]

returns the IMM date for the given IMM code (e.g. March 15th, 2006 for H6).