# Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. — Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Classes | Namespaces | Functions

# Date, Time, Timezone and Calendar manipulations

## Classes

class | boost::locale::date_time_error
| This error is thrown in case of invalid state that occurred. More...
struct | boost::locale::date_time_period
| This class represents a pair of period_type and the integer values that describes its amount. For example 3 days or 4 years. More...
class | boost::locale::date_time_period_set
| this class that represents a set of periods, More...
class | boost::locale::calendar
| this class provides an access to general calendar information. More...
class | boost::locale::date_time
| this class represents a date time and allows to perform various operation according to the locale settings. More...
class | boost::locale::date_time_duration
| This class represents a period: a pair of two date_time objects. More...

## Namespaces

namespace | boost::locale::period

| Namespace that contains various types for manipulation with dates.
namespace | boost::locale::time_zone

| namespace that holds functions for operating with global time zone

## Functions

date_time_period_set | boost::locale::operator+ (date_time_period_set const &a, date_time_period_set const &b)
date_time_period_set | boost::locale::operator- (date_time_period_set const &a, date_time_period_set const &b)
template<typename CharType >
std::basic_ostream< CharType > & | boost::locale::operator<< (std::basic_ostream< CharType > &out, date_time const &t)
template<typename CharType >
std::basic_istream< CharType > & | boost::locale::operator>> (std::basic_istream< CharType > &in, date_time &t)
date_time_duration | boost::locale::operator- (date_time const &later, date_time const &earlier)

## Detailed Description

This module provides various calendar, timezone and date time services

## Function Documentation

date_time_period_set boost::locale::operator+ | ( | date_time_period_set const & | a,
|  | date_time_period_set const & | b |
| ) |  |  | `[inline]`

Append two periods sets. Note this operator is not commutative

date_time_duration boost::locale::operator- | ( | date_time const & | later,
|  | date_time const & | earlier |
| ) |  |  | `[inline]`

Calculates the difference between two dates, the left operand is a later point on time line. Returns date_time_duration object.

date_time_period_set boost::locale::operator- | ( | date_time_period_set const & | a,
|  | date_time_period_set const & | b |
| ) |  |  | `[inline]`

Append two period sets when all periods of set change their sign

template<typename CharType >

std::basic_ostream<CharType>& boost::locale::operator<< | ( | std::basic_ostream< CharType > & | out,
|  | date_time const & | t |
| ) |  |  |

Writes date_time t to output stream out.

This function uses locale, calendar and time zone of the target stream in.

For example:

      date_time now(time(0),hebrew_calendar)
      cout << "Year: " << period::year(now) <<" Full Date:"<< now;

The output may be Year:5770 Full Date:Jan 1, 2010

template<typename CharType >

std::basic_istream<CharType>& boost::locale::operator>> | ( | std::basic_istream< CharType > & | in,
|  | date_time & | t |
| ) |  |  |

Reads date_time t from output stream in

This function uses locale, calendar and time zone of the source stream in.