Date and time calculations

## Modules

| Calendars
| Day counters

## Classes

class | DateInterval
| Date interval described by a number of a given time unit. More...
class | PricingPeriod
| Time pricingperiod described by a number of a given time unit. More...
class | Calendar::Impl
| abstract base class for calendar implementations More...
class | Calendar::WesternImpl
| partial calendar implementation More...
class | Calendar::OrthodoxImpl
| partial calendar implementation More...
class | Calendar
| calendar class More...
class | Date
| Concrete date class. More...
struct | DateGeneration
| Date-generation rule. More...
class | DayCounter::Impl
| abstract base class for day counter implementations More...
class | DayCounter
| day counter class More...
class | Period
class | Schedule
| Payment schedule. More...

## Typedefs

typedef Integer | Day
| Day number. More...
typedef Integer | Year
| Year number. More...

## Enumerations

enum | BusinessDayConvention { Following, ModifiedFollowing, Preceding, ModifiedPreceding, Unadjusted, HalfMonthModifiedFollowing, Nearest }
| Business Day conventions. More...
enum | Month { January = 1, February = 2, March = 3, April = 4, May = 5, June = 6, July = 7, August = 8, September = 9, October = 10, November = 11, December = 12, Jan = 1, Feb = 2, Mar = 3, Apr = 4, Jun = 6, Jul = 7, Aug = 8, Sep = 9, Oct = 10, Nov = 11, Dec = 12 }
| Month names. More...
enum | Rule { Backward, Forward, Zero, ThirdWednesday, Twentieth, TwentiethIMM, OldCDS, CDS }
enum | Frequency { NoFrequency = -1, Once = 0, Annual = 1, Semiannual = 2, EveryFourthMonth = 3, Quarterly = 4, Bimonthly = 6, Monthly = 12, EveryFourthWeek = 13, Biweekly = 26, Weekly = 52, Daily = 365, OtherFrequency = 999 }
| Frequency of events. More...
enum | TimeUnit { Days, Weeks, Months, Years }
| Units used to describe time periods. More...
enum | Weekday { Sunday = 1, Monday = 2, Tuesday = 3, Wednesday = 4, Thursday = 5, Friday = 6, Saturday = 7, Sun = 1, Mon = 2, Tue = 3, Wed = 4, Thu = 5, Fri = 6, Sat = 7 }

## Detailed Description

The concrete class `QuantLib::Date` implements the concept of date. Its functionalities include:

- providing basic information such as weekday, day of the month, day of the year, month, and year;
- comparing two dates to determine whether they are equal, or which one is the earlier or later, or the difference between them expressed in days;
- incrementing or decrementing a date of a given number of days, or of a given period expressed in weeks, months, or years.

## Typedef Documentation

typedef Integer Day

Day number.

typedef Integer Year

Year number.

## Enumeration Type Documentation

enum BusinessDayConvention

Business Day conventions.

These conventions specify the algorithm used to adjust a date in case it is not a valid business day.

Enumerator
Following | Choose the first business day after the given holiday.
ModifiedFollowing | Choose the first business day after the given holiday unless it belongs to a different month, in which case choose the first business day before the holiday.
Preceding | Choose the first business day before the given holiday.
ModifiedPreceding | Choose the first business day before the given holiday unless it belongs to a different month, in which case choose the first business day after the holiday.
Unadjusted | Do not adjust.
HalfMonthModifiedFollowing | Choose the first business day after the given holiday unless that day crosses the mid-month (15th) or the end of month, in which case choose the first business day before the holiday.
Nearest | Choose the nearest business day to the given holiday. If both the preceding and following business days are equally far away, default to following business day.

enum Month

Month names.

enum Rule

Enumerator
Backward | Backward from termination date to effective date.
Forward | Forward from effective date to termination date.
Zero | No intermediate dates between effective date and termination date.
ThirdWednesday | All dates but effective date and termination date are taken to be on the third wednesday of their month (with forward calculation.)
Twentieth | All dates but the effective date are taken to be the twentieth of their month (used for CDS schedules in emerging markets.) The termination date is also modified.
TwentiethIMM | All dates but the effective date are taken to be the twentieth of an IMM month (used for CDS schedules.) The termination date is also modified.
OldCDS | Same as TwentiethIMM with unrestricted date ends and log/short stub coupon period (old CDS convention).
CDS | Credit derivatives standard rule since 'Big Bang' changes in 2009.

enum Frequency

Frequency of events.

Enumerator
NoFrequency | null frequency
Once | only once, e.g., a zero-coupon
Annual | once a year
Semiannual | twice a year
EveryFourthMonth | every fourth month
Quarterly | every third month
Bimonthly | every second month
Monthly | once a month
EveryFourthWeek | every fourth week
Biweekly | every second week
Weekly | once a week
Daily | once a day
OtherFrequency | some other unknown frequency

enum TimeUnit

Units used to describe time periods.

enum Weekday

Day's serial number MOD 7; WEEKDAY Excel function is the same except for Sunday = 7.