\section{Date, Time, Timezone and Calendar manipulations}
\label{group__date__time}\index{Date, Time, Timezone and Calendar manipulations@{Date, Time, Timezone and Calendar manipulations}}
\subsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
 {\bf booster\+::locale\+::period}
\begin{DoxyCompactList}\small\item\em Namespace that contains various types for manipulation with dates. \end{DoxyCompactList}\item 
 {\bf booster\+::locale\+::time\+\_\+zone}
\begin{DoxyCompactList}\small\item\em namespace that holds functions for operating with global time zone \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class {\bf booster\+::locale\+::date\+\_\+time\+\_\+error}
\begin{DoxyCompactList}\small\item\em This error is thrown in case of invalid state that occurred. \end{DoxyCompactList}\item 
struct {\bf booster\+::locale\+::date\+\_\+time\+\_\+period}
\begin{DoxyCompactList}\small\item\em This class represents a pair of period\+\_\+type and the integer values that describes its amount. For example 3 days or 4 years. \end{DoxyCompactList}\item 
class {\bf booster\+::locale\+::date\+\_\+time\+\_\+period\+\_\+set}
\begin{DoxyCompactList}\small\item\em this class that represents a set of periods, \end{DoxyCompactList}\item 
class {\bf booster\+::locale\+::calendar}
\begin{DoxyCompactList}\small\item\em this class provides an access to general calendar information. \end{DoxyCompactList}\item 
class {\bf booster\+::locale\+::date\+\_\+time}
\begin{DoxyCompactList}\small\item\em this class represents a date time and allows to perform various operation according to the locale settings. \end{DoxyCompactList}\item 
class {\bf booster\+::locale\+::date\+\_\+time\+\_\+duration}
\begin{DoxyCompactList}\small\item\em This class represents a period\+: a pair of two \doxyref{date\+\_\+time}{p.}{classbooster_1_1locale_1_1date__time} objects. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
date\+\_\+time\+\_\+period\+\_\+set {\bf booster\+::locale\+::operator+} (date\+\_\+time\+\_\+period\+\_\+set const \&a, date\+\_\+time\+\_\+period\+\_\+set const \&b)
\item 
date\+\_\+time\+\_\+period\+\_\+set {\bf booster\+::locale\+::operator-\/} (date\+\_\+time\+\_\+period\+\_\+set const \&a, date\+\_\+time\+\_\+period\+\_\+set const \&b)
\item 
{\footnotesize template$<$typename Char\+Type $>$ }\\std\+::basic\+\_\+ostream$<$ Char\+Type $>$ \& {\bf booster\+::locale\+::operator$<$$<$} (std\+::basic\+\_\+ostream$<$ Char\+Type $>$ \&out, date\+\_\+time const \&t)
\item 
{\footnotesize template$<$typename Char\+Type $>$ }\\std\+::basic\+\_\+istream$<$ Char\+Type $>$ \& {\bf booster\+::locale\+::operator$>$$>$} (std\+::basic\+\_\+istream$<$ Char\+Type $>$ \&in, date\+\_\+time \&t)
\item 
date\+\_\+time\+\_\+duration {\bf booster\+::locale\+::operator-\/} (date\+\_\+time const \&later, date\+\_\+time const \&earlier)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
This module provides various calendar, timezone and date time services 

\subsection{Function Documentation}
\index{Date, Time, Timezone and Calendar manipulations@{Date, Time, Timezone and Calendar manipulations}!operator+@{operator+}}
\index{operator+@{operator+}!Date, Time, Timezone and Calendar manipulations@{Date, Time, Timezone and Calendar manipulations}}
\subsubsection[{operator+(date\+\_\+time\+\_\+period\+\_\+set const \&a, date\+\_\+time\+\_\+period\+\_\+set const \&b)}]{\setlength{\rightskip}{0pt plus 5cm}date\+\_\+time\+\_\+period\+\_\+set booster\+::locale\+::operator+ (
\begin{DoxyParamCaption}
\item[{{\bf date\+\_\+time\+\_\+period\+\_\+set} const \&}]{a, }
\item[{{\bf date\+\_\+time\+\_\+period\+\_\+set} const \&}]{b}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{group__date__time_gabc5bab4c33ac439e2f5aef96988554bd}
Append two periods sets. Note this operator is not commutative 

References booster\+::locale\+::date\+\_\+time\+\_\+period\+\_\+set\+::add(), and booster\+::locale\+::date\+\_\+time\+\_\+period\+\_\+set\+::size().



Referenced by booster\+::locale\+::date\+\_\+time\+::operator$>$$>$=().

\index{Date, Time, Timezone and Calendar manipulations@{Date, Time, Timezone and Calendar manipulations}!operator-\/@{operator-\/}}
\index{operator-\/@{operator-\/}!Date, Time, Timezone and Calendar manipulations@{Date, Time, Timezone and Calendar manipulations}}
\subsubsection[{operator-\/(date\+\_\+time\+\_\+period\+\_\+set const \&a, date\+\_\+time\+\_\+period\+\_\+set const \&b)}]{\setlength{\rightskip}{0pt plus 5cm}date\+\_\+time\+\_\+period\+\_\+set booster\+::locale\+::operator-\/ (
\begin{DoxyParamCaption}
\item[{{\bf date\+\_\+time\+\_\+period\+\_\+set} const \&}]{a, }
\item[{{\bf date\+\_\+time\+\_\+period\+\_\+set} const \&}]{b}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{group__date__time_ga05efee16420d9fbaf9fae4f4339b7c98}
Append two period sets when all periods of set {\bfseries change} their sign 

References booster\+::locale\+::date\+\_\+time\+\_\+period\+\_\+set\+::add(), and booster\+::locale\+::date\+\_\+time\+\_\+period\+\_\+set\+::size().



Referenced by booster\+::locale\+::date\+\_\+time\+::operator$>$$>$=().

\index{Date, Time, Timezone and Calendar manipulations@{Date, Time, Timezone and Calendar manipulations}!operator-\/@{operator-\/}}
\index{operator-\/@{operator-\/}!Date, Time, Timezone and Calendar manipulations@{Date, Time, Timezone and Calendar manipulations}}
\subsubsection[{operator-\/(date\+\_\+time const \&later, date\+\_\+time const \&earlier)}]{\setlength{\rightskip}{0pt plus 5cm}date\+\_\+time\+\_\+duration booster\+::locale\+::operator-\/ (
\begin{DoxyParamCaption}
\item[{{\bf date\+\_\+time} const \&}]{later, }
\item[{{\bf date\+\_\+time} const \&}]{earlier}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{group__date__time_ga42f9d016f9cd71640a2d09a70da408c0}
Calculates the difference between two dates, the left operand is a later point on time line. Returns \doxyref{date\+\_\+time\+\_\+duration}{p.}{classbooster_1_1locale_1_1date__time__duration} object. \index{Date, Time, Timezone and Calendar manipulations@{Date, Time, Timezone and Calendar manipulations}!operator$<$$<$@{operator$<$$<$}}
\index{operator$<$$<$@{operator$<$$<$}!Date, Time, Timezone and Calendar manipulations@{Date, Time, Timezone and Calendar manipulations}}
\subsubsection[{operator$<$$<$(std\+::basic\+\_\+ostream$<$ Char\+Type $>$ \&out, date\+\_\+time const \&t)}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Char\+Type $>$ std\+::basic\+\_\+ostream$<$Char\+Type$>$\& booster\+::locale\+::operator$<$$<$ (
\begin{DoxyParamCaption}
\item[{std\+::basic\+\_\+ostream$<$ Char\+Type $>$ \&}]{out, }
\item[{{\bf date\+\_\+time} const \&}]{t}
\end{DoxyParamCaption}
)}\label{group__date__time_gab320b5ed42594f946aa3846ab0c20616}
Writes \doxyref{date\+\_\+time}{p.}{classbooster_1_1locale_1_1date__time} {\itshape t} to output stream {\itshape out}.

This function uses locale, calendar and time zone of the target stream {\itshape in}.

For example\+: 
\begin{DoxyCode}
date\_time now(time(0),hebrew\_calendar)
cout << "Year: " << period::year(now) <<" Full Date:"<< now;
\end{DoxyCode}


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

References booster\+::locale\+::ios\+\_\+info\+::display\+\_\+flags(), booster\+::locale\+::ios\+\_\+info\+::get(), and booster\+::locale\+::date\+\_\+time\+::time().



Referenced by booster\+::locale\+::date\+\_\+time\+::operator$>$$>$=().

\index{Date, Time, Timezone and Calendar manipulations@{Date, Time, Timezone and Calendar manipulations}!operator$>$$>$@{operator$>$$>$}}
\index{operator$>$$>$@{operator$>$$>$}!Date, Time, Timezone and Calendar manipulations@{Date, Time, Timezone and Calendar manipulations}}
\subsubsection[{operator$>$$>$(std\+::basic\+\_\+istream$<$ Char\+Type $>$ \&in, date\+\_\+time \&t)}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Char\+Type $>$ std\+::basic\+\_\+istream$<$Char\+Type$>$\& booster\+::locale\+::operator$>$$>$ (
\begin{DoxyParamCaption}
\item[{std\+::basic\+\_\+istream$<$ Char\+Type $>$ \&}]{in, }
\item[{{\bf date\+\_\+time} \&}]{t}
\end{DoxyParamCaption}
)}\label{group__date__time_gaa0034fd74b4847e8f43a088771cc9a4d}
Reads \doxyref{date\+\_\+time}{p.}{classbooster_1_1locale_1_1date__time} {\itshape t} from output stream {\itshape in} 

This function uses locale, calendar and time zone of the source stream {\itshape in}. 

References booster\+::locale\+::ios\+\_\+info\+::display\+\_\+flags(), booster\+::locale\+::ios\+\_\+info\+::get(), and booster\+::locale\+::date\+\_\+time\+::time().



Referenced by booster\+::locale\+::as\+::date\+\_\+full(), booster\+::locale\+::as\+::ftime(), and booster\+::locale\+::date\+\_\+time\+::operator$>$$>$=().

