summaryrefslogtreecommitdiff
path: root/doc/html/date_time
diff options
context:
space:
mode:
authorAnas Nashif <anas.nashif@intel.com>2012-10-30 12:57:26 -0700
committerAnas Nashif <anas.nashif@intel.com>2012-10-30 12:57:26 -0700
commit1a78a62555be32868418fe52f8e330c9d0f95d5a (patch)
treed3765a80e7d3b9640ec2e930743630cd6b9fce2b /doc/html/date_time
downloadboost-1a78a62555be32868418fe52f8e330c9d0f95d5a.tar.gz
boost-1a78a62555be32868418fe52f8e330c9d0f95d5a.tar.bz2
boost-1a78a62555be32868418fe52f8e330c9d0f95d5a.zip
Imported Upstream version 1.49.0upstream/1.49.0
Diffstat (limited to 'doc/html/date_time')
-rw-r--r--doc/html/date_time/date_time_io.html2520
-rw-r--r--doc/html/date_time/details.html1525
-rwxr-xr-xdoc/html/date_time/doxy.html1886
-rwxr-xr-xdoc/html/date_time/examples.html1165
-rwxr-xr-xdoc/html/date_time/examples/general_usage_examples.html134
-rwxr-xr-xdoc/html/date_time/gregorian.html1456
-rw-r--r--doc/html/date_time/local_time.html1657
-rwxr-xr-xdoc/html/date_time/posix_time.html1523
-rwxr-xr-xdoc/html/date_time/serialization.html149
9 files changed, 12015 insertions, 0 deletions
diff --git a/doc/html/date_time/date_time_io.html b/doc/html/date_time/date_time_io.html
new file mode 100644
index 0000000000..3a952b7e2a
--- /dev/null
+++ b/doc/html/date_time/date_time_io.html
@@ -0,0 +1,2520 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Date Time Input/Output</title>
+<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
+<link rel="up" href="../date_time.html" title="Chapter&#160;7.&#160;Boost.Date_Time">
+<link rel="prev" href="local_time.html" title="Local Time">
+<link rel="next" href="serialization.html" title="Serialization">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.html">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
+<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="local_time.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="serialization.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="date_time.date_time_io"></a>Date Time Input/Output</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="date_time_io.html#date_time.format_flags">Format Flags</a></span></dt>
+<dt><span class="section"><a href="date_time_io.html#date_time.date_facet">Date Facet</a></span></dt>
+<dt><span class="section"><a href="date_time_io.html#date_time.date_input_facet">Date Input Facet</a></span></dt>
+<dt><span class="section"><a href="date_time_io.html#date_time.time_facet">Time Facet</a></span></dt>
+<dt><span class="section"><a href="date_time_io.html#date_time.time_input_facet">Time Input Facet</a></span></dt>
+<dt><span class="section"><a href="date_time_io.html#date_time.io_objects">Date Time Formatter/Parser Objects</a></span></dt>
+<dt><span class="section"><a href="date_time_io.html#date_time.io_tutorial">Date Time IO Tutorial</a></span></dt>
+</dl></div>
+<h3>
+<a name="id1304289"></a>Date Time IO System</h3>
+<p>
+ <a class="link" href="date_time_io.html#streaming_exceptions">Exception Handling on Streams</a>
+ </p>
+<p>As of version 1.33, the date_time library utilizes a new IO streaming system. This new system gives the user great control over how dates and times can be represented. The customization options can be broken down into two groups: format flags and string elements. Format flags provide flexibility in the order of the date elements as well as the type. Customizing the string elements allows the replacement of built in strings from month names, weekday names, and other strings used in the IO.</p>
+<p>The output system is based on a date_facet (derived from std::facet), while the input system is based on a date_input_facet (also derived from std::facet). The time and local_time facets are derived from these base types. The output system utilizes three formatter objects, whereas the input system uses four parser objects. These formatter and parser objetcs are also customizable.</p>
+<p>It is important to note, that while all the examples shown here use narrow streams, there are wide stream facets available as well (see <a class="link" href="date_time_io.html#io_objects_table">IO Objects</a> for a complete list).</p>
+<p>It should be further noted that not all compilers are capable of using this IO system. For those compilers the IO system used in previous <code class="computeroutput">date_time</code> versions is still available. The "legacy IO" is automatically selected for these compilers, however, the legacy IO system can be manually selected by defining <code class="computeroutput">USE_DATE_TIME_PRE_1_33_FACET_IO</code>. See the <a class="link" href="details.html#date_time.buildinfo" title="Build-Compiler Information">Build-Compiler Information</a> for more information.</p>
+<a name="streaming_exceptions"></a><h6>
+<a name="id1304377"></a>Exception Handling on Streams</h6>
+<p>When an error occurs during the input streaming process, the <code class="computeroutput">std::ios_base::failbit</code> will (always) be set on the stream. It is also possible to have exceptions thrown when an error occurs. To "turn on" these exceptions, call the stream's <code class="computeroutput">exceptions</code> function with a parameter of <code class="computeroutput">std::ios_base::failbit</code>.</p>
+<pre class="screen">// "Turning on" exceptions
+date d(not_a_date_time);
+std::stringstream ss;
+ss.exceptions(std::ios_base::failbit);
+ss.str("204-Jan-01");
+ss &gt;&gt; d; // throws bad_year exception AND sets failbit on stream</pre>
+<h6>
+<a name="id1304420"></a>A simple example of this new system:</h6>
+<pre class="screen">//example to customize output to be "LongWeekday LongMonthname day, year"
+// "%A %b %d, %Y"
+date d(2005,Jun,25);
+date_facet* facet(new date_facet("%A %B %d, %Y"));
+std::cout.imbue(std::locale(std::cout.getloc(), facet));
+std::cout &lt;&lt; d &lt;&lt; std::endl;
+// "Saturday June 25, 2005"</pre>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.format_flags"></a>Format Flags</h3></div></div></div>
+<p>Many of the format flags this new system uses for output are those used by <code class="computeroutput">strftime(...)</code>, but not all. Some new flags have been added, and others overridden. The input system supports only specific flags, therefore, not all flags that work for output will work with input (we are currently working to correct this situation).</p>
+<p>The following tables list the all the flags available for both date_time IO as well as strftime. Format flags marked with a single asterisk (*) have a behavior unique to date_time. Those flags marked with an exclamation point (!) are not usable for input (at this time). The flags marked with a hash sign (#) are implemented by system locale and are known to be missing on some platforms. The first table is for dates, and the second table is for times.
+ </p>
+<p>
+ <a name="date_time_io.date_format_flags"></a>
+ Date Facet Format Flags
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Format Specifier</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%a</pre></td>
+<td>Abbreviated weekday name</td>
+</tr>
+<tr><td><pre class="screen">"Mon" =&gt; Monday</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%A</pre></td>
+<td>Long weekday name</td>
+</tr>
+<tr><td><pre class="screen">"Monday"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%b</pre></td>
+<td>Abbreviated month name</td>
+</tr>
+<tr><td><pre class="screen">"Feb" =&gt; February</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%B</pre></td>
+<td>Full month name</td>
+</tr>
+<tr><td><pre class="screen">"February"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%c !</pre></td>
+<td>The preferred date and time representation for the current locale.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%C !#</pre></td>
+<td>The century number (year/100) as a 2-digit integer.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%d</pre></td>
+<td>Day of the month as decimal 01 to 31</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%D !#</pre></td>
+<td>Equivalent to %m/%d/%y</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%e #</pre></td>
+<td>Like %d, the day of the month as a decimal number, but a leading zero is replaced by a space</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%G !</pre></td>
+<td>This has the same format and value as %y, except that if the ISO week number belongs to the previous or next year, that year is used instead.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%g !</pre></td>
+<td>Like %G, but without century.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%h !#</pre></td>
+<td> Equivalent to %b</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%j</pre></td>
+<td>Day of year as decimal from 001 to 366 for leap years, 001 - 365 for non-leap years.</td>
+</tr>
+<tr><td><pre class="screen">"060" =&gt; Feb-29</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%m</pre></td>
+<td>Month name as a decimal 01 to 12</td>
+</tr>
+<tr><td><pre class="screen">"01" =&gt; January</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%u !</pre></td>
+<td>The day of the week as a decimal, range 1 to 7, Monday being 1.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%U</pre></td>
+<td>The week number of the current year as a decimal number, range 00 to 53, starting with the first Sunday as the first day of week 01. In 2005, Jan 1st falls on a Saturday, so therefore it falls within week 00 of 2005 (week 00 spans 2004-Dec-26 to 2005-Jan-01. This also happens to be week 53 of 2004).</td>
+</tr>
+<tr><td><pre class="screen">date d(2005, Jan, 1); // Saturday
+// with format %U
+ss &lt;&lt; d; // "00"
+d += day(1); // Sunday
+ss &lt;&lt; d; // "01" beginning of week 1</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%V !#</pre></td>
+<td>The ISO 8601:1988 week number of the current year as a decimal number, range 01 to 53, where week 1 is the first week that has at least 4 days in the current year, and with Monday as the first day of the week.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%w</pre></td>
+<td>Weekday as decimal number 0 to 6</td>
+</tr>
+<tr><td><pre class="screen">"0" =&gt; Sunday</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%W</pre></td>
+<td>Week number 00 to 53 where Monday is first day of week 1</td>
+</tr>
+<tr><td><pre class="screen">date d(2005, Jan, 2); // Sunday
+// with format %W
+ss &lt;&lt; d; // "00"
+d += day(1); // Monday
+ss &lt;&lt; d; // "01" beginning of week 1</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%x</pre></td>
+<td>Implementation defined date format from the locale.</td>
+</tr>
+<tr><td><pre class="screen">date d(2005,Oct,31);
+date_facet* f = new date_facet("%x");
+
+locale loc = locale(locale("en_US"), f);
+cout.imbue(loc);
+cout &lt;&lt; d; // "10/31/2005"
+
+loc = locale(locale("de_DE"), f);
+cout.imbue(loc);
+cout &lt;&lt; d; // "31.10.2005"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%y</pre></td>
+<td>Two digit year</td>
+</tr>
+<tr><td><pre class="screen">"05" =&gt; 2005</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Y</pre></td>
+<td>Four digit year</td>
+</tr>
+<tr><td><pre class="screen">"2005"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Y-%b-%d</pre></td>
+<td>Default date format</td>
+</tr>
+<tr><td><pre class="screen">"2005-Apr-01"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Y%m%d</pre></td>
+<td>ISO format</td>
+</tr>
+<tr><td><pre class="screen">"20050401"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Y-%m-%d</pre></td>
+<td>ISO extended format</td>
+</tr>
+<tr><td><pre class="screen">"2005-04-01"</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+
+
+ <a name="date_time_io.time_format_flags"></a>
+ Time Facet Format Flags
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Format Specifier</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%- *!</pre></td>
+<td>Placeholder for the sign of a duration. Only displays when the duration is negative.</td>
+</tr>
+<tr><td><pre class="screen">"-13:15:16"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%+ *!</pre></td>
+<td>Placeholder for the sign of a duration. Always displays for both positive and negative.</td>
+</tr>
+<tr><td><pre class="screen">"+13:15:16"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%f</pre></td>
+<td>Fractional seconds are always used, even when their value is zero</td>
+</tr>
+<tr><td><pre class="screen">"13:15:16.000000"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%F *</pre></td>
+<td>Fractional seconds are used only when their value is not zero.</td>
+</tr>
+<tr><td><pre class="screen">"13:15:16"
+"05:04:03.001234"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%H</pre></td>
+<td>The hour as a decimal number using a 24-hour clock (range 00 to 23).</td>
+</tr>
+<tr><td>&#160;</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%I !</pre></td>
+<td>The hour as a decimal number using a 12-hour clock (range 01 to 12).</td>
+</tr>
+<tr><td>&#160;</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%k !</pre></td>
+<td>The hour (24-hour clock) as a decimal number (range 0 to 23); single digits are preceded by a blank.</td>
+</tr>
+<tr><td>&#160;</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%l !</pre></td>
+<td>The hour (12-hour clock) as a decimal number (range 1 to 12); single digits are preceded by a blank.</td>
+</tr>
+<tr><td>&#160;</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%M</pre></td>
+<td>The minute as a decimal number (range 00 to 59).</td>
+</tr>
+<tr><td>&#160;</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%O</pre></td>
+<td>The number of hours in a time duration as a decimal number (range 0 to max. representable duration); single digits are preceded by a zero.</td>
+</tr>
+<tr><td>&#160;</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%p !</pre></td>
+<td>Either `AM' or `PM' according to the given time value, or the corresponding strings for the current locale.</td>
+</tr>
+<tr><td>&#160;</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%P !#</pre></td>
+<td>Like %p but in lowercase: `am' or `pm' or a corresponding string for the current locale.</td>
+</tr>
+<tr><td>&#160;</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%r !#</pre></td>
+<td>The time in a.m. or p.m. notation. In the POSIX locale this is equivalent to `%I:%M:%S %p'</td>
+</tr>
+<tr><td>&#160;</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%R !</pre></td>
+<td>The time in 24-hour notation (%H:%M)</td>
+</tr>
+<tr><td>&#160;</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%s *</pre></td>
+<td>Seconds with fractional seconds.</td>
+</tr>
+<tr><td><pre class="screen">"59.000000"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%S</pre></td>
+<td>Seconds only</td>
+</tr>
+<tr><td><pre class="screen">"59"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%T !</pre></td>
+<td>The time in 24-hour notation (%H:%M:%S)</td>
+</tr>
+<tr><td>&#160;</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%q</pre></td>
+<td>ISO time zone (output only). This flag is ignored when using the time_facet with a ptime.</td>
+</tr>
+<tr><td><pre class="screen">"-0700" // Mountain Standard Time</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Q</pre></td>
+<td>ISO extended time zone (output only). This flag is ignored when using the time_facet with a ptime.</td>
+</tr>
+<tr><td><pre class="screen">"-05:00" // Eastern Standard Time</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%z *!</pre></td>
+<td>Abbreviated time zone (output only). This flag is ignored when using the time_facet with a ptime.</td>
+</tr>
+<tr><td><pre class="screen">"MST" // Mountain Standard Time</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Z *!</pre></td>
+<td>Full time zone name (output only). This flag is ignored when using the time_facet with a ptime.</td>
+</tr>
+<tr><td><pre class="screen">"EDT" // Eastern Daylight Time</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%ZP *</pre></td>
+<td>Posix time zone string (available to both input and output). This flag is ignored when using the time_facet with a ptime. For complete details on posix time zone strings, see <a class="link" href="local_time.html#date_time.local_time.posix_time_zone" title="Posix Time Zone">posix_time_zone class</a>.</td>
+</tr>
+<tr><td><pre class="screen">"EST-05EDT+01,M4.1.0/02:00,M10.5.0/02:00"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%x %X</pre></td>
+<td>Implementation defined date/time format from the locale.</td>
+</tr>
+<tr><td><pre class="screen">date d(2005,Oct,31);
+ptime pt(d, hours(20));
+time_facet* f = new time_facet("%x %X");
+
+locale loc = locale(locale("en_US"), f);
+cout.imbue(loc);
+cout &lt;&lt; pt; // "10/31/2005 08:00:00 PM"
+
+loc = locale(locale("de_DE"), f);
+cout.imbue(loc);
+cout &lt;&lt; pt; // "31.10.2005 20:00:00"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Y%m%dT%H%M%S%F%q</pre></td>
+<td>ISO format</td>
+</tr>
+<tr><td><pre class="screen">"20051015T131211-0700" // Oct 15, 2005 13:12:11 MST</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Y-%m-%d %H:%M:%S%F%Q</pre></td>
+<td>Extended ISO format</td>
+</tr>
+<tr><td><pre class="screen">"2005-10-15 13:12:11-07:00"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Y-%b-%d %H:%M:%S%F %z</pre></td>
+<td>Default format used when outputting ptime and local_date_time.</td>
+</tr>
+<tr><td><pre class="screen">"2005-Oct-15 13:12:11 MST"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Y-%b-%d %H:%M:%S%F %ZP</pre></td>
+<td>Default format used when inputting ptime and local_date_time.</td>
+</tr>
+<tr><td><pre class="screen">"2005-Oct-15 13:12:11 MST-07"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%-%H:%M:%S%F !</pre></td>
+<td>Default time_duration format for output. Sign will only be displayed for negative durations.</td>
+</tr>
+<tr><td><pre class="screen">"-13:14:15.003400"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%H:%M:%S%F</pre></td>
+<td>Default time_duration format for input.</td>
+</tr>
+<tr><td><pre class="screen">"13:14:15.003400"</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<p>* Signifies flags that have a behavior unique to <code class="computeroutput">date_time</code>.</p>
+<p># Signifies flags that have a platform-dependent behavior. These may not be supported everywhere.</p>
+<p>! Signifies flags that currently do not work for input.</p>
+</div>
+<p>The following table lists the available facets.</p>
+<a name="io_objects_table"></a><h4>
+<a name="id1305857"></a>IO Objects</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Output</th>
+<th>Input</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput"><a class="link" href="../boost/date_time/date_facet.html" title="Class template date_facet">date_facet</a></code></td>
+<td><code class="computeroutput"><a class="link" href="../boost/date_time/date_input_facet.html" title="Class template date_input_facet">date_input_facet</a></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><a class="link" href="../boost/date_time/date_facet.html" title="Class template date_facet">wdate_facet</a></code></td>
+<td><code class="computeroutput"><a class="link" href="../boost/date_time/date_input_facet.html" title="Class template date_input_facet">wdate_input_facet</a></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><a class="link" href="../boost/date_time/time_facet.html" title="Class template time_facet">time_facet</a></code></td>
+<td><code class="computeroutput"><a class="link" href="../boost/date_time/time_input_facet.html" title="Class template time_input_facet">time_input_facet</a></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><a class="link" href="../boost/date_time/time_facet.html" title="Class template time_facet">wtime_facet</a></code></td>
+<td><code class="computeroutput"><a class="link" href="../boost/date_time/time_input_facet.html" title="Class template time_input_facet">wtime_input_facet</a></code></td>
+</tr>
+<tr>
+<td>
+<code class="computeroutput"><a class="link" href="../boost/date_time/time_facet.html" title="Class template time_facet">local_time_facet</a></code>*</td>
+<td>
+<code class="computeroutput"><a class="link" href="../boost/date_time/time_input_facet.html" title="Class template time_input_facet">local_time_input_facet</a></code>*</td>
+</tr>
+<tr>
+<td>
+<code class="computeroutput"><a class="link" href="../boost/date_time/time_facet.html" title="Class template time_facet">wlocal_time_facet</a></code>*</td>
+<td>
+<code class="computeroutput"><a class="link" href="../boost/date_time/time_input_facet.html" title="Class template time_input_facet">wlocal_time_input_facet</a></code>*</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ * These links lead to the <code class="computeroutput">time_facet</code> and <code class="computeroutput">time_input_facet</code> reference sections. They are not actual classes but typedefs.
+ </p>
+<h4>
+<a name="id1306288"></a>Formatter/Parser Objects</h4>
+<p>To implement the new i/o facets the date-time library uses a number of new parsers and formatters. These classes are available for users that want to implement specialized input/output routines.</p>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Output</th>
+<th>Input</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput"><a class="link" href="../boost/date_time/period_formatter.html" title="Class template period_formatter">period_formatter</a></code></td>
+<td><code class="computeroutput"><a class="link" href="../boost/date_time/period_parser.html" title="Class template period_parser">period_parser</a></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><a class="link" href="../boost/date_time/date_generator_formatter.html" title="Class template date_generator_formatter">date_generator_formatter</a></code></td>
+<td><code class="computeroutput"><a class="link" href="../boost/date_time/date_generator_parser.html" title="Class template date_generator_parser">date_generator_parser</a></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><a class="link" href="../boost/date_time/special_values_formatter.html" title="Class template special_values_formatter">special_values_formatter</a></code></td>
+<td><code class="computeroutput"><a class="link" href="../boost/date_time/special_values_parser.html" title="Class template special_values_parser">special_values_parser</a></code></td>
+</tr>
+<tr>
+<td>&#160;</td>
+<td><code class="computeroutput"><a class="link" href="../boost/date_time/format_date_parser.html" title="Class template format_date_parser">format_date_parser</a></code></td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.date_facet"></a>Date Facet</h3></div></div></div>
+<a class="link" href="date_time_io.html#date_facet_intro">Introduction</a> -
+ <a class="link" href="date_time_io.html#date_facet_constr">Construction</a> -
+ <a class="link" href="date_time_io.html#date_facet_accessors">Accessors</a><a name="date_facet_intro"></a><h4>
+<a name="id1306484"></a>Introduction</h4>
+<p>The <code class="computeroutput">boost::date_time::date_facet</code> enables users to have significant control over the output streaming of dates (and other gregorian objects). The date_facet is typedef'd in the <code class="computeroutput">gregorian</code> namespace as <code class="computeroutput">date_facet</code> and <code class="computeroutput">wdate_facet</code>.
+ </p>
+<a name="date_facet_constr"></a><h4>
+<a name="id1306525"></a>Construction</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">date_facet()</pre></td>
+<td>Default constructor</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">date_facet(...)
+ Parameters:
+ char_type* format
+ input_collection_type</pre></td>
+<td>Format given will be used for date output. All other formats will use their defaults. Collection is the set of short names to be used for months. All other name collections will use their defaults.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">date_facet(...)
+ Parameters:
+ char_type* format
+ period_formatter_type
+ special_values_formatter_type
+ date_gen_formatter_type</pre></td>
+<td>Format given will be used for date output. The remaining parameters are formatter objects. Further details on these objects can be found <a class="link" href="date_time_io.html#date_time.io_objects" title="Date Time Formatter/Parser Objects">here</a>. This constructor also provides default arguments for all parameters except the format. Therefore, <code class="computeroutput">date_facet("%m %d %Y")</code> will work.</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="date_facet_accessors"></a><h4>
+<a name="id1306637"></a>Accessors</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void format(char_type*)</pre></td>
+<td>Set the format for dates.</td>
+</tr>
+<tr><td><pre class="screen">date_facet* f = new date_facet();
+f-&gt;format("%m %d %Y");</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void set_iso_format()</pre></td>
+<td>Sets the date format to ISO</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;set_iso_format();
+// "%Y%m%d"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void set_iso_extended_format()</pre></td>
+<td>Sets the date format to ISO Extended</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;set_iso_extended_format();
+// "%Y-%m-%d"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void month_format(char_type*)</pre></td>
+<td>Set the format for months when they are 'put' individually.</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;month_format("%B");
+ss &lt;&lt; greg_month(12); // "December"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void weekday_format(char_type*)</pre></td>
+<td>Set the format for weekdays when they are 'put' individually.</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;weekday_format("%a");
+ss &lt;&lt; greg_weekday(2); // "Tue"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void period_formatter(...)
+ Parameter:
+ period_formatter_type</pre></td>
+<td>Replaces the period formatter object with a user created one.</td>
+</tr>
+<tr><td>see the <a class="link" href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void special_values_formatter(...)
+ Parameter:
+ special_values_formatter_type</pre></td>
+<td>Replaces the special_values formatter object with a user created one.</td>
+</tr>
+<tr><td>see the <a class="link" href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void date_gen_phrase_strings(...)
+ Parameters:
+ input_collection_type
+ date_gen_formatter_type::
+ phrase_elements</pre></td>
+<td>Sets new date generator phrase strings in date_gen_formatter. The input collection is a vector of strings (for details on these strings see <a class="link" href="date_time_io.html#io_objects.date_generators">date generator formatter/parser documentation</a>). The phrase_elements parameter is an enum, defined in the date_generator_formatter object, that has a default value of 'first'. It is used to indicate what the position of the first string in the collection will be.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void short_weekday_names(...)
+ Parameter:
+ input_collection_type</pre></td>
+<td>Replace strings used when 'putting' short weekdays.</td>
+</tr>
+<tr><td>see the <a class="link" href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void long_weekday_names(...)
+ Parameter:
+ input_collection_type</pre></td>
+<td>Replace strings used when 'putting' long weekdays.</td>
+</tr>
+<tr><td>see the <a class="link" href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void short_month_names(...)
+ Parameter:
+ input_collection_type</pre></td>
+<td>Replace strings used when 'putting' short months.</td>
+</tr>
+<tr><td>see the <a class="link" href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void long_month_names(...)
+ Parameter:
+ input_collection_type</pre></td>
+<td>Replace strings used when 'putting' long months.</td>
+</tr>
+<tr><td>see the <a class="link" href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(...)
+ Common parameters for all
+ 'put' functions:
+ OutItrT
+ ios_base
+ char_type
+ Unique parameter for 'put' funcs:
+ gregorian object</pre></td>
+<td>There are 12 put functions in the date_facet. The common paraeters are: an iterator pointing to the next item in the stream, an ios_base object, and the fill character. Each unique gregorian object has it's own put function. Each unique put function is described below.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., date)</pre></td>
+<td>Puts a date object into the stream using the format set by <code class="computeroutput">format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., days)</pre></td>
+<td>Puts a days object into the stream as a number.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., month)</pre></td>
+<td>Puts a month object into the stream using the format set by <code class="computeroutput">month_format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., day)</pre></td>
+<td>Puts a day of month object into the stream as a two digit number.</td>
+</tr>
+<tr><td><pre class="screen">"01" // January 1st</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., day_of_week)</pre></td>
+<td>Puts a day of week object into the stream using the format set by <code class="computeroutput">weekday_format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., date_period)</pre></td>
+<td>Puts a date_period into the stream. The format of the dates will use the format set by <code class="computeroutput">format(..)</code> or the default date format. The type of period (open or closed range) and the delimiters used are those used by the period_formatter.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., partial_date)</pre></td>
+<td>Puts a partial_date date_generator object into the stream. The month format used is set by <code class="computeroutput">month_format(..)</code> or the default. The day of month is represented as a two digit number.</td>
+</tr>
+<tr><td><pre class="screen">"01 Jan" // default formats
+"01 January" // long month format</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., date_generator)
+ Date Generator Type:
+ nth_day_of_the_week_in_month</pre></td>
+<td>Puts a nth_day_of_the_week_in_month object into the stream. The month format is set by <code class="computeroutput">month_format(...)</code> or the default. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a class="link" href="date_time_io.html#io_objects.date_generators">date_generator_formatter</a>.</td>
+</tr>
+<tr><td><pre class="screen">"third Fri in May" // defaults</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., date_generator)
+ Date Generator Type:
+ first_day_of_the_week_in_month</pre></td>
+<td>Puts a first_day_of_the_week_in_month object into the stream. The month format is set by <code class="computeroutput">month_format(...)</code> or the default. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a class="link" href="date_time_io.html#io_objects.date_generators">date_generator_formatter</a>.</td>
+</tr>
+<tr><td><pre class="screen">"first Wed of Jun" // defaults</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., date_generator)
+ Date Generator Type:
+ last_day_of_the_week_in_month</pre></td>
+<td>Puts a last_day_of_the_week_in_month object into the stream. The month format is set by <code class="computeroutput">month_format(...)</code> or the default. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a class="link" href="date_time_io.html#io_objects.date_generators">date_generator_formatter</a>.</td>
+</tr>
+<tr><td><pre class="screen">"last Tue of Mar" // defaults</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., date_generator)
+ Date Generator Type:
+ first_day_of_the_week_after</pre></td>
+<td>Puts a first_day_of_the_week_after object into the stream. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a class="link" href="date_time_io.html#io_objects.date_generators">date_generator_formatter</a>.</td>
+</tr>
+<tr><td><pre class="screen">"first Sat after" // defaults</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., date_generator)
+ Date Generator Type:
+ first_day_of_the_week_before</pre></td>
+<td>Puts a first_day_of_the_week_before object into the stream. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a class="link" href="date_time_io.html#io_objects.date_generators">date_generator_formatter</a>.</td>
+</tr>
+<tr><td><pre class="screen">"first Mon before" // defaults</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.date_input_facet"></a>Date Input Facet</h3></div></div></div>
+<a class="link" href="date_time_io.html#date_input_facet_intro">Introduction</a> -
+ <a class="link" href="date_time_io.html#date_input_facet_constr">Construction</a> -
+ <a class="link" href="date_time_io.html#date_input_facet_accessors">Accessors</a><a name="date_input_facet_intro"></a><h4>
+<a name="id1307615"></a>Introduction</h4>
+<p>The <code class="computeroutput">boost::date_time::date_input_facet</code> enables users to have significant control how dates (and other gregorian objects) are streamed in. The date_input_facet is typedef'd in the <code class="computeroutput">gregorian</code> namespace as <code class="computeroutput">date_input_facet</code> and <code class="computeroutput">wdate_input_facet</code>.
+ </p>
+<a name="date_input_facet_constr"></a><h4>
+<a name="id1307657"></a>Construction</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">date_input_facet()</pre></td>
+<td>Default constructor</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">date_input_facet(string_type format)</pre></td>
+<td>Format given will be used for date input. All other formats will use their defaults.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">date_input_facet(...)
+ Parameters:
+ string_type format
+ format_date_parser_type
+ special_values_parser_type
+ period_parser_type
+ date_gen_parser_type</pre></td>
+<td>Format given will be used for date input. The remaining parameters are parser objects. Further details on these objects can be found <a class="link" href="date_time_io.html#date_time.io_objects" title="Date Time Formatter/Parser Objects">here</a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="date_input_facet_accessors"></a><h4>
+<a name="id1307759"></a>Accessors</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void format(char_type*)</pre></td>
+<td>Set the format for dates.</td>
+</tr>
+<tr><td><pre class="screen">date_input_facet* f =
+ new date_input_facet();
+f-&gt;format("%m %d %Y");</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void set_iso_format()</pre></td>
+<td>Sets the date format to ISO</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;set_iso_format();
+// "%Y%m%d"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void set_iso_extended_format()</pre></td>
+<td>Sets the date format to ISO Extended</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;set_iso_extended_format();
+// "%Y-%m-%d"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void month_format(char_type*)</pre></td>
+<td>Set the format when 'get'ing months individually.</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;month_format("%B");
+ss.str("March");
+ss &gt;&gt; m; // March</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void weekday_format(char_type*)</pre></td>
+<td>Set the format when 'get'ing weekdays individually.</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;weekday_format("%a");
+ss.str("Sun");
+ss &gt;&gt; wd; // Sunday</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void year_format(char_type*)</pre></td>
+<td>Set the format when 'get'ing years individually.</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;weekday_format("%y");
+ss.str("04");
+ss &gt;&gt; year; // 2004</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void period_parser(...)
+ Parameter:
+ period_parser_type</pre></td>
+<td>Replaces the period parser object with a user created one.</td>
+</tr>
+<tr><td>see the <a class="link" href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void special_values_parser(...)
+ Parameter:
+ special_values_parser_type</pre></td>
+<td>Replaces the special_values parser object with a user created one.</td>
+</tr>
+<tr><td>see the <a class="link" href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void date_gen_phrase_strings(...)
+ Parameters:
+ input_collection_type</pre></td>
+<td>Sets new date generator phrase strings in date_gen_parser. The input collection is a vector of strings (for details on these strings see <a class="link" href="date_time_io.html#io_objects.date_generators">date generator formatter/parser documentation</a>).</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void short_weekday_names(...)
+ Parameter:
+ input_collection_type</pre></td>
+<td>Replace strings used when 'getting' short weekdays.</td>
+</tr>
+<tr><td>see the <a class="link" href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void long_weekday_names(...)
+ Parameter:
+ input_collection_type</pre></td>
+<td>Replace strings used when 'getting' long weekdays.</td>
+</tr>
+<tr><td>see the <a class="link" href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void short_month_names(...)
+ Parameter:
+ input_collection_type</pre></td>
+<td>Replace strings used when 'getting' short months.</td>
+</tr>
+<tr><td>see the <a class="link" href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void long_month_names(...)
+ Parameter:
+ input_collection_type</pre></td>
+<td>Replace strings used when 'getting' long months.</td>
+</tr>
+<tr><td>see the <a class="link" href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(...)
+ Common parameters for all
+ 'get' functions:
+ InItrT from
+ InItrT to
+ ios_base
+ Unique parameter for 'get' funcs:
+ gregorian object</pre></td>
+<td>There are 13 get functions in the date_input_facet. The common parameters are: an iterator pointing to the begining of the stream, an iterator pointing to the end of the stream, and an ios_base object. Each unique gregorian object has it's own get function. Each unique get function is described below.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., date)</pre></td>
+<td>Gets a date object from the stream using the format set by <code class="computeroutput">format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen">ss.str("2005-Jan-01");
+ss &gt;&gt; d; // default format</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., month)</pre></td>
+<td>Gets a month object from the stream using the format set by <code class="computeroutput">month_format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen">ss.str("Feb");
+ss &gt;&gt; m; // default format</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., day_of_week)</pre></td>
+<td>Gets a day of week object from the stream using the format set by <code class="computeroutput">weekday_format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen">ss.str("Sun");
+ss &gt;&gt; dow; // default format</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., day)</pre></td>
+<td>Gets a day of month object from the stream as a two digit number.</td>
+</tr>
+<tr><td><pre class="screen">"01" // January 1st</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., year)</pre></td>
+<td>Gets a year object from the stream as a number. The number of expected digits depends on the year format.</td>
+</tr>
+<tr><td><pre class="screen">ss/str("2005");
+ss &gt;&gt; y; // default format</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., days)</pre></td>
+<td>Gets a days object from the stream as a number.</td>
+</tr>
+<tr><td><pre class="screen">ss.str("356");
+ss &gt;&gt; dys; // a full year</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., date_period)</pre></td>
+<td>Gets a date_period from the stream. The format of the dates will use the format set by <code class="computeroutput">format(..)</code> or the default date format. The type of period (open or closed range) and the delimiters used are those used by the period_parser.</td>
+</tr>
+<tr><td>see the <a class="link" href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., partial_date)</pre></td>
+<td>Gets a partial_date date_generator object from the stream. The month format used is set by <code class="computeroutput">month_format(..)</code> or the default. The day of month is represented as a two digit number.</td>
+</tr>
+<tr><td><pre class="screen">"01 Jan" // default formats
+"01 January" // long month format</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., date_generator)
+ Date Generator Type:
+ nth_day_of_the_week_in_month</pre></td>
+<td>Gets a nth_day_of_the_week_in_month object from the stream. The month format is set by <code class="computeroutput">month_format(...)</code> or the default. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a class="link" href="date_time_io.html#io_objects.date_generators">date_generator_parser</a>.</td>
+</tr>
+<tr><td><pre class="screen">"third Fri in May" // defaults</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., date_generator)
+ Date Generator Type:
+ first_day_of_the_week_in_month</pre></td>
+<td>Gets a first_day_of_the_week_in_month object from the stream. The month format is set by <code class="computeroutput">month_format(...)</code> or the default. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a class="link" href="date_time_io.html#io_objects.date_generators">date_generator_parser</a>.</td>
+</tr>
+<tr><td><pre class="screen">"first Wed of Jun" // defaults</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., date_generator)
+ Date Generator Type:
+ last_day_of_the_week_in_month</pre></td>
+<td>Gets a last_day_of_the_week_in_month object from the stream. The month format is set by <code class="computeroutput">month_format(...)</code> or the default. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a class="link" href="date_time_io.html#io_objects.date_generators">date_generator_parser</a>.</td>
+</tr>
+<tr><td><pre class="screen">"last Tue of Mar" // defaults</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., date_generator)
+ Date Generator Type:
+ first_day_of_the_week_after</pre></td>
+<td>Gets a first_day_of_the_week_after object from the stream. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a class="link" href="date_time_io.html#io_objects.date_generators">date_generator_parser</a>.</td>
+</tr>
+<tr><td><pre class="screen">"first Sat after" // defaults</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., date_generator)
+ Date Generator Type:
+ first_day_of_the_week_before</pre></td>
+<td>Gets a first_day_of_the_week_before object from the stream. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a class="link" href="date_time_io.html#io_objects.date_generators">date_generator_parser</a>.</td>
+</tr>
+<tr><td><pre class="screen">"first Mon before" // defaults</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.time_facet"></a>Time Facet</h3></div></div></div>
+<a class="link" href="date_time_io.html#time_facet_intro">Introduction</a> -
+ <a class="link" href="date_time_io.html#time_facet_constr">Construction</a> -
+ <a class="link" href="date_time_io.html#time_facet_accessors">Accessors</a><a name="time_facet_intro"></a><h4>
+<a name="id1308807"></a>Introduction</h4>
+<p>The <code class="computeroutput">boost::date_time::time_facet</code> is an extension of the <code class="computeroutput">boost::date_time::date_facet</code>. The time_facet is typedef'ed in the <code class="computeroutput">posix_time</code> namespace as <code class="computeroutput">time_facet</code> and <code class="computeroutput">wtime_facet</code>. It is typedef'd in the <code class="computeroutput">local_time</code> namespace as <code class="computeroutput">local_time_facet</code> and <code class="computeroutput">wlocal_time_facet</code>.
+ </p>
+<a name="time_facet_constr"></a><h4>
+<a name="id1308871"></a>Construction</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">time_facet()</pre></td>
+<td>Default constructor</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">time_facet(...)
+ Parameters:
+ char_type* format
+ period_formatter_type
+ special_values_formatter_type
+ date_gen_formatter_type</pre></td>
+<td>Format given will be used for time output. The remaining parameters are formatter objects. Further details on these objects can be found <a class="link" href="date_time_io.html#date_time.io_objects" title="Date Time Formatter/Parser Objects">here</a>. This constructor also provides default arguments for all parameters except the format. Therefore, <code class="computeroutput">time_facet("%H:%M:S %m %d %Y")</code> will work.</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="time_facet_accessors"></a><h4>
+<a name="id1308963"></a>Accessors</h4>
+<p>
+ The time_facet inherits all the public date_facet methods. Therefore, the date_facet methods are not listed here. Instead, they can be found by following <a class="link" href="date_time_io.html#date_time.date_facet" title="Date Facet">this</a> link.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void time_duration_format(...)
+ Parameter:
+ char_type*</pre></td>
+<td>Sets the time_duration format. The time_duration format has the ability to display the sign of the duration. The <code class="computeroutput">'%+'</code> flag will always display the sign. The <code class="computeroutput">'%-'</code> will only display if the sign is negative. Currently the '-' and '+' characters are used to denote the sign.</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;time_duration_format("%+%H:%M");
+// hours and minutes only w/ sign always displayed
+time_duration td1(3, 15, 56);
+time_duration td2(-12, 25, 32);
+ss &lt;&lt; td1; // "+03:15:56"
+ss &lt;&lt; td2; // "-12:25:56"
+ </pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void set_iso_format()</pre></td>
+<td>Sets the date and time format to ISO.</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;set_iso_format();
+// "%Y%m%dT%H%M%S%F%q"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void set_iso_extended_format()</pre></td>
+<td>Sets the date and time format to ISO Extended</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;set_iso_extended_format();
+// "%Y-%m-%d %H:%M:%S%F%Q"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(...)
+ Common parameters for all
+ 'put' functions:
+ OutItrT
+ ios_base
+ char_type
+ Unique parameter for 'put' funcs:
+ posix_time object</pre></td>
+<td>There are 3 put functions in the time_facet. The common parameters are: an iterator pointing to the next item in the stream, an ios_base object, and the fill character. Each unique posix_time object has it's own put function. Each unique put function is described below.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., ptime)</pre></td>
+<td>Puts a ptime object into the stream using the format set by <code class="computeroutput">format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., time_duration)</pre></td>
+<td>Puts a time_duration object into the stream using the format set by <code class="computeroutput">time_duration_format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., time_period)</pre></td>
+<td>Puts a time_period into the stream. The format of the dates and times will use the format set by <code class="computeroutput">format(..)</code> or the default date/time format. The type of period (open or closed range) and the delimiters used are those used by the period_formatter.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.time_input_facet"></a>Time Input Facet</h3></div></div></div>
+<a class="link" href="date_time_io.html#time_input_facet_intro">Introduction</a> -
+ <a class="link" href="date_time_io.html#time_input_facet_constr">Construction</a> -
+ <a class="link" href="date_time_io.html#time_input_facet_accessors">Accessors</a><a name="time_input_facet_intro"></a><h4>
+<a name="id1309304"></a>Introduction</h4>
+<p>The <code class="computeroutput">boost::date_time::time_input_facet</code> is an extension of the <code class="computeroutput">date_input_facet</code>. It is typedef'ed in the <code class="computeroutput">boost::posix_time</code> namespace as <code class="computeroutput">time_input_facet</code> and <code class="computeroutput">wtime_input_facet</code>. It is typedef'ed in the <code class="computeroutput">boost::local_time</code> namespace as <code class="computeroutput">local_time_input_facet</code> and <code class="computeroutput">wlocal_time_input_facet</code>.
+ </p>
+<a name="time_input_facet_constr"></a><h4>
+<a name="id1309370"></a>Construction</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">time_input_facet()</pre></td>
+<td>Default constructor</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">time_input_facet(string_type)</pre></td>
+<td>Format given will be used for date/time input. All other formats will use their defaults.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">time_input_facet(...)
+ Parameters:
+ string_type format
+ format_date_parser_type
+ special_values_parser_type
+ period_parser_type
+ date_gen_parser_type</pre></td>
+<td>Format given will be used for date/time input. The remaining parameters are parser objects. Further details on these objects can be found <a class="link" href="date_time_io.html#date_time.io_objects" title="Date Time Formatter/Parser Objects">here</a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="time_input_facet_accessors"></a><h4>
+<a name="id1309471"></a>Accessors</h4>
+<p>
+ The time_input_facet inherits all the public date_input_facet methods. Therefore, the date_input_facet methods are not listed here. Instead, they can be found by following <a class="link" href="date_time_io.html#date_time.date_input_facet" title="Date Input Facet">this</a> link.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void set_iso_format()</pre></td>
+<td>Sets the time format to ISO</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;set_iso_format();
+// "%Y%m%dT%H%M%S%F%q"
+"20051225T132536.789-0700"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void set_iso_extended_format()</pre></td>
+<td>Sets the date format to ISO Extended</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;set_iso_extended_format();
+// "%Y-%m-%d %H:%M:%S%F %Q"
+"2005-12-25 13:25:36.789 -07:00"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void time_duration_format(...)
+ Parameter:
+ char_type*</pre></td>
+<td>Sets the time_duration format.</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;time_duration_format("%H:%M");
+// hours and minutes only</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(...)
+ Common parameters for all
+ 'get' functions:
+ InItrT from
+ InItrT to
+ ios_base
+ Unique parameter for 'get' funcs:
+ gregorian object</pre></td>
+<td>There are 3 get functions in the time_input_facet. The common parameters are: an iterator pointing to the begining of the stream, an iterator pointing to the end of the stream, and an ios_base object. Each unique gregorian object has it's own get function. Each unique get function is described below.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., ptime)</pre></td>
+<td>Gets a ptime object from the stream using the format set by <code class="computeroutput">format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen">ss.str("2005-Jan-01 13:12:01");
+ss &gt;&gt; pt; // default format</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., time_duration)</pre></td>
+<td>Gets a time_duration object from the stream using the format set by <code class="computeroutput">time_duration_format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen">ss.str("01:25:15.000123000");
+ss &gt;&gt; td; // default format</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., time_period)</pre></td>
+<td>Gets a time_period from the stream. The format of the dates/times will use the format set by <code class="computeroutput">format(..)</code> or the default date and time format. The type of period (open or closed range) and the delimiters used are those used by the period_parser.</td>
+</tr>
+<tr><td>see the <a class="link" href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.io_objects"></a>Date Time Formatter/Parser Objects</h3></div></div></div>
+<h3>
+<a name="id1309776"></a>Date Time Formatter/Parser Objects</h3>
+<a class="link" href="date_time_io.html#io_objects.periods">Periods</a> |
+ <a class="link" href="date_time_io.html#io_objects.date_generators">Date Generators</a> |
+ <a class="link" href="date_time_io.html#io_objects.special_values">Special Values</a> |
+ <a class="link" href="date_time_io.html#io_objects.format_date_parser">Format Date Parser</a><a name="io_objects.periods"></a><h4>
+<a name="id1309823"></a>Periods</h4>
+<p>The period_formatter and period_parser provide a uniform interface for the input and output of date_periods, time_periods, and in a future release, local_date_time_periods. The user has control over the delimiters, formats of the date/time components, and the form the period takes. The format of the date/time components is controlled via the date_time input and output facets.</p>
+<h5>
+<a name="id1309838"></a>Period Form</h5>
+<p>Periods are constructed with open ranged parameters. The first value is the starting point, and is included in the period. The end value is not included but immediately follows the last value: [begin/end). However, a period can be streamed as either an open range or a closed range.</p>
+<pre class="screen">[2003-Jan-01/2003-Dec-31] &lt;-- period holding 365 days
+[2003-Jan-01/2004-Jan-01) &lt;-- period holding 365 days</pre>
+<h5>
+<a name="id1309861"></a>Delimiters</h5>
+<p>There are four delimiters. The default values are</p>
+<table border="0" summary="Simple list" class="simplelist">
+<tr><td>"\" - separator</td></tr>
+<tr><td>"[" - start delimiter</td></tr>
+<tr><td>")" - open range end delimiter</td></tr>
+<tr><td>"]" - closed range end delimiter</td></tr>
+</table>
+<p>A user can provide a custom set of delimiters. Custom delimiters may contain spaces.</p>
+<h5>
+<a name="id1309894"></a>Customization</h5>
+<p>The period form and delimiters can be set as construction parameters or by means of accessor functions. A custom period parser/formatter can then be used as a construction parameter to a new facet, or can be set in an existing facet via an accessor function.</p>
+<h5>
+<a name="id1309907"></a>Period Formatter/Parser Reference</h5>
+ The complete class reference can be found here: <code class="computeroutput"><a class="link" href="../boost/date_time/period_formatter.html" title="Class template period_formatter">Period Formatter Doxygen Reference</a></code> and here: <code class="computeroutput"><a class="link" href="../boost/date_time/period_parser.html" title="Class template period_parser">Period Parser Doxygen Reference</a></code><p>
+ </p>
+<h5>
+<a name="id1309939"></a>Period Formatter Construction</h5>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th valign="top">Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody><tr>
+<td valign="top"><pre class="screen">period_formatter(...)
+ Parameters:
+ range_display_options
+ char_type*
+ char_type*
+ char_type*
+ char_type*</pre></td>
+<td>NOTE: All five construction parameters have default values so this constructor also doubles as the default constructor. The <code class="computeroutput">range_display_options</code> is a public type enum of the <code class="computeroutput">period_formatter</code> class. The possible choices are AS_OPEN_RANGE or AS_CLOSED_RANGE. The closed range is the default. A period has three significant points: the begining, the last, and the end. A closed range period takes the form [begin,end), where an open range period takes the form [begin,last]. The four char_type* parameters are: the period separator, the start delimiter, the open range end delimiter, and the closed range end delimiter.</td>
+</tr></tbody>
+</table></div>
+<p>
+ </p>
+<h5>
+<a name="id1310012"></a>Period Formatter Accessors</h5>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">range_display_options range_option()</pre></td>
+<td>Returns the current setting for the range display (either AS_OPEN_RANGE or AS_CLOSED_RANGE).</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void range_option(...)
+ Parameter:
+ range_display_options</pre></td>
+<td>Sets the option for range display (either AS_OPEN_RANGE or AS_CLOSED_RANGE).</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void delimiter_strings(...)
+ Parameters:
+ string_type
+ string_type
+ string_type
+ string_type</pre></td>
+<td>Set new delimiter strings in the formatter.</td>
+</tr>
+<tr><td><pre class="screen">string beg("-&gt;| ");
+string sep(" || ");
+string opn(" -&gt;|");
+string clo(" |&lt;-");
+pf.delimiter_strings(beg, sep,
+ opn, clo);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">put_period_start_delimeter(...)
+ Return Type:
+ OutItrT
+ Parameter:
+ OutItrT</pre></td>
+<td>Puts the start delimiter into the stream at position pointed to by OutItrT parameter.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">put_period_sepatator(...)
+ Return Type:
+ OutItrT
+ Parameter:
+ OutItrT</pre></td>
+<td>Puts the separator into the stream at position pointed to by OutItrT parameter.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">put_period_end_delimeter(...)
+ Return Type:
+ OutItrT
+ Parameter:
+ OutItrT</pre></td>
+<td>Puts the end delimiter into the stream at position pointed to by OutItrT parameter.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put_period(...)
+ Parameters:
+ OutItrT
+ ios_base
+ char_type
+ period_type
+ facet_type</pre></td>
+<td>Puts a period into the stream using the set values for delimiters, separator, and range display. The facet parameter is used to put the date (or time) objects of the period.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<p>
+ </p>
+<h5>
+<a name="id1310265"></a>Period Parser Construction</h5>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th valign="top">Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">period_parser(...)
+ Parameters:
+ period_range_option
+ char_type*
+ char_type*
+ char_type*
+ char_type*</pre></td>
+<td>NOTE: All five construction parameters have default values so this constructor also doubles as the default constructor. The <code class="computeroutput">period_range_option</code> is a public type enum of the <code class="computeroutput">period_parser</code> class. The possible choices are AS_OPEN_RANGE or AS_CLOSED_RANGE. The closed range is the default. A period has three significant points: the begining, the last, and the end. A closed range period takes the form [begin,end), where an open range period takes the form [begin,last]. The four char_type* parameters are: the period separator, the start delimiter, the open range end delimiter, and the closed range end delimiter.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">period_parser(period_parser)</pre></td>
+<td>Copy constructor</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<h5>
+<a name="id1310353"></a>Period Parser Accessors</h5>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">period_range_option range_option()</pre></td>
+<td>Returns the current setting for the period range (either AS_OPEN_RANGE or AS_CLOSED_RANGE).</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void range_option(...)
+ Parameter:
+ period_range_option </pre></td>
+<td>Sets the option for period range (either AS_OPEN_RANGE or AS_CLOSED_RANGE).</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void delimiter_strings(...)
+ Parameters:
+ string_type
+ string_type
+ string_type
+ string_type</pre></td>
+<td>Set new delimiter strings in the parser.</td>
+</tr>
+<tr><td><pre class="screen">string beg("-&gt;| ");
+string sep(" || ");
+string opn(" -&gt;|");
+string clo(" |&lt;-");
+pp.delimiter_strings(beg, sep,
+ opn, clo);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">collection_type delimiter_strings()</pre></td>
+<td>Returns the set of delimiter strings currently held in the parser.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">period_type get_period(...)
+ Parameters:
+ stream_itr_type
+ stream_itr_type
+ ios_base
+ period_type
+ duration_type
+ facet_type</pre></td>
+<td>Parses a period from the stream. The iterator parameters point to the begining and end of the stream. The duration_type is relevant to the period type, for example: A <code class="computeroutput">date_period</code> would use <code class="computeroutput">days</code> as a duration_type. The period will be parsed according to the formats and strings found in the facet parameter.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<p>_____________________________________________________</p>
+<a name="io_objects.date_generators"></a><h4>
+<a name="id1310838"></a>Date Generators</h4>
+<p>The date_generator formatter and parser provide flexibility by allowing the user to use custom "phrase elements". These phrase elements are the "in-between" words in the date_generators. For example, in the date_generator "Second Monday of March", "Second" and "of" are the phrase elements, where "Monday" and "March" are the date elements. Customization of the date elements is done with the facet. The order of the date and phrase elements cannot be changed. When parsing, all elements of the date_generator phrase must parse correctly or an ios_base::failure exception will be thrown.</p>
+<h5>
+<a name="id1310847"></a>Customization</h5>
+<p>The default "phrase_strings" are:
+ </p>
+<table border="0" summary="Simple list" class="simplelist"><tr>
+<td>"first"</td>
+<td>"second"</td>
+<td>"third"</td>
+<td>"fourth"</td>
+<td>"fifth"</td>
+<td>"last"</td>
+<td>"before"</td>
+<td>"after"</td>
+<td>"of"</td>
+</tr></table>
+<p>
+ A custom set of phrase_strings must maintain this order of occurance (Ex: "1st", "2nd", "3rd", "4th", "5th", "last", "prior", "past", "in").</p>
+<p> Examples using default phrase_strings and default facet formats for weekday &amp; month: </p>
+<pre class="screen">"first Tue of Mar"</pre>
+<p>And using custom phrase_strings: </p>
+<pre class="screen">"1st Tue in Mar"</pre>
+<p>
+ </p>
+<p>The custom set of phrase elements can be set as construction parameters or through an accessor function.A custom date_generator parser/formatter can then be used as a construction parameter to a new facet, or can be set in an existing facet via an accessor function.</p>
+<p>IMPORTANT NOTE: Prior to 1.33, partial_date was output as "1 Jan" with a single *or* double digit number for the day. The new behavior is to *always* place a double digit number for the day - "01 Jan".</p>
+<h5>
+<a name="id1310932"></a>Date Generator Reference</h5>
+ The complete class references can be found here: <code class="computeroutput"><a class="link" href="../boost/date_time/date_generator_formatter.html" title="Class template date_generator_formatter">Date Generator Formatter Doxygen Reference</a></code> and here: <code class="computeroutput"><a class="link" href="../boost/date_time/date_generator_parser.html" title="Class template date_generator_parser">Date Generator Parser Doxygen Reference</a></code><p>
+ </p>
+<h5>
+<a name="id1310962"></a>Date Generator Formatter Construction</h5>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th valign="top">Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">date_generator_formatter()</pre></td>
+<td>Uses the default date generator elements.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">date_generator_formatter(...)
+ Parameters:
+ string_type first_element
+ string_type second_element
+ string_type third_element
+ string_type fourth_element
+ string_type fifth_element
+ string_type last_element
+ string_type before_element
+ string_type after_element
+ string_type of_element</pre></td>
+<td>Constructs a date_generator_formatter using the given element strings.</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<h5>
+<a name="id1311034"></a>Date Generator Formatter Accessors</h5>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void elements(...)
+ Parameters:
+ collection_type
+ phrase_elements</pre></td>
+<td>Replace the current phrase elements with a collection of new ones. The <code class="computeroutput">phrase_elements</code> parameter is an enum that indicates what the first element in the new collection is (defaults to first).</td>
+</tr>
+<tr><td><pre class="screen">// col is a collection holding
+// "final", "prior", "following",
+// and "in"
+typedef date_generator_formatter dgf;
+dgf formatter();
+formatter.elements(col, dgf::last);
+// complete elements in dgf are now:
+"first", "second", "third",
+"fourth", "fifth", "final",
+"prior", "following", and "in"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">put_partial_date(...)
+ Return Type:
+ facet_type::OutItrT
+ Parameters:
+ OutItrT next
+ ios_base
+ char_type fill
+ partial_date
+ facet_type</pre></td>
+<td>A put function for partial_date. This is a templated function that takes a facet_type as a parameter.</td>
+</tr>
+<tr><td>Put a partial_date =&gt; "dd Month".</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">put_nth_kday(...)
+ Return Type:
+ facet_type::OutItrT
+ Parameters:
+ OutItrT next
+ ios_base
+ char_type fill
+ nth_kday_type
+ facet_type</pre></td>
+<td>A put function for nth_kday_type. This is a templated function that takes a facet_type as a parameter.</td>
+</tr>
+<tr><td>Put an nth_day_of_the_week_in_month =&gt; "nth weekday of month".</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">put_first_kday(...)
+ Return Type:
+ facet_type::OutItrT
+ Parameters:
+ OutItrT next
+ ios_base
+ char_type fill
+ first_kday_type
+ facet_type</pre></td>
+<td>A put function for first_kday_type. This is a templated function that takes a facet_type as a parameter.</td>
+</tr>
+<tr><td>Put a first_day_of_the_week_in_month =&gt; "first weekday of month".</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">put_last_kday(...)
+ Return Type:
+ facet_type::OutItrT
+ Parameters:
+ OutItrT next
+ ios_base
+ char_type fill
+ last_kday_type
+ facet_type</pre></td>
+<td>A put function for last_kday_type. This is a templated function that takes a facet_type as a parameter.</td>
+</tr>
+<tr><td>Put a last_day_of_the_week_in_month =&gt; "last weekday of month".</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">put_kday_before(...)
+ Return Type:
+ facet_type::OutItrT
+ Parameters:
+ OutItrT next
+ ios_base
+ char_type fill
+ kday_before_type
+ facet_type</pre></td>
+<td>A put function for kday_before_type. This is a templated function that takes a facet_type as a parameter.</td>
+</tr>
+<tr><td>Put a first_day_of_the_week_before =&gt; "weekday before"</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">put_kday_after(...)
+ Return Type:
+ facet_type::OutItrT
+ Parameters:
+ OutItrT next
+ ios_base
+ char_type fill
+ kday_after_type
+ facet_type</pre></td>
+<td>A put function for kday_after_type. This is a templated function that takes a facet_type as a parameter.</td>
+</tr>
+<tr><td>Put a first_day_of_the_week_after =&gt; "weekday after".</td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<p>
+ </p>
+<h5>
+<a name="id1311296"></a>Date Generator Parser Construction</h5>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th valign="top">Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">date_generator_parser()</pre></td>
+<td>Uses the default date generator elements.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">date_generator_parser(...)
+ Parameter:
+ date_generator_parser</pre></td>
+<td>Copy Constructor</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">date_generator_parser(...)
+ Parameters:
+ string_type first_element
+ string_type second_element
+ string_type third_element
+ string_type fourth_element
+ string_type fifth_element
+ string_type last_element
+ string_type before_element
+ string_type after_element
+ string_type of_element</pre></td>
+<td>Constructs a date_generator_parser using the given element strings.</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<h5>
+<a name="id1311384"></a>Date Generator Parser Accessors</h5>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void element_strings(...)
+ Parameter:
+ collection_type</pre></td>
+<td>Replace the set of date generator element string with a new set.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void element_strings(...)
+ Parameters:
+ string_type first
+ string_type second
+ string_type third
+ string_type fourth
+ string_type fifth
+ string_type last
+ string_type before
+ string_type after
+ string_type of</pre></td>
+<td>Replace the set of date generator elements with new values.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">get_partial_date_type(...)
+ Return Type:
+ facet_type::partial_date_type
+ Parameters:
+ stream_itr_type next
+ stream_itr_type str_end
+ ios_base
+ facet_type</pre></td>
+<td>A templated function that parses a date_generator from the stream.</td>
+</tr>
+<tr><td>Parses a partial_date =&gt; "dd Month".</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">get_nth_kday_type(...)
+ Return Type:
+ facet_type::nth_kday_type
+ Parameters:
+ stream_itr_type next
+ stream_itr_type str_end
+ ios_base
+ facet_type</pre></td>
+<td>A templated function that parses a date_generator from the stream.</td>
+</tr>
+<tr><td>Parses an nth_day_of_the_week_in_month =&gt; "nth weekday of month".</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">get_first_kday_type(...)
+ Return Type:
+ facet_type::firat_kday_type
+ Parameters:
+ stream_itr_type next
+ stream_itr_type str_end
+ ios_base
+ facet_type</pre></td>
+<td>A templated function that parses a date_generator from the stream.</td>
+</tr>
+<tr><td>Parses a first_day_of_the_week_in_month =&gt; "first weekday of month".</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">get_last_kday_type(...)
+ Return Type:
+ facet_type::last_kday_type
+ Parameters:
+ stream_itr_type next
+ stream_itr_type str_end
+ ios_base
+ facet_type</pre></td>
+<td>A templated function that parses a date_generator from the stream.</td>
+</tr>
+<tr><td>Parses a last_day_of_the_week_in_month =&gt; "last weekday of month".</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">get_kday_before_type(...)
+ Return Type:
+ facet_type::kday_before_type
+ Parameters:
+ stream_itr_type next
+ stream_itr_type str_end
+ ios_base
+ facet_type</pre></td>
+<td>A templated function that parses a date_generator from the stream.</td>
+</tr>
+<tr><td>Parses a first_day_of_the_week_before =&gt; "weekday before"</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">get_kday_after_type(...)
+ Return Type:
+ facet_type::kday_after_type
+ Parameters:
+ stream_itr_type next
+ stream_itr_type str_end
+ ios_base
+ facet_type</pre></td>
+<td>A templated function that parses a date_generator from the stream.</td>
+</tr>
+<tr><td>Parses a first_day_of_the_week_after =&gt; "weekday after".</td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<p>_____________________________________________________</p>
+<a name="io_objects.special_values"></a><h4>
+<a name="id1311668"></a>Special Values</h4>
+<p>The date_time library uses five special_values. They are:
+ </p>
+<table border="0" summary="Simple list" class="simplelist"><tr>
+<td>not_a_date_time</td>
+<td>neg_infin</td>
+<td>pos_infin</td>
+<td>min_date_time</td>
+<td>max_date_time</td>
+</tr></table>
+<p>
+ </p>
+<p>The default set of strings used to represent these types are: "not-a-date-time", "-infinity", "+infinity", "minimum-date-time", "maximum-date-time". When output, the min_date-time and max_date_time appear as normal date/time representations: "1400-Jan-01" and "9999-Dec-31" repectively.</p>
+<h5>
+<a name="id1311710"></a>Customization</h5>
+<p>The special values parser/formatter allows the user to set custom strings for these special values. These strings can be set as construction parameters to a new facet, or can be set in an existing facet via an accessor function.</p>
+<h5>
+<a name="id1311723"></a>Special Values Formatter/Parser Reference</h5>
+ The complete class references can be found here: <code class="computeroutput"><a class="link" href="../boost/date_time/special_values_formatter.html" title="Class template special_values_formatter">Special Values Formatter Doxygen Reference</a></code> and here: <code class="computeroutput"><a class="link" href="../boost/date_time/special_values_parser.html" title="Class template special_values_parser">Special Values Parser Doxygen Reference</a></code><p>
+ </p>
+<h5>
+<a name="id1311755"></a>Special Values Formatter Constructor</h5>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th valign="top">Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">special_values_formatter()</pre></td>
+<td>Constructor uses defaults for special value strings.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">special_values_formatter(...)
+ Parameters:
+ collection_type::iterator
+ collection_type::iterator</pre></td>
+<td>Constructs using values in collection. NOTE: Only the first three strings of the collection will be used. Strings for minimum_date_time and maximum_date_time are ignored as those special values are output as normal dates/times.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">special_values_formatter(...)
+ Parameters:
+ char_type*
+ char_type*</pre></td>
+<td>Constructs special values formatter from an array of strings.</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<p>
+ </p>
+<h5>
+<a name="id1311847"></a>Special Values Formatter Accessors</h5>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put_special(...)
+ Parameters:
+ OutItrT next
+ special_values value</pre></td>
+<td>Puts the given special value into the stream.</td>
+</tr>
+<tr><td><pre class="screen">date d1(not_a_date_time);
+date d2(minimum_date_time);
+special_values_formatter formatter;
+formatter.put_special(itr, d1);
+// Puts: "not-a-date-time"
+formatter.put_special(itr, d2);
+// Puts: "1400-Jan-01"</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<p>
+ </p>
+<h5>
+<a name="id1311925"></a>Special Values Parser Constructor</h5>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th valign="top">Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">special_values_parser()</pre></td>
+<td>&#160;</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">special_values_parser(...)
+ Parameters:
+ collection_type::iterator
+ collection_type::iterator</pre></td>
+<td>Constructs a special values parser using the strings in the collection.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">special_values_parser(...)
+ Parameter:
+ scpecial_values_parser</pre></td>
+<td>Copy constructor.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">special_values_parser(...)
+ Parameters:
+ string_type nadt_str
+ string_type neg_inf_str
+ string_type pos_inf_str
+ string_type min_dt_str
+ string_type max_dt_str</pre></td>
+<td>Constructs a special values parser using the supplied strings.</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<p>
+ </p>
+<h5>
+<a name="id1312030"></a>Special Values Parser Accessors</h5>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void sv_strings(...)
+ Parameters:
+ string_type nadt_str
+ string_type neg_inf_str
+ string_type pos_inf_str
+ string_type min_dt_str
+ string_type max_dt_str</pre></td>
+<td>Replace the set of special value strings with the given ones.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool match(...)
+ Parameters:
+ stream_itr_type beg
+ stream_itr_type end
+ match_results</pre></td>
+<td>Returns true if parse was successful. Upon a successful parse, <code class="computeroutput">mr.current_match</code> will be set an int values corresponding to the equivalent special_value.</td>
+</tr>
+<tr><td><pre class="screen">// stream holds "maximum_date_time"
+typedef special_values_parser svp;
+svp parser;
+svp::match_results mr;
+if(parser.match(itr, str_end, mr)) {
+ d = date(static_cast&lt;special_values&gt;(
+ mr.match_results))
+} else {
+ // error, failed parse
+}
+// d == "9999-Dec-31"</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<p>_____________________________________________________</p>
+<a name="io_objects.format_date_parser"></a><h4>
+<a name="id1312134"></a>Format Date Parser</h4>
+<p>The format date parser is the object that holds the strings for months and weekday names, as well as their abbreviations. Custom sets of strings can be set at construction time, or, the strings in an existing format_date_parser can be replaced through accessor functions. Both the constructor and the accessor functions take a vector of strings as their arguments.</p>
+<h5>
+<a name="id1312171"></a>Format Date Parser Reference</h5>
+ The complete class reference can be found here: <code class="computeroutput"><a class="link" href="../boost/date_time/format_date_parser.html" title="Class template format_date_parser">Doxygen Reference</a></code><p>
+ </p>
+<h5>
+<a name="id1312192"></a>Format Date Parser Constructor</h5>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th valign="top">Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">format_date_parser(...)
+ Parameters:
+ string_type format
+ std::locale</pre></td>
+<td>Creates a parser that uses the given format for parsing dates (in those functions where there is no format parameter). The names and abbreviations used are extracted from the given locale.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">format_date_parser(...)
+ Parameters:
+ string_type format
+ input_collection_type
+ input_collection_type
+ input_collection_type
+ input_collection_type</pre></td>
+<td>Creates a parser from using the given components. The input_collection_type parameters are for: short month names, long month names, short weekday names, and long weekday names (in that order). These collections must contain values for every month and every weekday (begining with January and Sunday).</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">format_date_parser(...)
+ Parameters:
+ format_date_parser</pre></td>
+<td>Copy Constructor</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<p>
+ </p>
+<h5>
+<a name="id1312288"></a>Format Date Parser Accessors</h5>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">string_type format()</pre></td>
+<td>Returns the format that will be used when parsing dates in those functions where there is no format parameter.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void format(string_type)</pre></td>
+<td>Sets the format that will be used when parsing dates in those functions where there is no format parameter.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void short_month_names(...)
+ Parameter:
+ input_collection_type names</pre></td>
+<td>Replace the short month names used by the parser. The collection must contain values for each month, starting with January.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void long_month_names(...)
+ Parameter:
+ input_collection_type names</pre></td>
+<td>Replace the long month names used by the parser. The collection must contain values for each month, starting with January.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void short_weekday_names(...)
+ Parameter:
+ input_collection_type names</pre></td>
+<td>Replace the short weekday names used by the parser. The collection must contain values for each weekday, starting with Sunday.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void long_weekday_names(...)
+ Parameter:
+ input_collection_type names</pre></td>
+<td>Replace the long weekday names used by the parser. The collection must contain values for each weekday, starting with Sunday.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_type parse_date(...)
+ Parameters:
+ string_type input
+ string_type format
+ special_values_parser</pre></td>
+<td>Parse a date from the given input using the given format.</td>
+</tr>
+<tr><td><pre class="screen">string inp("2005-Apr-15");
+string format("%Y-%b-%d");
+date d;
+d = parser.parse_date(inp,
+ format,
+ svp);
+// d == 2005-Apr-15</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_type parse_date(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end
+ special_values_parser</pre></td>
+<td>Parse a date from stream using the parser's format.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_type parse_date(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end
+ string_type format
+ special_values_parser</pre></td>
+<td>Parse a date from stream using the given format.</td>
+</tr>
+<tr><td><pre class="screen">// stream holds "2005-04-15"
+string format("%Y-%m-%d");
+date d;
+d = parser.parse_date(itr,
+ str_end,
+ format,
+ svp);
+// d == 2005-Apr-15</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">month_type parse_month(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end
+ string_type format</pre></td>
+<td>Parses a month from stream using given format. Throws bad_month if unable to parse.</td>
+</tr>
+<tr><td><pre class="screen">// stream holds "March"
+string format("%B");
+greg_month m;
+m = parser.parse_month(itr,
+ str_end,
+ format);
+// m == March</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">day_type parse_day_of_month(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end</pre></td>
+<td>Parses a day_of_month from stream. The day must appear as a two digit number (01-31), or a bad_day_of_month will be thrown.</td>
+</tr>
+<tr><td><pre class="screen">// stream holds "01"
+greg_day d;
+d = parser.parse_day_of_month(itr,
+ str_end);
+// d == 1st</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">day_type parse_var_day_of_month(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end</pre></td>
+<td>Parses a day_of_month from stream. The day must appear as a one or two digit number (1-31), or a bad_day_of_month will be thrown.</td>
+</tr>
+<tr><td><pre class="screen">// stream holds "1"
+greg_day d;
+d = parser.parse_var_day_of_month(itr,
+ str_end);
+// d == 1st</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">day_of_week_type parse_weekday(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end
+ string_type format</pre></td>
+<td>Parse a weekday from stream according to the given format. Throws a bad_weekday if unable to parse.</td>
+</tr>
+<tr><td><pre class="screen">// stream holds "Tue"
+string format("%a");
+greg_weekday wd;
+wd = parser.parse_weekday(itr,
+ str_end,
+ format);
+// wd == Tuesday</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">year_type parse_year(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end
+ string_type format</pre></td>
+<td>Parse a year from stream according to given format. Throws bad year if unable to parse.</td>
+</tr>
+<tr><td><pre class="screen">// stream holds "98"
+string format("%y");
+greg_year y;
+y = parser.parse_year(itr,
+ str_end,
+ format);
+// y == 1998</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.io_tutorial"></a>Date Time IO Tutorial</h3></div></div></div>
+<h3>
+<a name="id1312769"></a>Date Time IO Tutorial</h3>
+<a class="link" href="date_time_io.html#basic_use">Basic Use</a> |
+ <a class="link" href="date_time_io.html#format_strings">Format Strings</a> |
+ <a class="link" href="date_time_io.html#content_strings">Content Strings</a> |
+ <a class="link" href="date_time_io.html#tut_sv">Special Values</a> |
+ <a class="link" href="date_time_io.html#tut_dper">Date/Time Periods</a> |
+ <a class="link" href="date_time_io.html#tut_dgen">Date Generators</a><a name="basic_use"></a><h5>
+<a name="id1312830"></a>Basic Use</h5>
+<p>Facets are automatically imbued when operators '&gt;&gt;' and '&lt;&lt;' are called. The list of date_time objects that can be streamed are:</p>
+<h6>
+<a name="id1312847"></a>Gregorian</h6>
+<p>
+ <code class="computeroutput">date</code>,
+ <code class="computeroutput">days</code>,
+ <code class="computeroutput">date_period</code>,
+ <code class="computeroutput">greg_month</code>,
+ <code class="computeroutput">greg_weekday</code>,
+ <code class="computeroutput">greg_year</code>,
+ <code class="computeroutput">partial_date</code>,
+ <code class="computeroutput">nth_day_of_the_week_in_month</code>,
+ <code class="computeroutput">first_day_of_the_week_in_month</code>,
+ <code class="computeroutput">last_day_of_the_week_in_month</code>,
+ <code class="computeroutput">first_day_of_the_week_after</code>,
+ <code class="computeroutput">first_day_of_the_week_before</code>
+ </p>
+<h6>
+<a name="id1312927"></a>Posix_time</h6>
+<p>
+ <code class="computeroutput">ptime</code>,
+ <code class="computeroutput">time_period</code>,
+ <code class="computeroutput">time_duration</code>
+ </p>
+<h6>
+<a name="id1312953"></a>Local_time</h6>
+<p>
+ <code class="computeroutput">local_date_time</code>
+ </p>
+<p>
+ The following example is of the basic use of the new IO code, utilizing all the defaults. (this example can be found in the <code class="computeroutput">libs/date_time/examples/tutorial</code> directory)
+ </p>
+<pre class="programlisting">
+
+ date d(2004, Feb, 29);
+ time_duration td(12,34,56,789);
+ stringstream ss;
+ ss &lt;&lt; d &lt;&lt; ' ' &lt;&lt; td;
+ ptime pt(not_a_date_time);
+ cout &lt;&lt; pt &lt;&lt; endl; // "not-a-date-time"
+ ss &gt;&gt; pt;
+ cout &lt;&lt; pt &lt;&lt; endl; // "2004-Feb-29 12:34:56.000789"
+ ss.str("");
+ ss &lt;&lt; pt &lt;&lt; " EDT-05EDT,M4.1.0,M10.5.0";
+ local_date_time ldt(not_a_date_time);
+ ss &gt;&gt; ldt;
+ cout &lt;&lt; ldt &lt;&lt; endl; // "2004-Feb-29 12:34:56.000789 EDT"
+
+ </pre>
+<p>This example used the default settings for the input and output facets. The default formats are such that interoperability like that shown in the example is possible. NOTE: Input streaming of local_date_time can only be done with a <a class="link" href="local_time.html#date_time.local_time.posix_time_zone" title="Posix Time Zone">posix time zone string</a>. The default output format uses a time zone abbreviation. The format can be changed so out and in match (as we will see later in this tutorial).</p>
+<a name="format_strings"></a><h5>
+<a name="id1313013"></a>Format Strings</h5>
+<p>The format strings control the order, type, and style of the date/time elements used. The facets provide some predefined formats (iso_format_specifier, iso_format_extended_specifier, and default_date_format) but the user can easily create their own.</p>
+ (continued from previous example)
+ <pre class="programlisting">
+
+ local_time_facet* output_facet = new local_time_facet();
+ local_time_input_facet* input_facet = new local_time_input_facet();
+ ss.imbue(locale(locale::classic(), output_facet));
+ ss.imbue(locale(ss.getloc(), input_facet));
+
+ output_facet-&gt;format("%a %b %d, %H:%M %z");
+ ss.str("");
+ ss &lt;&lt; ldt;
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "Sun Feb 29, 12:34 EDT"
+
+ output_facet-&gt;format(local_time_facet::iso_time_format_specifier);
+ ss.str("");
+ ss &lt;&lt; ldt;
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "20040229T123456.000789-0500"
+
+ output_facet-&gt;format(local_time_facet::iso_time_format_extended_specifier);
+ ss.str("");
+ ss &lt;&lt; ldt;
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "2004-02-29 12:34:56.000789-05:00"
+
+ </pre>
+<p>Format strings are not limited to date/time elements. Extra verbiage can be placed in a format string. NOTE: When extra verbiage is present in an input format, the data being input must also contain the exact verbiage.</p>
+ (continued from previous example)
+ <pre class="programlisting">
+
+ // extra words in format
+ string my_format("The extended ordinal time %Y-%jT%H:%M can also be \
+ represented as %A %B %d, %Y");
+ output_facet-&gt;format(my_format.c_str());
+ input_facet-&gt;format(my_format.c_str());
+ ss.str("");
+ ss &lt;&lt; ldt;
+ cout &lt;&lt; ss.str() &lt;&lt; endl;
+
+ // matching extra words in input
+ ss.str("The extended ordinal time 2005-128T12:15 can also be \
+ represented as Sunday May 08, 2005");
+ ss &gt;&gt; ldt;
+ cout &lt;&lt; ldt &lt;&lt; endl;
+
+ </pre>
+<a name="content_strings"></a><h5>
+<a name="id1313045"></a>Content Strings</h5>
+<p>So far we've shown how a user can achieve a great deal of customization with very little effort by using formats. Further customization can be achieved through user defined elements (ie strings). The elements that can be customized are: Special value names, month names, month abbreviations, weekday names, weekday abbreviations, delimiters of the date/time periods, and the phrase elements of the date_generators.</p>
+<p>The default values for these are as follows:</p>
+<h6>
+<a name="id1313070"></a>Special values</h6>
+<p>
+ <code class="computeroutput">not-a-date-time</code>,
+ <code class="computeroutput">-infinity</code>,
+ <code class="computeroutput">+infinity</code>,
+ <code class="computeroutput">minimum-date-time</code>,
+ <code class="computeroutput">maximum-date-time</code>
+ </p>
+<h6>
+<a name="id1313109"></a>Months</h6>
+<p>
+ <code class="computeroutput">English calendar and three letter abbreviations</code>
+ </p>
+<h6>
+<a name="id1313124"></a>Weekdays</h6>
+<p>
+ <code class="computeroutput">English calendar and three letter abbreviations</code>
+ </p>
+<h6>
+<a name="id1313138"></a>Date generator phrase elements</h6>
+<p>
+ <code class="computeroutput">first</code>,
+ <code class="computeroutput">second</code>,
+ <code class="computeroutput">third</code>,
+ <code class="computeroutput">fourth</code>,
+ <code class="computeroutput">fifth</code>,
+ <code class="computeroutput">last</code>,
+ <code class="computeroutput">before</code>,
+ <code class="computeroutput">after</code>,
+ <code class="computeroutput">of</code>
+ </p>
+<p>NOTE: We've shown earlier that the components of a date/time representation can be re-ordered via the format string. This is not the case with date_generators. The elements themselves can be customized but their order cannot be changed.</p>
+<h5>
+<a name="id1313207"></a>Content Strings</h5>
+<p>To illustrate the customization possibilities we will use custom strings for months and weekdays (we will only use long names, is all lowercase, for this example).</p>
+ (continued from previous example)
+ <pre class="programlisting">
+
+ // set up the collections of custom strings.
+ // only the full names are altered for the sake of brevity
+ string month_names[12] = { "january", "february", "march",
+ "april", "may", "june",
+ "july", "august", "september",
+ "october", "november", "december" };
+ vector&lt;string&gt; long_months(&amp;month_names[0], &amp;month_names[12]);
+ string day_names[7] = { "sunday", "monday", "tuesday", "wednesday",
+ "thursday", "friday", "saturday" };
+ vector&lt;string&gt; long_days(&amp;day_names[0], &amp;day_names[7]);
+
+ // create date_facet and date_input_facet using all defaults
+ date_facet* date_output = new date_facet();
+ date_input_facet* date_input = new date_input_facet();
+ ss.imbue(locale(ss.getloc(), date_output));
+ ss.imbue(locale(ss.getloc(), date_input));
+
+ // replace names in the output facet
+ date_output-&gt;long_month_names(long_months);
+ date_output-&gt;long_weekday_names(long_days);
+
+ // replace names in the input facet
+ date_input-&gt;long_month_names(long_months);
+ date_input-&gt;long_weekday_names(long_days);
+
+ // customize month, weekday and date formats
+ date_output-&gt;format("%Y-%B-%d");
+ date_input-&gt;format("%Y-%B-%d");
+ date_output-&gt;month_format("%B"); // full name
+ date_input-&gt;month_format("%B"); // full name
+ date_output-&gt;weekday_format("%A"); // full name
+ date_input-&gt;weekday_format("%A"); // full name
+
+ ss.str("");
+ ss &lt;&lt; greg_month(3);
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "march"
+ ss.str("");
+ ss &lt;&lt; greg_weekday(3);
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "tuesday"
+ ss.str("");
+ ss &lt;&lt; date(2005,Jul,4);
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "2005-july-04"
+
+ </pre>
+<a name="tut_sv"></a><h5>
+<a name="id1313231"></a>Special Values</h5>
+<p>Customizing the input and output of special values is best done by creating a new special_values_parser and special_values_formatter. The new strings can be set at construction time (as in the example below).</p>
+ (continued from previous example)
+ <pre class="programlisting">
+
+ // reset the formats to defaults
+ output_facet-&gt;format(local_time_facet::default_time_format);
+ input_facet-&gt;format(local_time_input_facet::default_time_input_format);
+
+ // create custom special_values parser and formatter objects
+ // and add them to the facets
+ string sv[5] = {"nadt","neg_inf", "pos_inf", "min_dt", "max_dt" };
+ vector&lt;string&gt; sv_names(&amp;sv[0], &amp;sv[5]);
+ special_values_parser sv_parser(sv_names.begin(), sv_names.end());
+ special_values_formatter sv_formatter(sv_names.begin(), sv_names.end());
+ output_facet-&gt;special_values_formatter(sv_formatter);
+ input_facet-&gt;special_values_parser(sv_parser);
+
+ ss.str("");
+ ldt = local_date_time(not_a_date_time);
+ ss &lt;&lt; ldt;
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "nadt"
+
+ ss.str("min_dt");
+ ss &gt;&gt; ldt;
+ ss.str("");
+ ss &lt;&lt; ldt;
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "1400-Jan-01 00:00:00 UTC"
+
+ </pre>
+<p>NOTE: even though we sent in strings for min and max to the formatter, they are ignored because those special values construct to actual dates (as shown above).</p>
+<a name="tut_dper"></a><h5>
+<a name="id1313250"></a>Date/Time Periods</h5>
+<p>Customizing the input and output of periods is best done by creating a new period_parser and period_formatter. The new strings can be set at construction time (as in the example below).</p>
+ (continued from previous example)
+ <pre class="programlisting">
+
+ // all formats set back to defaults (not shown for brevity)
+
+ // create our date_period
+ date_period dp(date(2005,Mar,1), days(31)); // month of march
+
+ // custom period formatter and parser
+ period_formatter per_formatter(period_formatter::AS_OPEN_RANGE,
+ " to ", "from ", " exclusive", " inclusive" );
+ period_parser per_parser(period_parser::AS_OPEN_RANGE,
+ " to ", "from ", " exclusive" , "inclusive" );
+
+ // default output
+ ss.str("");
+ ss &lt;&lt; dp;
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "[2005-Mar-01/2005-Mar-31]"
+
+ // add out custom parser and formatter to the facets
+ date_output-&gt;period_formatter(per_formatter);
+ date_input-&gt;period_parser(per_parser);
+
+ // custom output
+ ss.str("");
+ ss &lt;&lt; dp;
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "from 2005-Feb-01 to 2005-Apr-01 exclusive"
+
+ </pre>
+<a name="tut_dgen"></a><h5>
+<a name="id1313285"></a>Date Generators</h5>
+<p>Customizing the input and output of date_generators is done by replacing the existing strings (in the facet) with new strings.</p>
+<p>NOTE: We've shown earlier that the components of a date/time representation can be re-ordered via the format string. This is not the case with date_generators. The elements themselves can be customized but their order cannot be changed.</p>
+ (continued from previous example)
+ <pre class="programlisting">
+
+ // custom date_generator phrases
+ string dg_phrases[9] = { "1st", "2nd", "3rd", "4th", "5th",
+ "final", "prior to", "following", "in" };
+ vector&lt;string&gt; phrases(&amp;dg_phrases[0], &amp;dg_phrases[9]);
+
+ // create our date_generator
+ first_day_of_the_week_before d_gen(Monday);
+
+ // default output
+ ss.str("");
+ ss &lt;&lt; d_gen;
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "Mon before"
+
+ // add our custom strings to the date facets
+ date_output-&gt;date_gen_phrase_strings(phrases);
+ date_input-&gt;date_gen_element_strings(phrases);
+
+ // custom output
+ ss.str("");
+ ss &lt;&lt; d_gen;
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "Mon prior to"
+
+ </pre>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2005 CrystalClear Software, Inc<p>Subject to the Boost Software License, Version 1.0. (See accompanying file
+ <code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="local_time.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="serialization.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_time/details.html b/doc/html/date_time/details.html
new file mode 100644
index 0000000000..d76c12e310
--- /dev/null
+++ b/doc/html/date_time/details.html
@@ -0,0 +1,1525 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Details</title>
+<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
+<link rel="up" href="../date_time.html" title="Chapter&#160;7.&#160;Boost.Date_Time">
+<link rel="prev" href="serialization.html" title="Serialization">
+<link rel="next" href="examples.html" title="Examples">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.html">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
+<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="serialization.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="examples.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="date_time.details"></a>Details</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="details.html#date_time.calculations">Calculations</a></span></dt>
+<dt><span class="section"><a href="details.html#date_time.design_goals">Design Goals</a></span></dt>
+<dt><span class="section"><a href="details.html#date_time.tradeoffs">Tradeoffs: Stability, Predictability, and Approximations</a></span></dt>
+<dt><span class="section"><a href="details.html#date_time.terminology">Terminology</a></span></dt>
+<dt><span class="section"><a href="details.html#date_time.references">References</a></span></dt>
+<dt><span class="section"><a href="details.html#date_time.buildinfo">Build-Compiler Information</a></span></dt>
+<dt><span class="section"><a href="details.html#date_time.tests">Tests</a></span></dt>
+<dt><span class="section"><a href="details.html#date_time.changes">Change History</a></span></dt>
+<dt><span class="section"><a href="details.html#date_time.acknowledgements">Acknowledgements</a></span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.calculations"></a>Calculations</h3></div></div></div>
+<p>
+ <a class="link" href="details.html#timepoints">Timepoints</a> --
+ <a class="link" href="details.html#durations">Durations</a> --
+ <a class="link" href="details.html#intervals">Intervals (Periods)</a> --
+ <a class="link" href="details.html#special_value_handling">Special Value Handling</a>
+ </p>
+<a name="timepoints"></a><h4>
+<a name="id1313628"></a>Timepoints</h4>
+<p>
+ This section describes some of basic arithmetic rules that can be performed with timepoints. In general, Timepoints support basic arithmetic in conjunction with Durations as follows:
+ </p>
+<pre class="programlisting">
+ Timepoint + Duration --&gt; Timepoint
+ Timepoint - Duration --&gt; Timepoint
+ Timepoint - Timepoint --&gt; Duration
+ </pre>
+<p>
+ Unlike regular numeric types, the following operations are undefined:
+ </p>
+<pre class="programlisting">
+ Duration + Timepoint --&gt; Undefined
+ Duration - Timepoint --&gt; Undefined
+ Timepoint + Timepoint --&gt; Undefined
+ </pre>
+<p>
+ </p>
+<a name="durations"></a><h4>
+<a name="id1313665"></a>Durations</h4>
+<p>
+ Durations represent a length of time and can have positive and negative values. It is frequently useful to be able to perform calculations with other durations and with simple integral values. The following describes these calculations:
+ </p>
+<pre class="programlisting">
+ Duration + Duration --&gt; Duration
+ Duration - Duration --&gt; Duration
+
+ Duration * Integer --&gt; Duration
+ Integer * Duration --&gt; Duration
+ Duration / Integer --&gt; Duration (Integer Division rules)
+ </pre>
+<p>
+ </p>
+<a name="intervals"></a><h4>
+<a name="id1313684"></a>Intervals (Periods)</h4>
+<p>
+ Interval logic is extremely useful for simplifying many 'calculations' for dates and times. The following describes the operations provided by periods which are based on half-open range. The following operations calculate new time periods based on two input time periods:
+ </p>
+<pre class="programlisting">
+Timeperiod intersection Timeperiod --&gt; Timeperiod
+ (null interval if no intersection)
+Timeperiod merge Timeperiod --&gt; Timeperiod
+ (null interval if no intersection)
+Timeperiod shift Duration --&gt; Timeperiod
+ (shift start and end by duration amount)
+ </pre>
+<p>
+ In addition, periods support various queries that calculate boolean results. The first set is caluculations with other time periods:
+ </p>
+<pre class="programlisting">
+ Timeperiod == Timeperiod --&gt; bool
+ Timeperiod &lt; Timeperiod --&gt; bool (true if lhs.last &lt;= rhs.begin)
+ Timeperiod intersects Timeperiod --&gt; bool
+ Timeperiod contains Timeperiod --&gt; bool
+ Timeperiod is_adjacent Timeperiod --&gt; bool
+ </pre>
+<p>
+ The following calculations are performed versus the Timepoint.
+ </p>
+<pre class="programlisting">
+ Timeperiod contains Timepoint --&gt; bool
+ Timeperiod is_before Timepoint --&gt; bool
+ Timeperiod is_after Timepoint --&gt; bool
+ </pre>
+<p>
+ </p>
+<a name="special_value_handling"></a><h4>
+<a name="id1313748"></a>Special Value Handling</h4>
+<p>
+ For many temporal problems it is useful for Duration and Timepoint types to support special values such as Not A Date Time (NADT) and infinity. In general special values such as Not A Date Time (NADT) and infinity should follow rules like floating point values. Note that it should be possible to configure NADT based systems to throw an exception instead of result in NADT.
+ </p>
+<pre class="programlisting">
+ Timepoint(NADT) + Duration --&gt; Timepoint(NADT)
+ Timepoint(&#8734;) + Duration --&gt; Timepoint(&#8734;)
+ Timepoint + Duration(&#8734;) --&gt; Timepoint(&#8734;)
+ Timepoint - Duration(&#8734;) --&gt; Timepoint(-&#8734;)
+ </pre>
+<p>
+ When performing operations on both positive and negative infinities, the library will produce results consistent with the following.
+ </p>
+<pre class="programlisting">
+ Timepoint(+&#8734;) + Duration(-&#8734;) --&gt; NADT
+ Duration(+&#8734;) + Duration(-&#8734;) --&gt; NADT
+ Duration(&#177;&#8734;) * Zero --&gt; NADT
+
+ Duration(&#8734;) * Integer(Not Zero) --&gt; Duration(&#8734;)
+ Duration(+&#8734;) * -Integer --&gt; Duration(-&#8734;)
+ Duration(&#8734;) / Integer --&gt; Duration(&#8734;)
+ </pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.design_goals"></a>Design Goals</h3></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Category</th>
+<th>Description</th>
+</tr>
+<tr><th>Functions</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top">Interfaces</td>
+<td>Provide concrete classes for manipulation of dates and times</td>
+</tr>
+<tr><td>
+ <div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">date, time, date_duration, time_duration, date_period, time_period, etc</li>
+<li class="listitem" style="list-style-type: disc">support for infinity - positive infinity, negative infinity</li>
+<li class="listitem" style="list-style-type: disc">iterators over time and date ranges</li>
+<li class="listitem" style="list-style-type: disc">allow date and time implementations to be separate as much as possible</li>
+</ul></div>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top">Calculation</td>
+<td>Provide a basis for performing efficient time calculations </td>
+</tr>
+<tr><td>
+ <div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">days between dates </li>
+<li class="listitem" style="list-style-type: disc">durations of times </li>
+<li class="listitem" style="list-style-type: disc">durations of dates and times together </li>
+</ul></div>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top">Representation Flexibility</td>
+<td>Provide the maximum possible reusability and flexibility</td>
+</tr>
+<tr><td>
+ <div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">traits based customization of internal representations for size versus resolution control</li>
+<li class="listitem" style="list-style-type: disc">Allowing the use of different epochs and resolution (eg: seconds versus microseconds, dates starting at the year 2000 versus dates starting in 1700)</li>
+<li class="listitem" style="list-style-type: disc">Options for configuring unique calendar representations (Gregorian + others)</li>
+<li class="listitem" style="list-style-type: disc">the use of Julian Day number and the conversion between this and the Gregorian/Julian calendar date</li>
+<li class="listitem" style="list-style-type: disc">Allow for flexible adjustments including leap seconds</li>
+</ul></div>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top">Date Calculations</td>
+<td>Provide tools for date calculations</td>
+</tr>
+<tr><td>
+ <div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">provide basis for calculation of complex event specs like holidays</li>
+<li class="listitem" style="list-style-type: disc">calendar to calendar conversions</li>
+<li class="listitem" style="list-style-type: disc">provide for ability to extend to new calendar systems</li>
+</ul></div>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top">Time Calculations</td>
+<td>Provide concrete classes for manipulation of time</td>
+</tr>
+<tr><td>
+ <div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">provide the ability to handle cross time-zone issues</li>
+<li class="listitem" style="list-style-type: disc">provide adjustments for daylight savings time (summer time)</li>
+</ul></div>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top">Clock Interfaces</td>
+<td>Provide classes for retrieving time current time</td>
+</tr>
+<tr><td>
+ <div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">access to a network / high resolution time sources </li>
+<li class="listitem" style="list-style-type: disc">retrieving the current date time information to populate classes </li>
+</ul></div>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top">I/O Interfaces</td>
+<td>Provide input and output for time including</td>
+</tr>
+<tr><td>
+ <div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">multi-lingual support </li>
+<li class="listitem" style="list-style-type: disc">provide ISO8601 compliant time facet </li>
+<li class="listitem" style="list-style-type: disc">use I/O facets for different local behavior </li>
+</ul></div>
+ </td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.tradeoffs"></a>Tradeoffs: Stability, Predictability, and Approximations</h3></div></div></div>
+<h3>
+<a name="id1314126"></a>
+ Unavoidable Trade-offs
+ </h3>
+<p>
+ The library does its best to provide everything a user could want, but there are certain inherent constraints that limit what <span class="emphasis"><em>any</em></span> temporal library can do. Specifically, a user must choose which two of the following three capabilities are desired in any particular application:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">exact agreement with wall-clock time</li>
+<li class="listitem" style="list-style-type: disc">accurate math, e.g. duration calculations</li>
+<li class="listitem" style="list-style-type: disc">ability to handle timepoints in the future</li>
+</ul></div>
+<p>
+ Some libraries may implicitly promise to deliver all three, but if you actually put them to the test, only two can be true at once. This limitation is not a deficiency in the design or implementation of any particular library; rather it is a consequence of the way different time systems are defined by international standards. Let's look at each of the three cases:
+ </p>
+<p>
+ If you want exact agreement with wall-clock time, you must use either UTC or local time. If you compute a duration by subtracting one UTC time from another and you want an answer accurate to the second, the two times must not be too far in the future because leap seconds affect the count but are only determined about 6 months in advance. With local times a future duration calculation could be off by an entire hour, since legislatures can and do change DST rules at will.
+ </p>
+<p>
+ If you want to handle wall-clock times in the future, you won't be able (in the general case) to calculate exact durations, for the same reasons described above.
+ </p>
+<p>
+ If you want accurate calculations with future times, you will have to use TAI or an equivalent, but the mapping from TAI to UTC or local time depends on leap seconds, so you will not have exact agreement with wall-clock time.
+ </p>
+<h3>
+<a name="id1314192"></a>
+ Stability, Predictability, and Approximations
+ </h3>
+<p>
+ Here is some underlying theory that helps to explain what's going on. Remember that a temporal type, like any abstract data type (ADT), is a set of values together with operations on those values.
+ </p>
+<h4>
+<a name="id1314205"></a>
+ Stability
+ </h4>
+<p>
+ The representation of a type is <span class="emphasis"><em>stable</em></span> if the bit pattern associated with a given value does not change over time. A type with an unstable representation is unlikely to be of much use to anyone, so we will insist that any temporal library use only stable representations.
+ </p>
+<p>
+ An operation on a type is stable if the result of applying the operation to a particular operand(s) does not change over time.
+ </p>
+<h4>
+<a name="id1314228"></a>
+ Predictability
+ </h4>
+<p>
+ Sets are most often classified into two categories: well-defined and ill-defined. Since a type is a set, we can extend these definitions to cover types. For any type T, there must be a predicate <span class="emphasis"><em>is_member( x )</em></span> which determines whether a value x is a member of type T. This predicate must return <span class="emphasis"><em>true, false,</em></span> or <span class="emphasis"><em>dont_know</em></span>.
+ </p>
+<p>
+ If for all x, is_member( x ) returns either true or false, we say the set T is <span class="emphasis"><em>well-defined</em></span>.
+ </p>
+<p>
+ If for any x, is_member( x ) returns dont_know, we say the set T is <span class="emphasis"><em>ill-defined</em></span>.
+ </p>
+<p>
+ Those are the rules normally used in math. However, because of the special characteristics of temporal types, it is useful to refine this view and create a third category as follows:
+ </p>
+<p>
+ For any temporal type T, there must be a predicate <span class="emphasis"><em>is_member( x, t )</em></span> which determines whether a value x is a member of T. The parameter t represents the time when the predicate is evaluated. For each x<sub>i</sub>, there must be a time t<sub>i</sub> and a value v such that:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">v = true or v = false, and</li>
+<li class="listitem" style="list-style-type: disc">for all t &lt; t<sub>i</sub>, is_member( x<sub>i</sub>, t ) returns dont_know, and</li>
+<li class="listitem" style="list-style-type: disc">for all t &gt;= t<sub>i</sub>, is_member( x<sub>i</sub>, t ) returns v.</li>
+</ul></div>
+<p>
+ t<sub>i</sub> is thus the time when we "find out" whether x<sub>i</sub> is a member of T. Now we can define three categories of temporal types:
+ </p>
+<p>
+ If for all x<sub>i</sub>, t<sub>i</sub> = negative infinity, we say the type T is <span class="emphasis"><em>predictable</em></span>.
+ </p>
+<p>
+ If for some x<sub>i</sub>, t<sub>i</sub> = positive infinity, we say the type T is <span class="emphasis"><em>ill-formed</em></span>.
+ </p>
+<p>
+ Otherwise we say the type T is <span class="emphasis"><em>unpredictable</em></span> (this implies that for some x<sub>i</sub>, t<sub>i</sub> is finite).
+ </p>
+<p>
+ Ill-formed sets are not of much practical use, so we will not discuss them further. In plain english the above simply says that all the values of a predictable type are known ahead of time, but some values of an unpredictable type are not known until some particular time.
+ </p>
+<h4>
+<a name="id1314386"></a>
+ Stability of Operations
+ </h4>
+<p>
+ Predictable types have a couple of important properties:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">there is an order-preserving mapping from their elements onto a set of consecutive integers, and</li>
+<li class="listitem" style="list-style-type: disc">duration operations on their values are stable</li>
+</ul></div>
+<p>
+ </p>
+<p>
+ The practical effect of this is that duration calculations can be implemented with simple integer subtraction. Examples of predictable types are TAI timepoints and Gregorian dates.
+ </p>
+<p>
+ Unpredictable types have exactly the opposite properties:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">there is no order-preserving mapping from their elements onto a set of consecutive integers, and</li>
+<li class="listitem" style="list-style-type: disc">duration operations on their values are not stable. </li>
+</ul></div>
+<p>
+ </p>
+<p>
+ Examples of unpredictable types are UTC timepoints and Local Time timepoints.
+ </p>
+<p>
+ We can refine this a little by saying that a range within an unpredicatable type can be predictable, and operations performed entirely on values within that range will be stable. For example, the range of UTC timepoints from 1970-01-01 through the present is predictable, so calculations of durations within that range will be stable.
+ </p>
+<h4>
+<a name="id1314450"></a>
+ Approximations
+ </h4>
+<p>
+ These limitations are problematical, because important temporal types like UTC and Local Time are in fact unpredictable, and therefore operations on them are sometimes unstable. Yet as a practical matter we often want to perform this kind of operation, such as computing the duration between two timepoints in the future that are specified in Local Time.
+ </p>
+<p>
+ The best the library can do is to provide an approximation, which is generally possible and for most purposes will be good enough. Of course the documentation must specify when an answer will be approximate (and thus unstable) and how big the error may be. In many respects calculating with unpredictable sets is analogous to the use of floating point numbers, for which results are expected to only be approximately correct. Calculating with predictable sets would then be analogous to the user of integers, where results are expected to be exact.
+ </p>
+<p>
+ For situations where exact answers are required or instability cannot be tolerated, the user must be able to specify this, and then the library should throw an exception if the user requests a computation for which an exact, stable answer is not possible.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.terminology"></a>Terminology</h3></div></div></div>
+<p>
+ The following are a number of terms relevant to the date-time domain.
+ </p>
+<p>
+ A taxonomy of temporal types:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">Timepoint -- Specifier for a location in the time continuum. Similar to a number on a ruler.</li>
+<li class="listitem" style="list-style-type: disc">Timelength -- A duration of time unattached to any point on the time continuum.</li>
+<li class="listitem" style="list-style-type: disc">Timeinterval -- A duration of time attached to a specific point in the time continuum.</li>
+</ul></div>
+<p>
+ </p>
+<p>
+ And some other terms:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">Accuracy -- A measure of error, the difference between the reading of a clock and the true time.</li>
+<li class="listitem" style="list-style-type: disc">Calendar System -- A system for labeling time points with day level resolution.</li>
+<li class="listitem" style="list-style-type: disc">Clock Device -- A software component (tied to some hardware) that provides the current date or time with respect to a calendar or clock system.</li>
+<li class="listitem" style="list-style-type: disc">Precision -- A measure of repeatability of a clock.</li>
+<li class="listitem" style="list-style-type: disc">Resolution -- A specification of the smallest representable duration (eg: 1 second, 1 century) for a clock/calendar system or temporal type.</li>
+<li class="listitem" style="list-style-type: disc">Stability -- The property of a class which says that the underlying representation (implementation) associated with a particular (abstract) value will never change.</li>
+<li class="listitem" style="list-style-type: disc">Time System -- A system for labeling time points with higher resolution than day-level. </li>
+</ul></div>
+<p>
+ </p>
+<p>
+ Some standard date-time terminology:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">Epoch -- Starting time point of a calendar or clock system.</li>
+<li class="listitem" style="list-style-type: disc">DST -- Daylight savings time - a local time adjustment made in some regions during the summer to shift the clock time of the daylight hours</li>
+<li class="listitem" style="list-style-type: disc">Time zone -- A region of the earth that provides for a 'local time' defined by DST rules and UT offset.</li>
+<li class="listitem" style="list-style-type: disc">UTC Time -- Coordinated Universal Time - Civil time system as measured at longitude zero. Kept adjusted to earth rotation by use of leap seconds. Also known as Zulu Time. Replaced the similar system known as Greenwich Mean Time. For more see <a href="http://aa.usno.navy.mil/faq/docs/UT.html" target="_top">http://aa.usno.navy.mil/faq/docs/UT.html</a>
+</li>
+<li class="listitem" style="list-style-type: disc">TAI Time -- A high-accuracy monotonic (need better term) time system measured to .1 microsecond resolution by atomic clocks around the world. Not adjusted to earth rotation. For more see <a href="http://www.bipm.fr/enus/5_Scientific/c_time/time_server.html" target="_top">http://www.bipm.fr/enus/5_Scientific/c_time/time_server.html</a>
+</li>
+</ul></div>
+<p>
+ </p>
+<p>
+ Some more experimental ones:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">Local Time -- A time measured in a specific location of the universe.</li>
+<li class="listitem" style="list-style-type: disc">Time Label -- A tuple that either completely or partially specifies a specific date-time with respect to a calendar or clock system. This is the year-month-day representation.</li>
+<li class="listitem" style="list-style-type: disc">Adjusting Time Length -- A duration that represents varying physical durations depending on the moment in time. For example, a 1 month duration is typically not a fixed number of days and it depends on the date it is measured from to determine the actual length. </li>
+</ul></div>
+<p>
+ </p>
+<p>
+ These are design sorts of terms:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet"><li class="listitem" style="list-style-type: disc">Generation function -- A function that generates a specific set of time points, lengths, or intervals based on one or more parameters. </li></ul></div>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.references"></a>References</h3></div></div></div>
+<p>The design of the library is currently being evolved using Wiki and email discussions. You can find more information at: <a href="http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?GDTL" target="_top">Boost Wiki GDTL Start Page</a>.
+ </p>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc"><a class="link" href="details.html#date_ref">Date References</a></li>
+<li class="listitem" style="list-style-type: disc"><a class="link" href="details.html#time_ref">Time References</a></li>
+<li class="listitem" style="list-style-type: disc"><a class="link" href="details.html#other_c_libs">Other C/C++ Libraries</a></li>
+<li class="listitem" style="list-style-type: disc"><a class="link" href="details.html#java_libs">JAVA Date-Time Libraries</a></li>
+<li class="listitem" style="list-style-type: disc"><a class="link" href="details.html#script_libs">Scripting Language Libraries</a></li>
+<li class="listitem" style="list-style-type: disc"><a class="link" href="details.html#related">Related Commercial and Fanciful Pages</a></li>
+<li class="listitem" style="list-style-type: disc"><a class="link" href="details.html#resolution">Resolution, Precision, and Accuracy</a></li>
+</ul></div>
+<p>
+ </p>
+<a name="date_ref"></a><h4>
+<a name="id1314752"></a>Date Calendar References</h4>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">ISO 8601 date time standard -- <a href="http://www.cl.cam.ac.uk/~mgk25/iso-time.html" target="_top">Summary by Markus Kuhn</a>
+</li>
+<li class="listitem" style="list-style-type: disc">
+<a href="http://emr.cs.iit.edu/home/reingold/calendar-book/second-edition/" target="_top">Calendrical Calculations</a> book by Reingold &amp; Dershowitz</li>
+<li class="listitem" style="list-style-type: disc"><a href="http://www.tondering.dk/claus/calendar.html" target="_top">Calendar FAQ by Claus T&#248;ndering</a></li>
+<li class="listitem" style="list-style-type: disc">Calendar zone <a href="http://www.calendarzone.com" target="_top">http://www.calendarzone.com</a>
+</li>
+<li class="listitem" style="list-style-type: disc"><a href="http://www.w3.org/TR/xmlschema-2/#dateTime" target="_top">XML schema for date time</a></li>
+<li class="listitem" style="list-style-type: disc">Will Linden's <a href="http://www.ecben.net/calendar.shtml" target="_top">Calendar Links</a>
+</li>
+<li class="listitem" style="list-style-type: disc"><a href="http://www21.brinkster.com/lonwolve/melt/index.htm" target="_top">XMAS calendar melt</a></li>
+</ul></div>
+<p>
+ </p>
+<a name="time_ref"></a><h4>
+<a name="id1314836"></a>Time</h4>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">Martin Folwer on time patterns
+ <div class="itemizedlist"><ul class="itemizedlist" type="opencircle">
+<li class="listitem"><a href="http://www.aw.com/cseng/titles/0-201-89542-0/apsupp/events2-1.html" target="_top">Recurring Events for Calendars</a></li>
+<li class="listitem">Patterns for things that <a href="http://martinfowler.com/ap2/timeNarrative.html" target="_top">Change with time</a>
+</li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: disc">US National Institute of Standards and Technology <a href="http://nist.time.gov/exhibits.html" target="_top">Time Exhibits</a>
+</li>
+<li class="listitem" style="list-style-type: disc">Network Time Protocol at <a href="http://www.ntp.org/" target="_top">NTP.org</a>
+</li>
+<li class="listitem" style="list-style-type: disc">US Navy <a href="http://tycho.usno.navy.mil/systime.html" target="_top">Systems of Time</a>
+</li>
+<li class="listitem" style="list-style-type: disc"><a href="http://www.bipm.fr/enus/5_Scientific/c_time/time_1.html" target="_top">International Atomic Time</a></li>
+<li class="listitem" style="list-style-type: disc">
+<a href="http://beta.zyprexia.com/docs/pgsql/user/datatype1130.htm" target="_top">Date-Time type PostgreSQL</a> User Guide </li>
+</ul></div>
+<p>
+ </p>
+<a name="other_c_libs"></a><h4>
+<a name="id1314931"></a>Other C/C++ Libraries</h4>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">
+<a href="http://www.cplusplus.com/ref/ctime/index.html" target="_top">ctime C</a> Standard library reference at cplusplus.com</li>
+<li class="listitem" style="list-style-type: disc">
+<a href="http://www.cl.cam.ac.uk/~mgk25/c-time/" target="_top">XTime C extension</a> proposal</li>
+<li class="listitem" style="list-style-type: disc">
+<a href="http://david.tribble.com/text/c0xcalendar.html#author-info" target="_top">Another C library extension proposal</a> by David Tribble</li>
+<li class="listitem" style="list-style-type: disc">
+<a href="http://cr.yp.to/libtai.html" target="_top">libTAI</a> is a C based time library</li>
+<li class="listitem" style="list-style-type: disc">
+<a href="http://www.twinsun.com/tz/tz-link.htm" target="_top">Time Zone Database</a> C library for managing timezones/places</li>
+<li class="listitem" style="list-style-type: disc">International Components for Unicode by IBM (open source)
+ <div class="itemizedlist"><ul class="itemizedlist" type="opencircle">
+<li class="listitem"><a href="http://icu.sourceforge.net/userguide/dateCalendar.html" target="_top">Calendar Class</a></li>
+<li class="listitem"><a href="http://icu.sourceforge.net/userguide/dateTime.html" target="_top">Date Time Services</a></li>
+<li class="listitem"><a href="http://oss.software.ibm.com/userguide/dateTimezone.html" target="_top">Time Zone Class</a></li>
+<li class="listitem"><a href="http://oss.software.ibm.com/userguide/formatDateTime.html" target="_top">Date-Time Formatting</a></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: disc"><a href="http://pds-rings.seti.org/toolkits/julian_133_html/aareadme.html" target="_top">Julian Library in C by Mark Showalter -- NASA</a></li>
+</ul></div>
+<p>
+ </p>
+<a name="java_libs"></a><h4>
+<a name="id1315045"></a>JAVA Date &amp; Time Library Quick Reference</h4>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc"><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Calendar.html" target="_top">Calendar class</a></li>
+<li class="listitem" style="list-style-type: disc"><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/GregorianCalendar.html" target="_top">Gregorian calendar</a></li>
+<li class="listitem" style="list-style-type: disc"><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Date.html" target="_top">Date class</a></li>
+<li class="listitem" style="list-style-type: disc"><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Time.html" target="_top">sql.time class</a></li>
+<li class="listitem" style="list-style-type: disc"><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/DateFormatSymbols.html#_top_" target="_top">Date format symbols</a></li>
+<li class="listitem" style="list-style-type: disc"><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/DateFormat.html" target="_top">Date format</a></li>
+<li class="listitem" style="list-style-type: disc"><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SimpleDateFormat.html" target="_top">Simple Date Format</a></li>
+<li class="listitem" style="list-style-type: disc"><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SimpleTimeZone.html" target="_top">Simple Time Zone</a></li>
+</ul></div>
+<p>
+ </p>
+<a name="script_libs"></a><h4>
+<a name="id1315128"></a>Scripting Language Libraries</h4>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">A python date library <a href="http://www.lemburg.com/files/python/mxDateTime.html" target="_top">MX Date Time</a>
+</li>
+<li class="listitem" style="list-style-type: disc">Perl date-time
+ <div class="itemizedlist"><ul class="itemizedlist" type="opencircle">
+<li class="listitem"><a href="http://search-dev.develooper.com/search?m=module&amp;q=date&amp;s=11" target="_top">Date-Time packages at CPAN</a></li>
+<li class="listitem">
+<a href="http://search-dev.develooper.com/~stbey/Date-Calc-5.4/Calc.pod" target="_top">Date::Calc</a> at CPAN</li>
+<li class="listitem">
+<a href="http://search.cpan.org/doc/MORTY/DateConvert-0.16/Convert.pm" target="_top">Date::Convert</a> calendar conversions at CPAN</li>
+</ul></div>
+</li>
+</ul></div>
+<p>
+ </p>
+<a name="related"></a><h4>
+<a name="id1315193"></a>Related Commercial and Fanciful Pages</h4>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">
+<a href="http://www.craphound.com/est/" target="_top">Eastern Standard Tribe</a> -- Cory Doctorow science fiction novel with time themes.</li>
+<li class="listitem" style="list-style-type: disc">
+<a href="http://www.leapsecond.com/java/gpsclock.htm" target="_top">Leapsecond.com time</a> page</li>
+<li class="listitem" style="list-style-type: disc"><a href="http://www.worldtimeserver.com" target="_top">World Time Server / TZ database</a></li>
+<li class="listitem" style="list-style-type: disc">
+<a href="http://www.longnow.org/10kclock/clock.htm" target="_top">10000 year clock</a> at Long Now Foundation</li>
+<li class="listitem" style="list-style-type: disc"><a href="http://www.timezonesforpcs.com" target="_top">Timezones for PCs</a></li>
+</ul></div>
+<p>
+ </p>
+<a name="resolution"></a><h4>
+<a name="id1315253"></a>Resolution, Precision, and Accuracy</h4>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">Definitions with pictures from <a href="http://metrologyforum.tm.agilent.com/specs.shtml" target="_top">Agilent Technologies</a>
+</li>
+<li class="listitem" style="list-style-type: disc">Definitions from <a href="http://www.solent.ac.uk/hydrography/notes/errorthe/accuracy.htm" target="_top">Southampton Institute</a>
+</li>
+</ul></div>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.buildinfo"></a>Build-Compiler Information</h3></div></div></div>
+<p>
+ <a class="link" href="details.html#overview">Overview</a> --
+ <a class="link" href="details.html#compile_options">Compilation Options</a> --
+ <a class="link" href="details.html#portability">Compiler/Portability Notes</a> --
+ <a class="link" href="details.html#dir_structure">Directory Structure</a> --
+ <a class="link" href="details.html#other_boost_libs">Required Boost Libraries</a>
+ </p>
+<a name="overview"></a><h4>
+<a name="id1315348"></a>Overview</h4>
+<p>
+ The library has a few functions that require the creation of a library file (mostly to_string, from_string functions). Most library users can make effective use of the library WITHOUT building the library, but simply including the required headers. If the library is needed, the Jamfile in the build directory will produce a "static" library (libboost_date_time) and a "dynamic/shared" library (boost_date_time) that contains these functions.
+ </p>
+<a name="compile_options"></a><h4>
+<a name="id1315370"></a>Compilation Options</h4>
+<p>
+ By default the posix_time system uses a single 64 bit integer internally to provide a microsecond level resolution. As an alternative, a combination of a 64 bit integer and a 32 bit integer (96 bit resolution) can be used to provide nano-second level resolutions. The default implementation may provide better performance and more compact memory usage for many applications that do not require nano-second resolutions.
+ </p>
+<p>
+ To use the alternate resolution (96 bit nanosecond) the variable <code class="computeroutput">BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG</code> must be defined in the library users project files (ie Makefile, Jamfile, etc). This macro is not used by the Gregorian system and therefore has no effect when building the library.
+ </p>
+<p>As of version 1.33, the date_time library introduced a new IO streaming system. Some compilers are not capable of utilizing this new system. For those compilers the earlier ("legacy") IO system is still available. Non-supported compilers will select the legacy system automatically but the user can force the usage of the legacy system by defining <code class="computeroutput">USE_DATE_TIME_PRE_1_33_FACET_IO</code>.</p>
+<p>As a convenience, <code class="computeroutput">date_time</code> has provided some <a class="link" href="gregorian.html#additional_duration_types">additional duration types</a>. Use of these types may have unexpected results due to the snap-to-end-of-month behavior (see <a class="link" href="gregorian.html#snap_to_details">Reversibility of Operations Pitfall</a> for complete details and examples). These types are enabled by default. To disable these types, simply undefine <code class="computeroutput">BOOST_DATE_TIME_OPTIONAL_GREGORIAN_TYPES</code> in your project file.</p>
+<p>Another convenience is the default constructors for <code class="computeroutput"><a class="link" href="gregorian.html#date_time.gregorian.date_class" title="Date">date</a></code>, and <code class="computeroutput"><a class="link" href="posix_time.html#date_time.posix_time.ptime_class" title="Ptime">ptime</a></code>. These constructors are enabled by default. To disable them, simply define <code class="computeroutput">DATE_TIME_NO_DEFAULT_CONSTRUCTOR</code> in your project file.</p>
+<a name="portability"></a><h4>
+<a name="id1315490"></a>Compiler/Portability Notes</h4>
+<p>
+ The Boost Date-Time library has been built and tested with many compilers and platforms. However, some compilers and standard libraries have issues. While some of these issues can be worked around, others are difficult to work around. The following compilers are known to fully support all aspects of the library:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">Codewarrior 9.4 Windows</li>
+<li class="listitem" style="list-style-type: disc">GCC 3.2 - 3.4, 4.x on Linux</li>
+<li class="listitem" style="list-style-type: disc">GCC 3.3, 4.x on Darwin</li>
+<li class="listitem" style="list-style-type: disc">GCC 3.3 - 3.4, 4.x on Solaris</li>
+<li class="listitem" style="list-style-type: disc">GCC 3.3, 4.x on HP-UX</li>
+<li class="listitem" style="list-style-type: disc">QCC 3.3.5 on QNX</li>
+<li class="listitem" style="list-style-type: disc">MSVC 7.1 Windows </li>
+<li class="listitem" style="list-style-type: disc">Intel 8.1-9.x Linux and Windows</li>
+</ul></div>
+<p>
+ </p>
+<p>
+ Unfortunately, the VC8 compiler has some issues with date-time code.
+ The most serious issue is a memory leak which was introduced into the
+ VC8 standard library basic_stream code. Date-time has code has been changed
+ to avoid this as much as possible, but if you are using the legacy IO option
+ (NOT the default with VC8) then the issue can still arise. See the
+
+ <a href="http://lists.boost.org/Archives/boost/2006/02/101122.php" target="_top">mailing list archive</a> for more details.
+ </p>
+<p>
+ In addition to the problem above, some versions of the VC8 library have limited
+ the range of allowed
+ values in the <code class="computeroutput">std::tm</code> structure to positive values. This was a new
+ restriction added in the VC8. The effect is that dates prior to the year
+ 1900 will cause exceptions. There is, unfortunately, no easy workaround for
+ this issue. Note that the new 64bit version of the VC8 compiler
+ does not appear to have this limitation.
+ </p>
+<p>
+ These compilers support all aspects of the library except <code class="computeroutput">wstring/wstream</code>
+ output.
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">MinGW 3.2, 3.4, 3.5 *</li>
+<li class="listitem" style="list-style-type: disc">GCC 3.2 (cygwin) *</li>
+</ul></div>
+<p>
+ </p>
+<p>
+ In particular, a lack of support for standard locales limits the ability of the library to support iostream based input output. For these compilers a set of more limited string based input-output is provided. Some compilers/standard libraries with this limitation include:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet"><li class="listitem" style="list-style-type: disc">Borland 5.6</li></ul></div>
+<p>
+ </p>
+<p>
+ Official support for some older compilers has now been dropped. This includes:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">GCC 2.9x</li>
+<li class="listitem" style="list-style-type: disc">Borland 5.1.1</li>
+<li class="listitem" style="list-style-type: disc">MSVC 7.0 and 6 SP5 </li>
+</ul></div>
+<p>
+ </p>
+<h6>
+<a name="id1315634"></a>Visual Studio &amp; STLPort</h6>
+<p>There is a known issue with Visual Studio (7.0 &amp; 7.1) and STLPort. The build errors typically make reference to a type issue or 'no acceptable conversion' and are attempting to instantiate a template with <code class="computeroutput">wchar_t</code>. The default build of STLPort does not support <code class="computeroutput">wchar_t</code>. There are two possible workarounds for this issue. The simplest is the user can build date_time with no wide stream/string etc. The other is to rebuild STLPort with wchar_t support.
+ </p>
+<p>To build date_time with no wide stream/string etc, execute the following command from <code class="computeroutput">$BOOST_ROOT</code>:
+ </p>
+<pre class="screen">bjam -a "-sTOOLS=vc-7_1-stlport" "-sSTLPORT_PATH=..." \
+ "-sBUILD=&lt;define&gt;BOOST_NO_STD_WSTRING" \
+ --stagedir=... --with-date_time stage</pre>
+<p>
+ (replace the ellipsis with the correct paths for the build system and adjust the <code class="computeroutput">TOOLS</code> to the proper toolset if necessary)
+ </p>
+<p>Rebuilding STLPort with <code class="computeroutput">wchar_t</code> support involves placing <code class="computeroutput">/Zc:wchar_t</code> in the STLPort makefile. Date_time should then be built with the following command from <code class="computeroutput">$BOOST_ROOT</code>:
+ </p>
+<pre class="screen">bjam -a "-sTOOLS=vc-7_1-stlport" "-sSTLPORT_PATH=..." \
+ "-sBUILD=&amp;native-wchar_t&gt;on" \
+ --stagedir=... --with-date_time stage</pre>
+<p>
+ (replace the ellipsis with the correct paths for the build system and adjust the <code class="computeroutput">TOOLS</code> to the proper toolset if necessary)
+ </p>
+<a name="dir_structure"></a><h4>
+<a name="id1315677"></a>Directory Structure</h4>
+<p>
+ The directory tree has the following structure:
+ </p>
+<pre class="programlisting">/boost/date_time -- common headers and template code
+/boost/date_time/gregorian -- Gregorian date system header files
+/boost/date_time/posix_time -- Posix time system headers
+/boost/date_time/local_time -- Local time system headers
+/libs/date_time/build -- build files and output directory
+/libs/date_time/test -- test battery for generic code
+/libs/date_time/test/gregorian -- test battery for the Gregorian system
+/libs/date_time/test/posix_time -- test battery for the posix_time system
+/libs/date_time/test/local_time -- test battery for the local_time system
+/libs/date_time/examples/gregorian -- example programs for dates
+/libs/date_time/examples/posix_time -- time example programs
+/libs/date_time/examples/local_time -- nifty example programs
+/libs/date_time/src/gregorian -- cpp files for libboost_date_time
+/libs/date_time/src/posix_time -- empty (one file, but no source code...)</pre>
+<p>
+ </p>
+<a name="other_boost_libs"></a><h4>
+<a name="id1315761"></a>Required Boost Libraries</h4>
+<p>
+ Various parts of date-time depend on other boost libraries. These include:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc"><a href="../../../libs/tokenizer/index.html" target="_top">boost.tokenizer</a></li>
+<li class="listitem" style="list-style-type: disc"><a href="../../../libs/integer/doc/html/boost_integer/cstdint.html" target="_top">boost.integer(cstdint)</a></li>
+<li class="listitem" style="list-style-type: disc"><a href="../../../libs/utility/operators.htm" target="_top">boost.operators</a></li>
+<li class="listitem" style="list-style-type: disc"><a href="../../../libs/conversion/lexical_cast.htm" target="_top">boost.lexical_cast </a></li>
+<li class="listitem" style="list-style-type: disc"><a href="../../../libs/smart_ptr/smart_ptr.htm" target="_top">boost.smart_ptr (local time only)</a></li>
+<li class="listitem" style="list-style-type: disc"><a href="../../../libs/algorithm/string/index.html" target="_top">boost::string_algorithms </a></li>
+<li class="listitem" style="list-style-type: disc"><a href="../../../libs/serialization/index.html" target="_top">boost::serialize (serialization code only) </a></li>
+</ul></div>
+<p>
+ so these libraries need to be installed.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.tests"></a>Tests</h3></div></div></div>
+<p>
+ The library provides a large number of tests in the
+ </p>
+<pre class="programlisting">
+ libs/date_time/test
+ libs/date_time/test/gregorian
+ libs/date_time/test/posix_time
+ libs/date_time/test/local_time
+ </pre>
+<p>
+ directories. Building and executing these tests assures that the installation is correct and that the library is functioning correctly. In addition, these tests facilitate the porting to new compilers. Finally, the tests provide examples of many functions not explicitly described in the usage examples.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.changes"></a>Change History</h3></div></div></div>
+<h4>
+<a name="id1315877"></a>Changes from Boost 1.41 to 1.44 (date_time 1.08 to 1.09)</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Type</th>
+<th>Description</th>
+</tr></thead>
+<tbody><tr>
+<td>Bug fix</td>
+<td>
+ The "%T" and "%R" format specifiers are now processed by the library rather than underlying standard facet.
+ This fixes the cases when the placeholders are not supported by the facet
+ (<a href="https://svn.boost.org/trac/boost/ticket/3876" target="_top">#3876</a>).
+ </td>
+</tr></tbody>
+</table></div>
+<h4>
+<a name="id1315930"></a>Changes from Boost 1.40 to 1.41 (date_time 1.07 to 1.08)</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Type</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>Change</td>
+<td>
+ The default format for time durations is now "%-%O:%M:%S%F" instead of "%-%H:%M:%S%F" that was used previously. In order to retain the old behavior, the format string has to be specified explicitly during the time IO facet construction (<a href="https://svn.boost.org/trac/boost/ticket/1861" target="_top">#1861</a>).
+ </td>
+</tr>
+<tr>
+<td>Bug fix</td>
+<td>
+ Gregorian dates now use 32-bit integer type internally on 64-bit platforms (<a href="https://svn.boost.org/trac/boost/ticket/3308" target="_top">#3308</a>).
+ </td>
+</tr>
+<tr>
+<td>Bug fix</td>
+<td>
+ Adjusted UTC time zone offset boundaries in order to allow offsets up to +14 hours (<a href="https://svn.boost.org/trac/boost/ticket/2213" target="_top">#2213</a>).
+ </td>
+</tr>
+</tbody>
+</table></div>
+<h4>
+<a name="id1316020"></a>Changes from Boost 1.38 to 1.40 (date_time 1.06 to 1.07)</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Type</th>
+<th>Description</th>
+</tr></thead>
+<tbody><tr>
+<td>Bug fix</td>
+<td>
+ Minor bug fixes (<a href="https://svn.boost.org/trac/boost/ticket/2809" target="_top">#2809</a>,
+ <a href="https://svn.boost.org/trac/boost/ticket/2824" target="_top">#2824</a>,
+ <a href="https://svn.boost.org/trac/boost/ticket/3015" target="_top">#3015</a>,
+ <a href="https://svn.boost.org/trac/boost/ticket/3105" target="_top">#3105</a> and others).
+ </td>
+</tr></tbody>
+</table></div>
+<h4>
+<a name="id1316089"></a>Changes from Boost 1.34 to 1.38 (date_time 1.05 to 1.06)</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Type</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>Feature</td>
+<td>
+ Added support for formatting and reading time durations longer than 24 hours.
+ A new formatter <code class="computeroutput">%O</code> is used indicate such long durations in the
+ format string. The old <code class="computeroutput">%H</code> format specifier is thus restricted
+ to represent durations that fit into two characters, in order to retain support
+ for reading durations in ISO format. In case if it is detected that the <code class="computeroutput">%H</code>
+ format specifier is used with longer durations, the results are not specified
+ (an assertion in debug builds is raised).
+ </td>
+</tr>
+<tr>
+<td>Bug fix</td>
+<td>
+ Added support for GCC 4.3. Several compilation issues were solved, as well as
+ compiler warnings were taken care of.
+ </td>
+</tr>
+<tr>
+<td>Bug fix</td>
+<td>
+ Added missing streaming operators for the <code class="computeroutput">local_time_period</code> class.
+ </td>
+</tr>
+<tr>
+<td>Bug fix</td>
+<td>
+ Added several missing includes in different places. Some includes that are
+ not needed in some configurations were made conditional.
+ </td>
+</tr>
+<tr>
+<td>Bug fix</td>
+<td>
+ Solved compilation problem that was caused by not finding streaming operators
+ for <code class="computeroutput">gregorian::date_duration</code> via ADL. The type is now made actually
+ a class rather a typedef for the <code class="computeroutput">date_time::date_duration</code> template.
+ The similar change was done for <code class="computeroutput">gregorian::weeks</code>.
+ </td>
+</tr>
+<tr>
+<td>Bug fix</td>
+<td>
+ Added a correctly spelled <code class="computeroutput">date_time::hundredth</code> time resolution enum
+ value. The old one <code class="computeroutput">date_time::hundreth</code> is considered deprecated and
+ to be removed in future releases.
+ </td>
+</tr>
+<tr>
+<td>Bug fix</td>
+<td>
+ Fixed compilation error in <code class="computeroutput">format_date_parser.hpp</code> because of incorrect
+ stream type being used.
+ </td>
+</tr>
+<tr>
+<td>Bug fix</td>
+<td>
+ On Windows platform made inclusion of <code class="computeroutput">windows.h</code> optional. The header is only used
+ when the <code class="computeroutput">BOOST_USE_WINDOWS_H</code> macro is defined. Otherwise (and by default),
+ the library uses internal definitions of symbols from this header.
+ </td>
+</tr>
+<tr>
+<td>Bug fix</td>
+<td>
+ On Windows platform function <code class="computeroutput">from_ftime</code> could return incorrect time if
+ the <code class="computeroutput">FILETIME</code> that is being passed to the function contained dates before 1970-Jan-01.
+ </td>
+</tr>
+<tr>
+<td>Bug fix</td>
+<td>
+ Fixed a possible crash in <code class="computeroutput">gregorian::special_value_from_string</code> if the string
+ did not represent a valid special value.
+ </td>
+</tr>
+<tr>
+<td>Bug fix</td>
+<td>
+ Removed the <code class="computeroutput">testfrmwk.hpp</code> file from the public include directory. This file
+ was internal for the library tests and was not documented.
+ </td>
+</tr>
+<tr>
+<td>Bug fix</td>
+<td>
+ Fixed missing include in <code class="computeroutput">filetime_functions.hpp</code>
+ (<a href="https://svn.boost.org/trac/boost/ticket/2688" target="_top">#2688</a>).
+ </td>
+</tr>
+<tr>
+<td>Bug fix</td>
+<td>
+ Fixed dereferencing end string iterators in different places of code,
+ which could cause crashes on MSVC
+ (<a href="https://svn.boost.org/trac/boost/ticket/2698" target="_top">#2698</a>).
+ </td>
+</tr>
+</tbody>
+</table></div>
+<h4>
+<a name="id1316405"></a>Changes from Boost 1.33 to 1.34 (date_time 1.04 to 1.05)</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Type</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>Feature</td>
+<td>
+ Updated the data in the date_time_zonespec.csv file to reflect new US/Canada
+ daylight savings time rules for 2007. If you upgrade to the new file, be aware
+ that the library will only give correct answers for current/future date
+ conversions. So if you are converting dates from earlier years the answers
+ will reflect current time zone rules not past rules. The library doesn't support
+ historic timezone rules presently.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>
+ Two other dst calculation features have also been update to reflect the new
+ US/Canada timzone rules. This is the boost::date_time::us_dst_rules and
+ dst_calc_engine. While the us_dst_rules is officially deprecated, a patch
+ by Graham Bennett has been applied which allows this class to work correctly
+ for both historical and future dates. The dst_calc_engine was updated to also
+ work for historical and future times. This allows the various local_adjustor
+ classes to work correctly. There was an interface change for classes using the
+ dst_calc_engine with custom dst traits classes. The traits classes signatures
+ changed to take a 'year' parameter on most of the methods such as end_month.
+ In addition, 2 new functions are needed on the traits classes:
+ <code class="computeroutput">static date_type local_dst_start_day(year_type year)</code> and
+ <code class="computeroutput">static date_type local_dst_end_day(year_type year)</code>.
+ Implementers should see <code class="computeroutput">date_time/local_timezone_defs.hpp</code> for
+ examples.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Fix DST traits for Austrialia (sf# 1672139) to set end of DST at 3:00 am instead of 2:00 am.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Fix a problem with potential linking error with multiple definitions due
+ to I/O code.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Changed serialization code in both greg_serialize.hpp and time_serialize.hpp
+ to eliminate warnings due to unused variables for version and file_version.
+ Thanks to Caleb Epstein for the patch suggestion.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Fix regression errors that showed up under FreeBSD with GCC and the
+ LANG environment set to russian -- changed parser to use classic
+ locale instead of blank locale.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Changes for tracker issue 1178092 -- change in convert_to_lower to make
+ local a const static and speed up parsing.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Patches from Ulrich Eckhardt to fix support for EVC++ 4.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Reduce the usage of basic_stringstream as much a possible to work around
+ a bug in the VC8 standard library. See
+ <a href="http://lists.boost.org/Archives/boost/2006/02/101122.php" target="_top">mailing list archive</a>
+ for more information.
+ </td>
+</tr>
+</tbody>
+</table></div>
+<h4>
+<a name="id1316574"></a>Changes from Boost 1.32 to 1.33 (date_time 1.03 to 1.04)</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Type</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>Bug Fix</td>
+<td>Period lengths, when beginning and end points are the same, or are consecutive, were being incorrectly calculated. The corrected behavior, where end and beginning points are equal, or a period is created with a zero duration, now return a length of zero. A period where beginning and end points are consecutive will return a length of one.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Time_input_facet was missing functions to set iso formats. It also failed to parse time values that did not use a separator (%H%M%S). Both these bugs have been corrected.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Preliminary names of ptime_facet and ptime_input_facet changed to simply time_facet and time_input_facet. The ptime_* versions have been removed all together.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>The from_iso_string function failed to parse fractional digits. We added code that correctly parses when input has more digits, or too few digits, that the compiled library precision. Ptimes with only a decimal are also correctly parsed.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>The parsing mechanism in the new IO would consume the next character after a match was made. This bug presented itself when attempting to parse a period that had special value for it's beginning point.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>The new IO system failed to provide the ability for the user to "turn on" exceptions on the stream. The failbit was also not set when parsing failed. Both of these problems have been fixed.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Parsing of special values, by means of from_*_string functions, has been fixed. This also effects the libraries ability to serialize special values. Time_duration now serializes as either a string or individual fields (depending on is_special()).
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Previously, output streaming of <code class="computeroutput">partial_date</code> would display the day as either a single or double digit integer (ie '1', or '12'). This has been corrected to always display a double digit integer (ie '01').
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Major new features related to management of local times.
+ This includes the introduction of a series of new classes to
+ represent time zones and local times (see <a class="link" href="local_time.html" title="Local Time">Date Time Local Time</a> for complete details).
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Input and output facets have been re-written to support format-based
+ redefinition of formats (see <a class="link" href="date_time_io.html" title="Date Time Input/Output">Date Time IO</a> for complete details).
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Functions have been added to facilitate conversions between <code class="computeroutput">tm</code> structs for <code class="computeroutput">date</code>, <code class="computeroutput">ptime</code>, <code class="computeroutput">time_duration</code>, and <code class="computeroutput">local_date_time</code>. Functions for converting <code class="computeroutput">FILETIME</code>, and <code class="computeroutput">time_t</code> to <code class="computeroutput">ptime</code> are also provided. See the individual sections for details.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>A <code class="computeroutput">universal_time</code> function has been added to the <code class="computeroutput">microsec_time_clock</code> (full details of this function can be found <a class="link" href="posix_time.html#ptime_from_clock">here</a>).
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Functions have been added to facilitate conversions between <code class="computeroutput">tm</code> structs for <code class="computeroutput">date</code>, <code class="computeroutput">ptime</code>, <code class="computeroutput">time_duration</code>, and <code class="computeroutput">local_date_time</code>. Functions for converting <code class="computeroutput">FILETIME</code>, and <code class="computeroutput">time_t</code> to <code class="computeroutput">ptime</code> are also provided. See the individual sections for details.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>A <code class="computeroutput">universal_time</code> function has been added to the <code class="computeroutput">microsec_time_clock</code> (full details of this function can be found <a class="link" href="posix_time.html#ptime_from_clock">here</a>).
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Date-time now uses reentrant POSIX functions on those platforms that
+ support them when BOOST_HAS_THREADS is defined.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Fixed a bug in serialization code where special values
+ (not-a-date-time, infinities, etc) for
+ ptime, time_duration would not read back correctly from an archive.
+ The output serialization code wrote subfields such
+ as time_duration.seconds() which are invalid for special values and
+ thus undefined values. Thus when read back the values could cause
+ strange behavior including execeptions on construction.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Fixed multiple warnings generated with various platforms/compilers.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Construction of a ptime with a time_duration beyond the range of 00:00 to 23:59:59.9... now adjusts the date and time to make the time_duration fall within this range (ie <code class="computeroutput">ptime(date(2005,2,1), hours(-5))</code> -&gt; "2005-Jan-31 19:00:00" &amp; <code class="computeroutput">ptime(date(2005,2,1), hours(35))</code> -&gt; "2005-Feb-02 11:00:00").
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Time parsing now correctly handles excessive digits for fractional seconds. Leading zeros are dropped ("000100" -&gt; 100 frac_sec), and excessive digits are truncated at the proper place ("123456789876" -&gt; 123456 or 123456789 depending on what precision the library was compiled with).
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Changes to the <code class="computeroutput">boost::serialization</code> interface broke serialization compatibility for <code class="computeroutput">date_time</code>. The user must provide a function to insure <code class="computeroutput">date_time</code> objects are <code class="computeroutput">const</code> before they are serialized. The function should be similar to:
+ <pre class="screen">template&lt;class archive_type, class temporal_type&gt;
+void save_to(archive_type&amp; ar,
+ const temporal_type&amp; tt)
+{
+ ar &lt;&lt; tt;
+}</pre>
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Use of the depricated <code class="computeroutput">boost::tokenizer</code> interface has been updated to the current interface. This fixes compiler errors on some older compilers.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Templatized formatters in the legacy IO system to accept char type. Also removed calls to <code class="computeroutput">boost::lexical_cast</code>.
+ </td>
+</tr>
+</tbody>
+</table></div>
+<h4>
+<a name="id1317095"></a>Changes from Boost 1.31 to 1.32 (date_time 1.02 to 1.03)</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Type</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>Bug Fix</td>
+<td>Snap to end of month behavior corrected for year_functor. Previously, starting
+ from 2000-Feb-28 (leap year and not end of month) and iterating through the next
+ leap year would result in 2004-Feb-29 instead of 2004-Feb-28. This behavior has
+ been corrected to produce the correct result of 2004-Feb-28. Thanks to Bart Garst
+ for this change.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Free function for creating a ptime object from a FILETIME struct. This function
+ is only available on platforms that define BOOST_HAS_FTIME.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Microsecond time clock is now available on most windows compilers as well as
+ Unix.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Use of the boost::serialization library is now available with most of the
+ date_time classes. Classes capable of serialization are: date_generator classes,
+ date, days, date_period, greg_month, greg_weekday, greg_day, ptime, time_duration,
+ and time_period. Thanks to Bart Garst for this change.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Functions added to convert date and time classes to wstring. The library now
+ provides to_*_wstring as well as to_*_string functions for: simple, iso,
+ iso_extended, and sql for dates and compilers that support wstrings. Thanks to
+ Bart Garst for this change.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Period classes now handle zero length and NULL periods correctly. A NULL period
+ is a period with a negative length. Thanks to Frank Wolf and Bart Garst for this
+ change.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added end_of_month function to gregorian::date to return the last day of
+ the current month represented by the date. Result is undefined for
+ not_a_date_time or infinities.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Removed incorrect usage of BOOST_NO_CWCHAR macro throughout library.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>New names added for some date classes. Original names are still valid but may
+ some day be deprecated. Changes are:
+ <table border="0" summary="Simple list" class="simplelist">
+<tr>
+<td>date_duration</td>
+<td>is now</td>
+<td>days</td>
+</tr>
+<tr>
+<td>nth_kday_of_month</td>
+<td>is now</td>
+<td>nth_day_of_the_week_in_month</td>
+</tr>
+<tr>
+<td>first_kday_of_month</td>
+<td>is now</td>
+<td>first_day_of_the_week_in_month</td>
+</tr>
+<tr>
+<td>last_kday_of_month</td>
+<td>is now</td>
+<td>last_day_of_the_week_in_month</td>
+</tr>
+<tr>
+<td>first_kday_after</td>
+<td>is now</td>
+<td>first_day_of_the_week_after</td>
+</tr>
+<tr>
+<td>first_kday_before</td>
+<td>is now</td>
+<td>first_day_of_the_week_before</td>
+</tr>
+</table>
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Free functions for date generators added. Functions are: days_until_weekday, days_before_weekday, next_weekday, and previous_weekday.
+ <pre class="screen">days days_until_weekday(date, greg_weekday);
+days days_before_weekday(date, greg_weekday);
+date next_weekday(date, greg_weekday);
+date previous_weekday(date, greg_weekday);</pre>
+ Thanks to Bart Garst for this change.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>New experimental duration types added for months, years, and weeks. These classes
+ also provide mathematical operators for use with date and time classes. Be aware
+ that adding of months or years a time or date past the 28th of a month may show
+ non-normal mathematical properties. This is a result of 'end-of-month'
+ snapping used in the calculation. The last example below illustrates the
+ issue.
+
+ <pre class="screen">months m(12);
+years y(1);
+m == y; // true
+days d(7);
+weeks w(1);
+d == w; // true
+ptime t(...);
+t += months(3);
+date d(2004,Jan,30);
+d += months(1); //2004-Feb-29
+d -= months(1); //2004-Jan-29</pre>
+ Input streaming is not yet implemented for these types.
+ Thanks to Bart Garst for this change.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Unifying base class for date_generators brought in to gregorian namespace. See <a class="link" href="examples.html#date_time.examples.print_holidays" title="Print Holidays">Print Holidays Example</a>.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added constructors for date and ptime that allow for default construction (both)
+ and special values construction (ptime, both now support this). Default
+ constructors initialize the objects to not_a_date_time (NADT).
+ <pre class="screen">ptime p_nadt(not_a_date_time);
+ptime p_posinf(pos_infin);
+ptime p; // p == NADT
+date d; // d == NADT</pre>
+ Thanks to Bart Garst for this change.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Output streaming now supports wide stream output on compiler / standard library combinations that support wide streams. This allows code like:
+ <pre class="screen">std::wstringstream wss;
+date d(2003,Aug,21);
+wss &lt;&lt; d;</pre>
+ Thanks to Bart Garst for this change.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Input streaming for date and time types is now supported on both wide and narrow streams:
+ <pre class="screen">date d(not_a_date_time);
+std::stringstream ss("2000-FEB-29");
+ss &gt;&gt; d; //Feb 29th, 2000
+std::wstringstream ws("2000-FEB-29");
+ws &gt;&gt; d; //Feb 29th, 2000</pre>
+ Thanks to Bart Garst for this change.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td> Fixed bug in duration_from_string() where a string formatted with
+ less than full amount of fractional digits created an incorrect
+ time_duration. With microsecond resolution for time durations
+ the string "1:01:01.010" created a time duration of
+ 01:01:01.000010 instead of 01:01:01.010000
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Fixed the special value constructor for gregorian::date and posix_time::ptime
+ when constructing with min_date_time or max_date_time. The wrong value was
+ constructed for these.
+ </td>
+</tr>
+</tbody>
+</table></div>
+<h4>
+<a name="id1317493"></a>Changes from Boost 1.30 to 1.31 (date_time 1.01 to 1.02)</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Type</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>Bug Fix</td>
+<td>Build configuration updated so dll, statically, and dynamically linkable library files are now produced with MSVC compilers. See <a class="link" href="details.html#date_time.buildinfo" title="Build-Compiler Information">Build/Compiler Information</a> for more details.</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Time_duration from_string is now correctly constructed from a negative value. (ie "-0:39:00.000") Code provided by Bart Garst.</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Fixed many MSVC compiler warnings when compiled with warning level 4.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added prefix decrement operator (--) for date and time iterators. See <a class="link" href="posix_time.html#date_time.posix_time.time_iterators" title="Time Iterators">Time Iterators</a> and <a class="link" href="gregorian.html#date_time.gregorian.date_iterators" title="Date Iterators">Date Iterators</a> for more details. Code provided by Bart Garst.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Special_values functionality added for date_duration, time_duration and time classes. Code provided by Bart Garst.</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Fixed time_duration_traits calculation bug which was causing time duration to be limited to 32bit range even when 64 bits were available. Thanks to Joe de Guzman for tracking this down.</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Provided additional operators for duration types (eg: date_duration, time_duration). This includes dividable by integer and fixes to allow +=, -= operators. Thanks to Bart Garst for writing this code. Also, the documentation of <a class="link" href="details.html#date_time.calculations" title="Calculations">Calculations</a> has been improved.</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Added typedefs to boost::gregorian gregorian_types.hpp various date_generator function classes.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added from_time_t function to convert time_t to a ptime.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added a span function for combining periods. See <a class="link" href="gregorian.html#date_time.gregorian.date_period" title="Date Period">date period</a> and <a class="link" href="posix_time.html#date_time.posix_time.time_period" title="Time Period">time period</a> docs.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added a function to time_duration to get the total number of seconds in a
+ duration truncating any fractional seconds. In addition, other resolutions
+ were added to allow for easy conversions. For example
+ <pre class="screen">seconds(1).total_milliseconds() == 1000
+seconds(1).total_microseconds() == 1000000
+hours(1).total_milliseconds() == 3600*1000 //3600 sec/hour
+seconds(1).total_nanoseconds() == 1000000000</pre>
+
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added output streaming operators for the <a class="link" href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">date generator</a> classes - partial_date, first_kday_after, first_kday_before, etc. Thanks to Bart Garst for this work.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added unary- operators for durations for reversing the sign of a time duration. For example:
+ <pre class="screen">time_duration td(5,0,0); //5 hours
+td = -td; //-5 hours</pre>
+ Thanks to Bart Garst for this work.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added support for parsing strings with 'month names'. Thus creating a date object from string now accepts multiple formats ("2003-10-31","2003-Oct-31", and "2003-October-31"). Thus, date d = from_simple_string("2003-Feb-27") is now allowed. A bad month name string ( from_simple_string("2003-SomeBogusMonthName-27")) will cause a bad_month exception. On most compilers the string compare is case insensitive. Thanks to Bart Garst for this work.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>In addition to support for month names or numbers, functions have been added to create date objects from multi-ordered date strings. Ex: "January-21-2002", "2002-Jan-21", and "21-Jan-2003". See <a class="link" href="gregorian.html#date_time.gregorian.date_class" title="Date">Date Class</a> for more details.</td>
+</tr>
+<tr>
+<td>Bug-Fix</td>
+<td>Various documentation fixes. Thanks to Bart Garst for updates.</td>
+</tr>
+</tbody>
+</table></div>
+<h4>
+<a name="id1317802"></a>Changes from Boost 1.29 to 1.30 (date_time 1.00 to 1.01)</h4>
+<p>
+ Notice: The interface to the partial_date class (see <a class="link" href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">date_algorithms</a>) was changed. The order of construction parameters was changed which will cause some code to fail execution. This change was made to facilitate more generic local time adjustment code. Thus instead of specifying partial_date pd(Dec,25) the code needs to be changed to partial_date pd(25, Dec);
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Type</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>Bug Fix</td>
+<td>Added new experimental feature for Daylight Savings Time calculations. This allows traits based specification of dst rules.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added new interfaces to calculate julian day and modified julian day to the gregorian date class. See <a class="link" href="gregorian.html#date_time.gregorian.date_class" title="Date">boost::gregorian::date</a>.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Add new interface to calculate iso 8601 week number for a date. See <a class="link" href="gregorian.html#date_time.gregorian.date_class" title="Date">boost::gregorian::date</a>.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Add an iso 8601 time date-time format (eg: YYYYMMDDTHHHMMSS) parsing function. See <a class="link" href="posix_time.html#date_time.posix_time.ptime_class" title="Ptime">Class ptime</a> for more information.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td> Added a length function to the period template so that both date_periods and time_periods will now support this function.</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Split Jamfiles so that libs/date_time/build/Jamfile only builds library and /libs/date_time/libs/test/Jamfile which runs tests.</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Fixed many minor documentation issues.</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Removed the DATE_TIME_INLINE macro which was causing link errors. This macro is no longer needed in projects using the library.</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Added missing typedef for year_iterator to gregorian_types.hpp</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Fixed problem with gregorian ostream operators that prevented the use of wide streams.</td>
+</tr>
+<tr>
+<td>Bug-Fix</td>
+<td>Tighten error handling for dates so that date(2002, 2, 29) will throw a bad_day_of_month exception. Previously the date would be incorrectly constructed. Reported by sourceforge bug: 628054 among others.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.acknowledgements"></a>Acknowledgements</h3></div></div></div>
+<p>
+ Many people have contributed to the development of this library. In particular Hugo Duncan and Joel de Guzman for help with porting to various compilers. For initial development of concepts and design Corwin Joy and Michael Kenniston deserve special thanks. Also extra thanks to Michael for writing up the theory and tradeoffs part of the documentation. Dave Zumbro for initial inspiration and sage thoughts. Many thanks to boost reviewers and users including: William Seymour, Kjell Elster, Beman Dawes, Gary Powell, Andrew Maclean, William Kempf, Peter Dimov, Chris Little, David Moore, Darin Adler, Gennadiy Rozental, Joachim Achtzehnter, Paul Bristow, Jan Langer, Mark Rodgers, Glen Knowles, Matthew Denman, and George Heintzelman.
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2005 CrystalClear Software, Inc<p>Subject to the Boost Software License, Version 1.0. (See accompanying file
+ <code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="serialization.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="examples.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_time/doxy.html b/doc/html/date_time/doxy.html
new file mode 100755
index 0000000000..6b96ce7205
--- /dev/null
+++ b/doc/html/date_time/doxy.html
@@ -0,0 +1,1886 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Library Reference</title>
+<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
+<link rel="up" href="../date_time.html" title="Chapter&#160;7.&#160;Boost.Date_Time">
+<link rel="prev" href="examples.html" title="Examples">
+<link rel="next" href="../boost/date_time/day_functor.html" title="Class template day_functor">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.html">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
+<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="examples.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../boost/date_time/day_functor.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="date_time.doxy"></a>Library Reference</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="doxy.html#date_time_reference">Date Time Reference</a></span></dt>
+<dt><span class="section"><a href="doxy.html#gregorian_reference">Gregorian Reference</a></span></dt>
+<dt><span class="section"><a href="doxy.html#posix_time_reference">Posix Time Reference</a></span></dt>
+<dt><span class="section"><a href="doxy.html#local_time_reference">Local Time Reference</a></span></dt>
+</dl></div>
+<p>
+ The following is a detailed reference of the date_time library. A click on any of the reference links will take you to a list of the header files found in that section. Following one of those links will take you to a list of the items declared in that header file. Further sublinks take you to detailed descriptions of each individual item.
+ </p>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time_reference"></a>Date Time Reference</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.adjust_functors_hpp">Header &lt;boost/date_time/adjust_functors.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.c_local_time_adjustor_hpp">Header &lt;boost/date_time/c_local_time_adjustor.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.c_time_hpp">Header &lt;boost/date_time/c_time.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.compiler_config_hpp">Header &lt;boost/date_time/compiler_config.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.constrained_value_hpp">Header &lt;boost/date_time/constrained_value.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.date_hpp">Header &lt;boost/date_time/date.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.date_clock_device_hpp">Header &lt;boost/date_time/date_clock_device.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.date_defs_hpp">Header &lt;boost/date_time/date_defs.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.date_duration_hpp">Header &lt;boost/date_time/date_duration.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.date_duration_types_hpp">Header &lt;boost/date_time/date_duration_types.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.date_facet_hpp">Header &lt;boost/date_time/date_facet.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.date_format_simple_hpp">Header &lt;boost/date_time/date_format_simple.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.date_formatting_hpp">Header &lt;boost/date_time/date_formatting.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.date_formatting_limited_hpp">Header &lt;boost/date_time/date_formatting_limited.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.date_formatting_locales_hpp">Header &lt;boost/date_time/date_formatting_locales.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.date_generator_formatter_hpp">Header &lt;boost/date_time/date_generator_formatter.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.date_generator_parser_hpp">Header &lt;boost/date_time/date_generator_parser.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.date_generators_hpp">Header &lt;boost/date_time/date_generators.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.date_iterator_hpp">Header &lt;boost/date_time/date_iterator.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.date_names_put_hpp">Header &lt;boost/date_time/date_names_put.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.date_parsing_hpp">Header &lt;boost/date_time/date_parsing.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.dst_rules_hpp">Header &lt;boost/date_time/dst_rules.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.dst_transition_generators_hpp">Header &lt;boost/date_time/dst_transition_generators.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.filetime_functions_hpp">Header &lt;boost/date_time/filetime_functions.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.format_date_parser_hpp">Header &lt;boost/date_time/format_date_parser.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian_calendar_hpp">Header &lt;boost/date_time/gregorian_calendar.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.int_adapter_hpp">Header &lt;boost/date_time/int_adapter.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.iso_format_hpp">Header &lt;boost/date_time/iso_format.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.local_time_adjustor_hpp">Header &lt;boost/date_time/local_time_adjustor.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.local_timezone_defs_hpp">Header &lt;boost/date_time/local_timezone_defs.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.microsec_time_clock_hpp">Header &lt;boost/date_time/microsec_time_clock.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.parse_format_base_hpp">Header &lt;boost/date_time/parse_format_base.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.period_hpp">Header &lt;boost/date_time/period.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.period_formatter_hpp">Header &lt;boost/date_time/period_formatter.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.period_parser_hpp">Header &lt;boost/date_time/period_parser.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.special_defs_hpp">Header &lt;boost/date_time/special_defs.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.special_values_formatter_hpp">Header &lt;boost/date_time/special_values_formatter.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.special_values_parser_hpp">Header &lt;boost/date_time/special_values_parser.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.string_convert_hpp">Header &lt;boost/date_time/string_convert.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.string_parse_tree_hpp">Header &lt;boost/date_time/string_parse_tree.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.strings_from_facet_hpp">Header &lt;boost/date_time/strings_from_facet.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.time_hpp">Header &lt;boost/date_time/time.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.time_clock_hpp">Header &lt;boost/date_time/time_clock.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.time_defs_hpp">Header &lt;boost/date_time/time_defs.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.time_duration_hpp">Header &lt;boost/date_time/time_duration.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.time_facet_hpp">Header &lt;boost/date_time/time_facet.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.time_formatting_streams_hpp">Header &lt;boost/date_time/time_formatting_streams.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.time_iterator_hpp">Header &lt;boost/date_time/time_iterator.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.time_parsing_hpp">Header &lt;boost/date_time/time_parsing.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.time_resolution_traits_hpp">Header &lt;boost/date_time/time_resolution_traits.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.time_system_counted_hpp">Header &lt;boost/date_time/time_system_counted.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.time_system_split_hpp">Header &lt;boost/date_time/time_system_split.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.time_zone_base_hpp">Header &lt;boost/date_time/time_zone_base.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.time_zone_names_hpp">Header &lt;boost/date_time/time_zone_names.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.tz_db_base_hpp">Header &lt;boost/date_time/tz_db_base.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.wrapping_int_hpp">Header &lt;boost/date_time/wrapping_int.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.year_month_day_hpp">Header &lt;boost/date_time/year_month_day.hpp&gt;</a></span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.adjust_functors_hpp"></a>Header &lt;<a href="../../../boost/date_time/adjust_functors.hpp" target="_top">boost/date_time/adjust_functors.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/day_functor.html" title="Class template day_functor">day_functor</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/month_functor.html" title="Class template month_functor">month_functor</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/week_functor.html" title="Class template week_functor">week_functor</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/year_functor.html" title="Class template year_functor">year_functor</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.c_local_time_adjustor_hpp"></a>Header &lt;<a href="../../../boost/date_time/c_local_time_adjustor.hpp" target="_top">boost/date_time/c_local_time_adjustor.hpp</a>&gt;</h4></div></div></div>
+<p>Time adjustment calculations based on machine </p>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/c_local_adjustor.html" title="Class template c_local_adjustor">c_local_adjustor</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.c_time_hpp"></a>Header &lt;<a href="../../../boost/date_time/c_time.hpp" target="_top">boost/date_time/c_time.hpp</a>&gt;</h4></div></div></div>
+<p>Provide workarounds related to the ctime header </p>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">std</span> <span class="special">{</span>
+<span class="special">}</span><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/date_time/c_time.html" title="Struct c_time">c_time</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.compiler_config_hpp"></a>Header &lt;<a href="../../../boost/date_time/compiler_config.hpp" target="_top">boost/date_time/compiler_config.hpp</a>&gt;</h4></div></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.constrained_value_hpp"></a>Header &lt;<a href="../../../boost/date_time/constrained_value.hpp" target="_top">boost/date_time/constrained_value.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">CV</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> value_policies<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/CV/constrained_value.html" title="Class template constrained_value">constrained_value</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> rep_type<span class="special">,</span> <span class="identifier">rep_type</span> min_value<span class="special">,</span> <span class="identifier">rep_type</span> max_value<span class="special">,</span>
+ <span class="keyword">typename</span> exception_type<span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/CV/simple_exception_policy.html" title="Class template simple_exception_policy">simple_exception_policy</a><span class="special">;</span>
+
+ <span class="comment">// Represent a min or max violation type. </span>
+ <span class="keyword">enum</span> <a name="boost.CV.violation_enum"></a>violation_enum <span class="special">{</span> min_violation, max_violation <span class="special">}</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.date_hpp"></a>Header &lt;<a href="../../../boost/date_time/date.hpp" target="_top">boost/date_time/date.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> calendar<span class="special">,</span> <span class="keyword">typename</span> duration_type_<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/date.html" title="Class template date">date</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.date_clock_device_hpp"></a>Header &lt;<a href="../../../boost/date_time/date_clock_device.hpp" target="_top">boost/date_time/date_clock_device.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/day_clock.html" title="Class template day_clock">day_clock</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.date_defs_hpp"></a>Header &lt;<a href="../../../boost/date_time/date_defs.hpp" target="_top">boost/date_time/date_defs.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+
+ <span class="comment">// An enumeration of weekday names. </span>
+ <span class="keyword">enum</span> <a name="boost.date_time.weekdays"></a>weekdays <span class="special">{</span> Sunday, Monday, Tuesday, Wednesday, Thursday, Friday,
+ Saturday <span class="special">}</span><span class="special">;</span>
+
+ <span class="comment">// Simple enum to allow for nice programming with Jan, Feb, etc. </span>
+ <span class="keyword">enum</span> <a name="boost.date_time.months_of_year"></a>months_of_year <span class="special">{</span> Jan = 1, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep,
+ Oct, Nov, Dec, NotAMonth, NumMonths <span class="special">}</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.date_duration_hpp"></a>Header &lt;<a href="../../../boost/date_time/date_duration.hpp" target="_top">boost/date_time/date_duration.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> duration_rep_traits<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/date_duration.html" title="Class template date_duration">date_duration</a><span class="special">;</span>
+
+ <span class="keyword">struct</span> <a class="link" href="../boost/date_time/duration_traits_long.html" title="Struct duration_traits_long">duration_traits_long</a><span class="special">;</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/date_time/duration_traits_adapted.html" title="Struct duration_traits_adapted">duration_traits_adapted</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.date_duration_types_hpp"></a>Header &lt;<a href="../../../boost/date_time/date_duration_types.hpp" target="_top">boost/date_time/date_duration_types.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> duration_config<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/weeks_duration.html" title="Class template weeks_duration">weeks_duration</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> base_config<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/months_duration.html" title="Class template months_duration">months_duration</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> base_config<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/years_duration.html" title="Class template years_duration">years_duration</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.date_facet_hpp"></a>Header &lt;<a href="../../../boost/date_time/date_facet.hpp" target="_top">boost/date_time/date_facet.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span>
+ <span class="keyword">typename</span> OutItrT <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/date_facet.html" title="Class template date_facet">date_facet</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span>
+ <span class="keyword">typename</span> InItrT <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/date_input_facet.html" title="Class template date_input_facet">date_input_facet</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.date_format_simple_hpp"></a>Header &lt;<a href="../../../boost/date_time/date_format_simple.hpp" target="_top">boost/date_time/date_format_simple.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/simple_format.html" title="Class template simple_format">simple_format</a><span class="special">;</span>
+
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/simple_format_wchar_t_id737944.html" title="Class simple_format&lt;wchar_t&gt;">simple_format</a><span class="special">&lt;</span><span class="keyword">wchar_t</span><span class="special">&gt;</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.date_formatting_hpp"></a>Header &lt;<a href="../../../boost/date_time/date_formatting.hpp" target="_top">boost/date_time/date_formatting.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> month_type<span class="special">,</span> <span class="keyword">typename</span> format_type<span class="special">,</span> <span class="keyword">typename</span> charT <span class="special">=</span> <span class="keyword">char</span><span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/month_formatter.html" title="Class template month_formatter">month_formatter</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ymd_type<span class="special">,</span> <span class="keyword">typename</span> format_type<span class="special">,</span> <span class="keyword">typename</span> charT <span class="special">=</span> <span class="keyword">char</span><span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/ymd_formatter.html" title="Class template ymd_formatter">ymd_formatter</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> format_type<span class="special">,</span> <span class="keyword">typename</span> charT <span class="special">=</span> <span class="keyword">char</span><span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/date_formatter.html" title="Class template date_formatter">date_formatter</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.date_formatting_limited_hpp"></a>Header &lt;<a href="../../../boost/date_time/date_formatting_limited.hpp" target="_top">boost/date_time/date_formatting_limited.hpp</a>&gt;</h4></div></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.date_formatting_locales_hpp"></a>Header &lt;<a href="../../../boost/date_time/date_formatting_locales.hpp" target="_top">boost/date_time/date_formatting_locales.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> facet_type<span class="special">,</span> <span class="keyword">typename</span> charT <span class="special">=</span> <span class="keyword">char</span><span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/ostream_month_formatter.html" title="Class template ostream_month_formatter">ostream_month_formatter</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> weekday_type<span class="special">,</span> <span class="keyword">typename</span> facet_type<span class="special">,</span>
+ <span class="keyword">typename</span> charT <span class="special">=</span> <span class="keyword">char</span><span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/ostream_weekday_formatter.html" title="Class template ostream_weekday_formatter">ostream_weekday_formatter</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ymd_type<span class="special">,</span> <span class="keyword">typename</span> facet_type<span class="special">,</span> <span class="keyword">typename</span> charT <span class="special">=</span> <span class="keyword">char</span><span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/ostream_ymd_formatter.html" title="Class template ostream_ymd_formatter">ostream_ymd_formatter</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> facet_type<span class="special">,</span> <span class="keyword">typename</span> charT <span class="special">=</span> <span class="keyword">char</span><span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/ostream_date_formatter.html" title="Class template ostream_date_formatter">ostream_date_formatter</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.date_generator_formatter_hpp"></a>Header &lt;<a href="../../../boost/date_time/date_generator_formatter.hpp" target="_top">boost/date_time/date_generator_formatter.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span>
+ <span class="keyword">typename</span> OutItrT <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/date_generator_formatter.html" title="Class template date_generator_formatter">date_generator_formatter</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.date_generator_parser_hpp"></a>Header &lt;<a href="../../../boost/date_time/date_generator_parser.hpp" target="_top">boost/date_time/date_generator_parser.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> charT<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/date_generator_parser.html" title="Class template date_generator_parser">date_generator_parser</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.date_generators_hpp"></a>Header &lt;<a href="../../../boost/date_time/date_generators.hpp" target="_top">boost/date_time/date_generators.hpp</a>&gt;</h4></div></div></div>
+<p>Definition and implementation of date algorithm templates </p>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/year_based_generator.html" title="Class template year_based_generator">year_based_generator</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/partial_date.html" title="Class template partial_date">partial_date</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/nth_kday_of_month.html" title="Class template nth_kday_of_month">nth_kday_of_month</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/first_kday_of_month.html" title="Class template first_kday_of_month">first_kday_of_month</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/last_kday_of_month.html" title="Class template last_kday_of_month">last_kday_of_month</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/first_kday_after.html" title="Class template first_kday_after">first_kday_after</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/first_kday_before.html" title="Class template first_kday_before">first_kday_before</a><span class="special">;</span>
+
+ <span class="comment">// Returns nth arg as string. 1 -&gt; "first", 2 -&gt; "second", max is 5. </span>
+ <span class="identifier">BOOST_DATE_TIME_DECL</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <a name="boost.date_time.nth_as_str"></a><span class="identifier">nth_as_str</span><span class="special">(</span><span class="keyword">int</span> n<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> weekday_type<span class="special">&gt;</span>
+ <span class="identifier">date_type</span><span class="special">::</span><span class="identifier">duration_type</span>
+ <a class="link" href="../boost/date_time/days_until_weekday.html" title="Function template days_until_weekday"><span class="identifier">days_until_weekday</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">date_type</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">weekday_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> weekday_type<span class="special">&gt;</span>
+ <span class="identifier">date_type</span><span class="special">::</span><span class="identifier">duration_type</span>
+ <a class="link" href="../boost/date_time/days_before_weekday.html" title="Function template days_before_weekday"><span class="identifier">days_before_weekday</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">date_type</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">weekday_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> weekday_type<span class="special">&gt;</span>
+ <span class="identifier">date_type</span> <a class="link" href="../boost/date_time/next_weekday.html" title="Function template next_weekday"><span class="identifier">next_weekday</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">date_type</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">weekday_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> weekday_type<span class="special">&gt;</span>
+ <span class="identifier">date_type</span> <a class="link" href="../boost/date_time/previous_weekday.html" title="Function template previous_weekday"><span class="identifier">previous_weekday</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">date_type</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">weekday_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.date_iterator_hpp"></a>Header &lt;<a href="../../../boost/date_time/date_iterator.hpp" target="_top">boost/date_time/date_iterator.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/date_itr_base.html" title="Class template date_itr_base">date_itr_base</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> offset_functor<span class="special">,</span> <span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/date_itr.html" title="Class template date_itr">date_itr</a><span class="special">;</span>
+
+ <span class="comment">// An iterator over dates with varying resolution (day, week, month, year, etc) </span>
+ <span class="keyword">enum</span> <a name="boost.date_time.date_resolutions"></a>date_resolutions <span class="special">{</span> day, week, months, year, decade, century,
+ NumDateResolutions <span class="special">}</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.date_names_put_hpp"></a>Header &lt;<a href="../../../boost/date_time/date_names_put.hpp" target="_top">boost/date_time/date_names_put.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Config<span class="special">,</span> <span class="keyword">typename</span> charT <span class="special">=</span> <span class="keyword">char</span><span class="special">,</span>
+ <span class="keyword">typename</span> <a class="link" href="../OutputIterator.html" title="Concept OutputIterator">OutputIterator</a> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/date_names_put.html" title="Class template date_names_put">date_names_put</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Config<span class="special">,</span> <span class="keyword">typename</span> charT <span class="special">=</span> <span class="keyword">char</span><span class="special">,</span>
+ <span class="keyword">typename</span> <a class="link" href="../OutputIterator.html" title="Concept OutputIterator">OutputIterator</a> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/all_date_names_put.html" title="Class template all_date_names_put">all_date_names_put</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.date_parsing_hpp"></a>Header &lt;<a href="../../../boost/date_time/date_parsing.hpp" target="_top">boost/date_time/date_parsing.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <a class="link" href="../boost/date_time/convert_to_lower.html" title="Function convert_to_lower"><span class="identifier">convert_to_lower</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Helper function for parse_date. </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> month_type<span class="special">&gt;</span>
+ <span class="keyword">unsigned</span> <span class="keyword">short</span> <a name="boost.date_time.month_str_to_ushort"></a><span class="identifier">month_str_to_ushort</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span> <span class="special">&amp;</span> s<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="keyword">short</span> <a class="link" href="../boost/date_time/find_match.html" title="Function template find_match"><span class="identifier">find_match</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">charT</span> <span class="special">*</span><span class="keyword">const</span> <span class="special">*</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">charT</span> <span class="special">*</span><span class="keyword">const</span> <span class="special">*</span><span class="special">,</span> <span class="keyword">short</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span>
+ <span class="identifier">date_type</span> <a class="link" href="../boost/date_time/parse_date.html" title="Function template parse_date"><span class="identifier">parse_date</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span> <span class="special">=</span> <span class="identifier">ymd_order_iso</span><span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Generic function to parse undelimited date (eg: 20020201) </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span>
+ <span class="identifier">date_type</span> <a name="boost.date_time.parse_undelimited_date"></a><span class="identifier">parse_undelimited_date</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span> s<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> iterator_type<span class="special">&gt;</span>
+ <span class="identifier">date_type</span> <a class="link" href="../boost/date_time/from_stream_type_id722533.html" title="Function template from_stream_type"><span class="identifier">from_stream_type</span></a><span class="special">(</span><span class="identifier">iterator_type</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">iterator_type</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">char</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> iterator_type<span class="special">&gt;</span>
+ <span class="identifier">date_type</span> <a class="link" href="../boost/date_time/from_stream_type_id676852.html" title="Function template from_stream_type"><span class="identifier">from_stream_type</span></a><span class="special">(</span><span class="identifier">iterator_type</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">iterator_type</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> iterator_type<span class="special">&gt;</span>
+ <span class="identifier">date_type</span> <a class="link" href="../boost/date_time/from_stream_type_id373693.html" title="Function template from_stream_type"><span class="identifier">from_stream_type</span></a><span class="special">(</span><span class="identifier">iterator_type</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">iterator_type</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span>
+ <span class="keyword">wchar_t</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> iterator_type<span class="special">&gt;</span>
+ <span class="identifier">date_type</span> <a class="link" href="../boost/date_time/from_stream_type_id721908.html" title="Function template from_stream_type"><span class="identifier">from_stream_type</span></a><span class="special">(</span><span class="identifier">iterator_type</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">iterator_type</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// function called by wrapper functions: date_period_from_(w)string() </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <a class="link" href="../boost/date_time/period.html" title="Class template period">period</a><span class="special">&lt;</span> <span class="identifier">date_type</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">date_type</span><span class="special">::</span><span class="identifier">duration_type</span> <span class="special">&gt;</span>
+ <a name="boost.date_time.from_simple_string_type"></a><span class="identifier">from_simple_string_type</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> s<span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.dst_rules_hpp"></a>Header &lt;<a href="../../../boost/date_time/dst_rules.hpp" target="_top">boost/date_time/dst_rules.hpp</a>&gt;</h4></div></div></div>
+<p>Contains template class to provide static dst rule calculations </p>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type_<span class="special">,</span> <span class="keyword">typename</span> time_duration_type_<span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/dst_calculator.html" title="Class template dst_calculator">dst_calculator</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> time_duration_type<span class="special">,</span>
+ <span class="keyword">typename</span> dst_traits<span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/dst_calc_engine.html" title="Class template dst_calc_engine">dst_calc_engine</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type_<span class="special">,</span> <span class="keyword">typename</span> time_duration_type_<span class="special">,</span>
+ <span class="keyword">unsigned</span> <span class="keyword">int</span> dst_start_offset_minutes <span class="special">=</span> <span class="number">120</span><span class="special">,</span>
+ <span class="keyword">short</span> dst_length_minutes <span class="special">=</span> <span class="number">60</span><span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/us_dst_rules.html" title="Class template us_dst_rules">us_dst_rules</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type_<span class="special">,</span> <span class="keyword">typename</span> time_duration_type_<span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/null_dst_rules.html" title="Class template null_dst_rules">null_dst_rules</a><span class="special">;</span>
+
+ <span class="keyword">enum</span> <a name="boost.date_time.time_is_dst_result"></a>time_is_dst_result <span class="special">{</span> is_not_in_dst, is_in_dst, ambiguous,
+ invalid_time_label <span class="special">}</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.dst_transition_generators_hpp"></a>Header &lt;<a href="../../../boost/date_time/dst_transition_generators.hpp" target="_top">boost/date_time/dst_transition_generators.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/dst_day_calc_rule.html" title="Class template dst_day_calc_rule">dst_day_calc_rule</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> spec<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/day_calc_dst_rule.html" title="Class template day_calc_dst_rule">day_calc_dst_rule</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.filetime_functions_hpp"></a>Header &lt;<a href="../../../boost/date_time/filetime_functions.hpp" target="_top">boost/date_time/filetime_functions.hpp</a>&gt;</h4></div></div></div>
+<p>Function(s) for converting between a FILETIME structure and a time object. This file is only available on systems that have BOOST_HAS_FTIME defined. </p>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> TimeT<span class="special">,</span> <span class="keyword">typename</span> FileTimeT<span class="special">&gt;</span>
+ <span class="identifier">TimeT</span> <a class="link" href="../boost/date_time/time_from_ftime.html" title="Function template time_from_ftime"><span class="identifier">time_from_ftime</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">FileTimeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">namespace</span> <span class="identifier">winapi</span> <span class="special">{</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/date_time/winapi/FILETIME.html" title="Struct FILETIME">FILETIME</a><span class="special">;</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/date_time/winapi/SYSTEMTIME.html" title="Struct SYSTEMTIME">SYSTEMTIME</a><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <a class="link" href="../boost/date_time/winapi/FILETIME.html" title="Struct FILETIME">FILETIME</a> <a name="boost.date_time.winapi.file_time"></a><span class="identifier">file_time</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <a class="link" href="../boost/date_time/winapi/SYSTEMTIME.html" title="Struct SYSTEMTIME">SYSTEMTIME</a> <a name="boost.date_time.winapi.system_time"></a><span class="identifier">system_time</span><span class="special">;</span>
+
+ <a class="link" href="../boost/date_time/winapi/FILETIME.html" title="Struct FILETIME">FILETIME</a> <span class="special">*</span> <a class="link" href="../boost/date_time/winapi/lpLocalFileTime.html" title="Global lpLocalFileTime">lpLocalFileTime</a><span class="special">;</span>
+ <a class="link" href="../boost/date_time/winapi/FILETIME.html" title="Struct FILETIME">FILETIME</a> <span class="special">*</span> <a class="link" href="../boost/date_time/winapi/lpFileTime.html" title="Global lpFileTime">lpFileTime</a><span class="special">;</span>
+ <a name="boost.date_time.winapi.__declspec"></a><span class="identifier">__declspec</span><span class="special">(</span><span class="identifier">dllimport</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">void</span> <a name="boost.date_time.winapi.get_system_time_as_file_id675110"></a><span class="identifier">get_system_time_as_file_time</span><span class="special">(</span><a class="link" href="doxy.html#boost.date_time.winapi.file_time">file_time</a> <span class="special">&amp;</span> ft<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> FileTimeT<span class="special">&gt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint64_t</span> <a class="link" href="../boost/date_time/winapi/file_time_to_microseconds.html" title="Function template file_time_to_microseconds"><span class="identifier">file_time_to_microseconds</span></a><span class="special">(</span><span class="identifier">FileTimeT</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.format_date_parser_hpp"></a>Header &lt;<a href="../../../boost/date_time/format_date_parser.hpp" target="_top">boost/date_time/format_date_parser.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">std</span> <span class="special">{</span>
+<span class="special">}</span><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> charT<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/format_date_parser.html" title="Class template format_date_parser">format_date_parser</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> int_type<span class="special">,</span> <span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">int_type</span> <a class="link" href="../boost/date_time/fixed_string_to_int_id699456.html" title="Function template fixed_string_to_int"><span class="identifier">fixed_string_to_int</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
+ <a class="link" href="../boost/date_time/parse_match_result.html" title="Struct template parse_match_result">parse_match_result</a><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
+ <span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">charT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> int_type<span class="special">,</span> <span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">int_type</span> <a class="link" href="../boost/date_time/fixed_string_to_int_id359936.html" title="Function template fixed_string_to_int"><span class="identifier">fixed_string_to_int</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
+ <a class="link" href="../boost/date_time/parse_match_result.html" title="Struct template parse_match_result">parse_match_result</a><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
+ <span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> int_type<span class="special">,</span> <span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">int_type</span> <a class="link" href="../boost/date_time/var_string_to_int.html" title="Function template var_string_to_int"><span class="identifier">var_string_to_int</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
+ <span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian_calendar_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian_calendar.hpp" target="_top">boost/date_time/gregorian_calendar.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ymd_type_<span class="special">,</span> <span class="keyword">typename</span> date_int_type_<span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/gregorian_calendar_base.html" title="Class template gregorian_calendar_base">gregorian_calendar_base</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.int_adapter_hpp"></a>Header &lt;<a href="../../../boost/date_time/int_adapter.hpp" target="_top">boost/date_time/int_adapter.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> int_type_<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/int_adapter.html" title="Class template int_adapter">int_adapter</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">,</span> <span class="keyword">typename</span> traits<span class="special">,</span> <span class="keyword">typename</span> int_type<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a class="link" href="../boost/date_time/operator_id386869.html" title="Function template operator&lt;&lt;"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
+ <span class="keyword">const</span> <a class="link" href="../boost/date_time/int_adapter.html" title="Class template int_adapter">int_adapter</a><span class="special">&lt;</span> <span class="identifier">int_type</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.iso_format_hpp"></a>Header &lt;<a href="../../../boost/date_time/iso_format.hpp" target="_top">boost/date_time/iso_format.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/iso_format_base.html" title="Class template iso_format_base">iso_format_base</a><span class="special">;</span>
+
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/iso_format_base_wchar_t_id703444.html" title="Class iso_format_base&lt;wchar_t&gt;">iso_format_base</a><span class="special">&lt;</span><span class="keyword">wchar_t</span><span class="special">&gt;</span><span class="special">;</span>
+
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/iso_format.html" title="Class template iso_format">iso_format</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/iso_extended_format.html" title="Class template iso_extended_format">iso_extended_format</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.local_time_adjustor_hpp"></a>Header &lt;<a href="../../../boost/date_time/local_time_adjustor.hpp" target="_top">boost/date_time/local_time_adjustor.hpp</a>&gt;</h4></div></div></div>
+<p>Time adjustment calculations for local times </p>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_duration_type<span class="special">,</span> <span class="keyword">short</span> hours<span class="special">,</span>
+ <span class="keyword">unsigned</span> <span class="keyword">short</span> minutes <span class="special">=</span> <span class="number">0</span><span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/utc_adjustment.html" title="Class template utc_adjustment">utc_adjustment</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_type<span class="special">,</span> <span class="keyword">typename</span> dst_rules<span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/dynamic_local_time_adju_id739243.html" title="Class template dynamic_local_time_adjustor">dynamic_local_time_adjustor</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_type<span class="special">,</span> <span class="keyword">typename</span> dst_rules<span class="special">,</span>
+ <span class="keyword">typename</span> utc_offset_rules<span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/static_local_time_adjustor.html" title="Class template static_local_time_adjustor">static_local_time_adjustor</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_type<span class="special">,</span> <span class="keyword">short</span> utc_offset<span class="special">,</span> <span class="keyword">typename</span> dst_rule<span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/local_adjustor.html" title="Class template local_adjustor">local_adjustor</a><span class="special">;</span>
+ <span class="keyword">void</span> <a name="boost.date_time.dummy_to_prevent_msvc6_ice"></a><span class="identifier">dummy_to_prevent_msvc6_ice</span><span class="special">(</span><span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.local_timezone_defs_hpp"></a>Header &lt;<a href="../../../boost/date_time/local_timezone_defs.hpp" target="_top">boost/date_time/local_timezone_defs.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/date_time/us_dst_trait.html" title="Struct template us_dst_trait">us_dst_trait</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/date_time/eu_dst_trait.html" title="Struct template eu_dst_trait">eu_dst_trait</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/date_time/uk_dst_trait.html" title="Struct template uk_dst_trait">uk_dst_trait</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/date_time/acst_dst_trait.html" title="Struct template acst_dst_trait">acst_dst_trait</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.microsec_time_clock_hpp"></a>Header &lt;<a href="../../../boost/date_time/microsec_time_clock.hpp" target="_top">boost/date_time/microsec_time_clock.hpp</a>&gt;</h4></div></div></div>
+<p>This file contains a high resolution time clock implementation. </p>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/microsec_clock.html" title="Class template microsec_clock">microsec_clock</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.parse_format_base_hpp"></a>Header &lt;<a href="../../../boost/date_time/parse_format_base.hpp" target="_top">boost/date_time/parse_format_base.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+
+ <span class="comment">// Enum for distinguishing parsing and formatting options. </span>
+ <span class="keyword">enum</span> <a name="boost.date_time.month_format_spec"></a>month_format_spec <span class="special">{</span> month_as_integer, month_as_short_string,
+ month_as_long_string <span class="special">}</span><span class="special">;</span>
+ <span class="keyword">enum</span> <a class="link" href="../boost/date_time/ymd_order_spec.html" title="Type ymd_order_spec">ymd_order_spec</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.period_hpp"></a>Header &lt;<a href="../../../boost/date_time/period.hpp" target="_top">boost/date_time/period.hpp</a>&gt;</h4></div></div></div>
+<p>This file contain the implementation of the period abstraction. This is basically the same idea as a range. Although this class is intended for use in the time library, it is pretty close to general enough for other numeric uses. </p>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> point_rep<span class="special">,</span> <span class="keyword">typename</span> duration_rep<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/period.html" title="Class template period">period</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.period_formatter_hpp"></a>Header &lt;<a href="../../../boost/date_time/period_formatter.hpp" target="_top">boost/date_time/period_formatter.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span>
+ <span class="keyword">typename</span> OutItrT <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/period_formatter.html" title="Class template period_formatter">period_formatter</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.period_parser_hpp"></a>Header &lt;<a href="../../../boost/date_time/period_parser.hpp" target="_top">boost/date_time/period_parser.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/period_parser.html" title="Class template period_parser">period_parser</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.special_defs_hpp"></a>Header &lt;<a href="../../../boost/date_time/special_defs.hpp" target="_top">boost/date_time/special_defs.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+
+ <span class="keyword">enum</span> <a name="boost.date_time.special_values"></a>special_values <span class="special">{</span> not_a_date_time, neg_infin, pos_infin,
+ min_date_time, max_date_time, not_special,
+ NumSpecialValues <span class="special">}</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.special_values_formatter_hpp"></a>Header &lt;<a href="../../../boost/date_time/special_values_formatter.hpp" target="_top">boost/date_time/special_values_formatter.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span>
+ <span class="keyword">typename</span> OutItrT <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/special_values_formatter.html" title="Class template special_values_formatter">special_values_formatter</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.special_values_parser_hpp"></a>Header &lt;<a href="../../../boost/date_time/special_values_parser.hpp" target="_top">boost/date_time/special_values_parser.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> date_type<span class="special">,</span> <span class="keyword">typename</span> charT<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/special_values_parser.html" title="Class template special_values_parser">special_values_parser</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.string_convert_hpp"></a>Header &lt;<a href="../../../boost/date_time/string_convert.hpp" target="_top">boost/date_time/string_convert.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> InputT<span class="special">,</span> <span class="keyword">typename</span> OutputT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">OutputT</span> <span class="special">&gt;</span>
+ <a class="link" href="../boost/date_time/convert_string_type.html" title="Function template convert_string_type"><span class="identifier">convert_string_type</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">InputT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.string_parse_tree_hpp"></a>Header &lt;<a href="../../../boost/date_time/string_parse_tree.hpp" target="_top">boost/date_time/string_parse_tree.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/date_time/parse_match_result.html" title="Struct template parse_match_result">parse_match_result</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/date_time/string_parse_tree.html" title="Struct template string_parse_tree">string_parse_tree</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.date_time.operator_id381671"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <a class="link" href="../boost/date_time/parse_match_result.html" title="Struct template parse_match_result">parse_match_result</a><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> mr<span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.strings_from_facet_hpp"></a>Header &lt;<a href="../../../boost/date_time/strings_from_facet.hpp" target="_top">boost/date_time/strings_from_facet.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&gt;</span>
+ <a class="link" href="../boost/date_time/gather_month_strings.html" title="Function template gather_month_strings"><span class="identifier">gather_month_strings</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&gt;</span>
+ <a class="link" href="../boost/date_time/gather_weekday_strings.html" title="Function template gather_weekday_strings"><span class="identifier">gather_weekday_strings</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.time_hpp"></a>Header &lt;<a href="../../../boost/date_time/time.hpp" target="_top">boost/date_time/time.hpp</a>&gt;</h4></div></div></div>
+<p>This file contains the interface for the time associated classes. </p>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> time_system<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/base_time.html" title="Class template base_time">base_time</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.time_clock_hpp"></a>Header &lt;<a href="../../../boost/date_time/time_clock.hpp" target="_top">boost/date_time/time_clock.hpp</a>&gt;</h4></div></div></div>
+<p>This file contains the interface for clock devices. </p>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/second_clock.html" title="Class template second_clock">second_clock</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.time_defs_hpp"></a>Header &lt;<a href="../../../boost/date_time/time_defs.hpp" target="_top">boost/date_time/time_defs.hpp</a>&gt;</h4></div></div></div>
+<p>This file contains nice definitions for handling the resoluion of various time reprsentations. </p>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+
+ <span class="comment">// Defines some nice types for handling time level resolutions. </span>
+ <span class="keyword">enum</span> <a name="boost.date_time.time_resolutions"></a>time_resolutions <span class="special">{</span> sec, tenth, hundreth, hundredth = hundreth,
+ milli, ten_thousandth, micro, nano,
+ NumResolutions <span class="special">}</span><span class="special">;</span>
+
+ <span class="comment">// Flags for daylight savings or summer time. </span>
+ <span class="keyword">enum</span> <a name="boost.date_time.dst_flags"></a>dst_flags <span class="special">{</span> not_dst, is_dst, calculate <span class="special">}</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.time_duration_hpp"></a>Header &lt;<a href="../../../boost/date_time/time_duration.hpp" target="_top">boost/date_time/time_duration.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> rep_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/time_duration.html" title="Class template time_duration">time_duration</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> base_duration<span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">int64_t</span> frac_of_second<span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/subsecond_duration.html" title="Class template subsecond_duration">subsecond_duration</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.time_facet_hpp"></a>Header &lt;<a href="../../../boost/date_time/time_facet.hpp" target="_top">boost/date_time/time_facet.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/date_time/time_formats.html" title="Struct template time_formats">time_formats</a><span class="special">;</span>
+
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_type<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span>
+ <span class="keyword">typename</span> OutItrT <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/time_facet.html" title="Class template time_facet">time_facet</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_type<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span>
+ <span class="keyword">typename</span> InItrT <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/time_input_facet.html" title="Class template time_input_facet">time_input_facet</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.time_formatting_streams_hpp"></a>Header &lt;<a href="../../../boost/date_time/time_formatting_streams.hpp" target="_top">boost/date_time/time_formatting_streams.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_duration_type<span class="special">,</span> <span class="keyword">typename</span> charT <span class="special">=</span> <span class="keyword">char</span><span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/ostream_time_duration_f_id698617.html" title="Class template ostream_time_duration_formatter">ostream_time_duration_formatter</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_type<span class="special">,</span> <span class="keyword">typename</span> charT <span class="special">=</span> <span class="keyword">char</span><span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/ostream_time_formatter.html" title="Class template ostream_time_formatter">ostream_time_formatter</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_period_type<span class="special">,</span> <span class="keyword">typename</span> charT <span class="special">=</span> <span class="keyword">char</span><span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/ostream_time_period_for_id734868.html" title="Class template ostream_time_period_formatter">ostream_time_period_formatter</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.time_iterator_hpp"></a>Header &lt;<a href="../../../boost/date_time/time_iterator.hpp" target="_top">boost/date_time/time_iterator.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/time_itr.html" title="Class template time_itr">time_itr</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.time_parsing_hpp"></a>Header &lt;<a href="../../../boost/date_time/time_parsing.hpp" target="_top">boost/date_time/time_parsing.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+
+ <span class="comment">// computes exponential math like 2^8 =&gt; 256, only works with positive integers </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> int_type<span class="special">&gt;</span>
+ <span class="identifier">int_type</span> <a name="boost.date_time.power"></a><span class="identifier">power</span><span class="special">(</span><span class="identifier">int_type</span> base<span class="special">,</span> <span class="identifier">int_type</span> exponent<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_duration<span class="special">,</span> <span class="keyword">typename</span> char_type<span class="special">&gt;</span>
+ <a class="link" href="../boost/date_time/time_duration.html" title="Class template time_duration">time_duration</a>
+ <a class="link" href="../boost/date_time/str_from_delimited_time_id689002.html" title="Function template str_from_delimited_time_duration"><span class="identifier">str_from_delimited_time_duration</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">char_type</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_duration<span class="special">&gt;</span>
+ <a class="link" href="../boost/date_time/time_duration.html" title="Class template time_duration">time_duration</a> <a class="link" href="../boost/date_time/parse_delimited_time_du_id683474.html" title="Function template parse_delimited_time_duration"><span class="identifier">parse_delimited_time_duration</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Utility function to split appart string. </span>
+ <span class="keyword">bool</span> <a name="boost.date_time.split_id422413"></a><span class="identifier">split</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span> s<span class="special">,</span> <span class="keyword">char</span> sep<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span> first<span class="special">,</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span> second<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_type<span class="special">&gt;</span>
+ <span class="identifier">time_type</span> <a name="boost.date_time.parse_delimited_time"></a><span class="identifier">parse_delimited_time</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span> s<span class="special">,</span> <span class="keyword">char</span> sep<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Parse time duration part of an iso time of form: [-]hhmmss[.fff...] (eg: 120259.123 is 12 hours, 2 min, 59 seconds, 123000 microseconds) </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_duration<span class="special">&gt;</span>
+ <a class="link" href="../boost/date_time/time_duration.html" title="Class template time_duration">time_duration</a> <a name="boost.date_time.parse_undelimited_time__id353515"></a><span class="identifier">parse_undelimited_time_duration</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span> s<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Parse time string of form YYYYMMDDThhmmss where T is delimeter between date and time. </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_type<span class="special">&gt;</span>
+ <span class="identifier">time_type</span> <a name="boost.date_time.parse_iso_time"></a><span class="identifier">parse_iso_time</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span> s<span class="special">,</span> <span class="keyword">char</span> sep<span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.time_resolution_traits_hpp"></a>Header &lt;<a href="../../../boost/date_time/time_resolution_traits.hpp" target="_top">boost/date_time/time_resolution_traits.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/date_time/time_resolution_traits__id384061.html" title="Struct time_resolution_traits_bi32_impl">time_resolution_traits_bi32_impl</a><span class="special">;</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/date_time/time_resolution_traits__id355360.html" title="Struct time_resolution_traits_adapted32_impl">time_resolution_traits_adapted32_impl</a><span class="special">;</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/date_time/time_resolution_traits__id696434.html" title="Struct time_resolution_traits_bi64_impl">time_resolution_traits_bi64_impl</a><span class="special">;</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/date_time/time_resolution_traits__id702834.html" title="Struct time_resolution_traits_adapted64_impl">time_resolution_traits_adapted64_impl</a><span class="special">;</span>
+
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> frac_sec_type<span class="special">,</span> <span class="identifier">time_resolutions</span> res<span class="special">,</span>
+ <span class="preprocessor">#if</span><span class="special">(</span><span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_MSVC</span><span class="special">)</span><span class="special">&amp;&amp;</span><span class="special">(</span><span class="identifier">_MSC_VER</span><span class="special">&lt;</span> <span class="number">1300</span><span class="special">)</span><span class="special">)</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">int64_t</span> resolution_adjust<span class="special">,</span>
+ <span class="preprocessor">#else</span> <span class="keyword">typename</span> <span class="identifier">frac_sec_type</span><span class="special">::</span><span class="identifier">int_type</span> resolution_adjust<span class="special">,</span>
+ <span class="preprocessor">#endif</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> frac_digits<span class="special">,</span>
+ <span class="keyword">typename</span> v_type <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">int32_t</span><span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/time_resolution_traits.html" title="Class template time_resolution_traits">time_resolution_traits</a><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <a class="link" href="../boost/date_time/time_resolution_traits.html" title="Class template time_resolution_traits">time_resolution_traits</a><span class="special">&lt;</span> <a class="link" href="../boost/date_time/time_resolution_traits__id355360.html" title="Struct time_resolution_traits_adapted32_impl">time_resolution_traits_adapted32_impl</a><span class="special">,</span> <span class="identifier">milli</span><span class="special">,</span> <span class="number">1000</span><span class="special">,</span> <span class="number">3</span> <span class="special">&gt;</span> <a name="boost.date_time.milli_res"></a><span class="identifier">milli_res</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <a class="link" href="../boost/date_time/time_resolution_traits.html" title="Class template time_resolution_traits">time_resolution_traits</a><span class="special">&lt;</span> <a class="link" href="../boost/date_time/time_resolution_traits__id702834.html" title="Struct time_resolution_traits_adapted64_impl">time_resolution_traits_adapted64_impl</a><span class="special">,</span> <span class="identifier">micro</span><span class="special">,</span> <span class="number">1000000</span><span class="special">,</span> <span class="number">6</span> <span class="special">&gt;</span> <a name="boost.date_time.micro_res"></a><span class="identifier">micro_res</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <a class="link" href="../boost/date_time/time_resolution_traits.html" title="Class template time_resolution_traits">time_resolution_traits</a><span class="special">&lt;</span> <a class="link" href="../boost/date_time/time_resolution_traits__id702834.html" title="Struct time_resolution_traits_adapted64_impl">time_resolution_traits_adapted64_impl</a><span class="special">,</span> <span class="identifier">nano</span><span class="special">,</span> <span class="number">1000000000</span><span class="special">,</span> <span class="number">9</span> <span class="special">&gt;</span> <a name="boost.date_time.nano_res"></a><span class="identifier">nano_res</span><span class="special">;</span>
+
+ <span class="comment">// Simple function to calculate absolute value of a numeric type. </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="identifier">T</span> <a name="boost.date_time.absolute_value"></a><span class="identifier">absolute_value</span><span class="special">(</span><span class="identifier">T</span> x<span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.time_system_counted_hpp"></a>Header &lt;<a href="../../../boost/date_time/time_system_counted.hpp" target="_top">boost/date_time/time_system_counted.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> config<span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/date_time/counted_time_rep.html" title="Struct template counted_time_rep">counted_time_rep</a><span class="special">;</span>
+
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_rep<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/counted_time_system.html" title="Class template counted_time_system">counted_time_system</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.time_system_split_hpp"></a>Header &lt;<a href="../../../boost/date_time/time_system_split.hpp" target="_top">boost/date_time/time_system_split.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> config<span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">int32_t</span> ticks_per_second<span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/split_timedate_system.html" title="Class template split_timedate_system">split_timedate_system</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.time_zone_base_hpp"></a>Header &lt;<a href="../../../boost/date_time/time_zone_base.hpp" target="_top">boost/date_time/time_zone_base.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_type<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/time_zone_base.html" title="Class template time_zone_base">time_zone_base</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_duration_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/dst_adjustment_offsets.html" title="Class template dst_adjustment_offsets">dst_adjustment_offsets</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.time_zone_names_hpp"></a>Header &lt;<a href="../../../boost/date_time/time_zone_names.hpp" target="_top">boost/date_time/time_zone_names.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/date_time/default_zone_names.html" title="Struct template default_zone_names">default_zone_names</a><span class="special">;</span>
+
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/time_zone_names_base.html" title="Class template time_zone_names_base">time_zone_names_base</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.tz_db_base_hpp"></a>Header &lt;<a href="../../../boost/date_time/tz_db_base.hpp" target="_top">boost/date_time/tz_db_base.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/data_not_accessible.html" title="Class data_not_accessible">data_not_accessible</a><span class="special">;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/bad_field_count.html" title="Class bad_field_count">bad_field_count</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> time_zone_type<span class="special">,</span> <span class="keyword">typename</span> rule_type<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/tz_db_base.html" title="Class template tz_db_base">tz_db_base</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.wrapping_int_hpp"></a>Header &lt;<a href="../../../boost/date_time/wrapping_int.hpp" target="_top">boost/date_time/wrapping_int.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> int_type_<span class="special">,</span> <span class="identifier">int_type_</span> wrap_val<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/date_time/wrapping_int.html" title="Class template wrapping_int">wrapping_int</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> int_type_<span class="special">,</span> <span class="identifier">int_type_</span> wrap_min<span class="special">,</span> <span class="identifier">int_type_</span> wrap_max<span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/date_time/wrapping_int2.html" title="Class template wrapping_int2">wrapping_int2</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.year_month_day_hpp"></a>Header &lt;<a href="../../../boost/date_time/year_month_day.hpp" target="_top">boost/date_time/year_month_day.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">date_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> YearType<span class="special">,</span> <span class="keyword">typename</span> MonthType<span class="special">,</span> <span class="keyword">typename</span> DayType<span class="special">&gt;</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/date_time/year_month_day_base.html" title="Struct template year_month_day_base">year_month_day_base</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="gregorian_reference"></a>Gregorian Reference</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.conversion_hpp">Header &lt;boost/date_time/gregorian/conversion.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.formatters_hpp">Header &lt;boost/date_time/gregorian/formatters.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.formatters_limited_hpp">Header &lt;boost/date_time/gregorian/formatters_limited.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.greg_calendar_hpp">Header &lt;boost/date_time/gregorian/greg_calendar.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.greg_date_hpp">Header &lt;boost/date_time/gregorian/greg_date.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.greg_day_hpp">Header &lt;boost/date_time/gregorian/greg_day.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.greg_day_of_year_hpp">Header &lt;boost/date_time/gregorian/greg_day_of_year.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.greg_duration_hpp">Header &lt;boost/date_time/gregorian/greg_duration.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.greg_duration_types_hpp">Header &lt;boost/date_time/gregorian/greg_duration_types.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.greg_facet_hpp">Header &lt;boost/date_time/gregorian/greg_facet.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.greg_month_hpp">Header &lt;boost/date_time/gregorian/greg_month.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.greg_serialize_hpp">Header &lt;boost/date_time/gregorian/greg_serialize.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.greg_weekday_hpp">Header &lt;boost/date_time/gregorian/greg_weekday.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.greg_year_hpp">Header &lt;boost/date_time/gregorian/greg_year.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.greg_ymd_hpp">Header &lt;boost/date_time/gregorian/greg_ymd.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.gregorian_hpp">Header &lt;boost/date_time/gregorian/gregorian.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.gregorian_io_hpp">Header &lt;boost/date_time/gregorian/gregorian_io.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.gregorian_types_hpp">Header &lt;boost/date_time/gregorian/gregorian_types.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.gregorian.parsers_hpp">Header &lt;boost/date_time/gregorian/parsers.hpp&gt;</a></span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.conversion_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/conversion.hpp" target="_top">boost/date_time/gregorian/conversion.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">gregorian</span> <span class="special">{</span>
+
+ <span class="comment">// Converts a date to a tm struct. Throws out_of_range exception if date is a special value. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">tm</span> <a name="boost.gregorian.to_tm_id667210"></a><span class="identifier">to_tm</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Converts a tm structure into a date dropping the any time values. </span>
+ <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <a name="boost.gregorian.date_from_tm"></a><span class="identifier">date_from_tm</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">tm</span> <span class="special">&amp;</span> datetm<span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.formatters_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/formatters.hpp" target="_top">boost/date_time/gregorian/formatters.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">gregorian</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <a name="boost.gregorian.to_simple_string_type_id364199"></a><span class="identifier">to_simple_string_type</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// To YYYY-mmm-DD string where mmm 3 char month name. Example: 2002-Jan-01. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <a name="boost.gregorian.to_simple_string_id364221"></a><span class="identifier">to_simple_string</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <a name="boost.gregorian.to_simple_string_type_id364624"></a><span class="identifier">to_simple_string_type</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">date_period</span> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Convert date period to simple string. Example: [2002-Jan-01/2002-Jan-02]. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <a name="boost.gregorian.to_simple_string_id746085"></a><span class="identifier">to_simple_string</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">date_period</span> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <a name="boost.gregorian.to_iso_string_type_id734997"></a><span class="identifier">to_iso_string_type</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">date_period</span> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Date period to iso standard format CCYYMMDD/CCYYMMDD. Example: 20021225/20021231. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <a name="boost.gregorian.to_iso_string_id735016"></a><span class="identifier">to_iso_string</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">date_period</span> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <a name="boost.gregorian.to_iso_extended_string__id380132"></a><span class="identifier">to_iso_extended_string_type</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Convert to iso extended format string CCYY-MM-DD. Example 2002-12-31. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <a name="boost.gregorian.to_iso_extended_string_id710783"></a><span class="identifier">to_iso_extended_string</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <a name="boost.gregorian.to_iso_string_type_id710801"></a><span class="identifier">to_iso_string_type</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Convert to iso standard string YYYYMMDD. Example: 20021231. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <a name="boost.gregorian.to_iso_string_id710824"></a><span class="identifier">to_iso_string</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <a name="boost.gregorian.to_sql_string_type"></a><span class="identifier">to_sql_string_type</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <a name="boost.gregorian.to_sql_string"></a><span class="identifier">to_sql_string</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Convert date period to simple string. Example: [2002-Jan-01/2002-Jan-02]. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span> <a name="boost.gregorian.to_simple_wstring_id710879"></a><span class="identifier">to_simple_wstring</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">date_period</span> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// To YYYY-mmm-DD string where mmm 3 char month name. Example: 2002-Jan-01. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span> <a name="boost.gregorian.to_simple_wstring_id710894"></a><span class="identifier">to_simple_wstring</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Date period to iso standard format CCYYMMDD/CCYYMMDD. Example: 20021225/20021231. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span> <a name="boost.gregorian.to_iso_wstring_id710913"></a><span class="identifier">to_iso_wstring</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">date_period</span> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Convert to iso extended format string CCYY-MM-DD. Example 2002-12-31. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span> <a name="boost.gregorian.to_iso_extended_wstring_id710928"></a><span class="identifier">to_iso_extended_wstring</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Convert to iso standard string YYYYMMDD. Example: 20021231. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span> <a name="boost.gregorian.to_iso_wstring_id710947"></a><span class="identifier">to_iso_wstring</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span> <a name="boost.gregorian.to_sql_wstring"></a><span class="identifier">to_sql_wstring</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.formatters_limited_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/formatters_limited.hpp" target="_top">boost/date_time/gregorian/formatters_limited.hpp</a>&gt;</h4></div></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.greg_calendar_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_calendar.hpp" target="_top">boost/date_time/gregorian/greg_calendar.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">gregorian</span> <span class="special">{</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/gregorian/gregorian_calendar.html" title="Class gregorian_calendar">gregorian_calendar</a><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">int_adapter</span><span class="special">&lt;</span> <span class="identifier">uint32_t</span> <span class="special">&gt;</span> <a name="boost.gregorian.fancy_date_rep"></a><span class="identifier">fancy_date_rep</span><span class="special">;</span> <span class="comment">// An internal date representation that includes infinities, not a date. </span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.greg_date_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_date.hpp" target="_top">boost/date_time/gregorian/greg_date.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">gregorian</span> <span class="special">{</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.greg_day_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_day.hpp" target="_top">boost/date_time/gregorian/greg_day.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">gregorian</span> <span class="special">{</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/gregorian/bad_day_of_month.html" title="Struct bad_day_of_month">bad_day_of_month</a><span class="special">;</span>
+
+ <span class="keyword">class</span> <a class="link" href="../boost/gregorian/greg_day.html" title="Class greg_day">greg_day</a><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">CV</span><span class="special">::</span><span class="identifier">simple_exception_policy</span><span class="special">&lt;</span> <span class="keyword">unsigned</span> <span class="keyword">short</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">31</span><span class="special">,</span> <a class="link" href="../boost/gregorian/bad_day_of_month.html" title="Struct bad_day_of_month">bad_day_of_month</a> <span class="special">&gt;</span> <a name="boost.gregorian.greg_day_policies"></a><span class="identifier">greg_day_policies</span><span class="special">;</span> <span class="comment">// Policy class that declares error handling and day of month ranges. </span>
+ <span class="keyword">typedef</span> <span class="identifier">CV</span><span class="special">::</span><span class="identifier">constrained_value</span><span class="special">&lt;</span> <span class="identifier">greg_day_policies</span> <span class="special">&gt;</span> <a name="boost.gregorian.greg_day_rep"></a><span class="identifier">greg_day_rep</span><span class="special">;</span> <span class="comment">// Generated represetation for gregorian day of month. </span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.greg_day_of_year_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_day_of_year.hpp" target="_top">boost/date_time/gregorian/greg_day_of_year.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">gregorian</span> <span class="special">{</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/gregorian/bad_day_of_year.html" title="Struct bad_day_of_year">bad_day_of_year</a><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">CV</span><span class="special">::</span><span class="identifier">simple_exception_policy</span><span class="special">&lt;</span> <span class="keyword">unsigned</span> <span class="keyword">short</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">366</span><span class="special">,</span> <a class="link" href="../boost/gregorian/bad_day_of_year.html" title="Struct bad_day_of_year">bad_day_of_year</a> <span class="special">&gt;</span> <a name="boost.gregorian.greg_day_of_year_policies"></a><span class="identifier">greg_day_of_year_policies</span><span class="special">;</span> <span class="comment">// A day of the year range (1..366) </span>
+ <span class="keyword">typedef</span> <span class="identifier">CV</span><span class="special">::</span><span class="identifier">constrained_value</span><span class="special">&lt;</span> <span class="identifier">greg_day_of_year_policies</span> <span class="special">&gt;</span> <a name="boost.gregorian.greg_day_of_year_rep"></a><span class="identifier">greg_day_of_year_rep</span><span class="special">;</span> <span class="comment">// Define a range representation type for the day of the year 1..366. </span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.greg_duration_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_duration.hpp" target="_top">boost/date_time/gregorian/greg_duration.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">gregorian</span> <span class="special">{</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/gregorian/date_duration.html" title="Class date_duration">date_duration</a><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">duration_traits_adapted</span> <a name="boost.gregorian.date_duration_rep"></a><span class="identifier">date_duration_rep</span><span class="special">;</span> <span class="comment">// An internal date representation that includes infinities, not a date. </span>
+ <span class="keyword">typedef</span> <a class="link" href="../boost/gregorian/date_duration.html" title="Class date_duration">date_duration</a> <a name="boost.gregorian.days"></a><span class="identifier">days</span><span class="special">;</span> <span class="comment">// Shorthand for <a class="link" href="../boost/gregorian/date_duration.html" title="Class date_duration">date_duration</a>. </span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.greg_duration_types_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_duration_types.hpp" target="_top">boost/date_time/gregorian/greg_duration_types.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">gregorian</span> <span class="special">{</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/gregorian/greg_durations_config.html" title="Struct greg_durations_config">greg_durations_config</a><span class="special">;</span>
+
+ <span class="keyword">class</span> <a class="link" href="../boost/gregorian/weeks_duration.html" title="Class weeks_duration">weeks_duration</a><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">months_duration</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/greg_durations_config.html" title="Struct greg_durations_config">greg_durations_config</a> <span class="special">&gt;</span> <a name="boost.gregorian.months"></a><span class="identifier">months</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">years_duration</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/greg_durations_config.html" title="Struct greg_durations_config">greg_durations_config</a> <span class="special">&gt;</span> <a name="boost.gregorian.years"></a><span class="identifier">years</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <a class="link" href="../boost/gregorian/weeks_duration.html" title="Class weeks_duration">weeks_duration</a> <a name="boost.gregorian.weeks"></a><span class="identifier">weeks</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.greg_facet_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_facet.hpp" target="_top">boost/date_time/gregorian/greg_facet.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">gregorian</span> <span class="special">{</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/gregorian/greg_facet_config.html" title="Struct greg_facet_config">greg_facet_config</a><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">date_names_put</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/greg_facet_config.html" title="Struct greg_facet_config">greg_facet_config</a> <span class="special">&gt;</span> <a name="boost.gregorian.greg_base_facet"></a><span class="identifier">greg_base_facet</span><span class="special">;</span> <span class="comment">// Create the base facet type for <a class="link" href="../boost/gregorian/date.html" title="Class date">gregorian::date</a>. </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">,</span> <span class="keyword">typename</span> traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a class="link" href="../boost/gregorian/operator_id734237.html" title="Function template operator&lt;&lt;"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">,</span> <span class="keyword">typename</span> traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a class="link" href="../boost/gregorian/operator_id708951.html" title="Function template operator&lt;&lt;"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../boost/gregorian/greg_month.html" title="Class greg_month">greg_month</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">,</span> <span class="keyword">typename</span> traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a class="link" href="../boost/gregorian/operator_id708999.html" title="Function template operator&lt;&lt;"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../boost/gregorian/greg_weekday.html" title="Class greg_weekday">greg_weekday</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">,</span> <span class="keyword">typename</span> traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a class="link" href="../boost/gregorian/operator_id709045.html" title="Function template operator&lt;&lt;"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">date_period</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">,</span> <span class="keyword">typename</span> traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id702073"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <a class="link" href="../boost/gregorian/date_duration.html" title="Class date_duration">date_duration</a> <span class="special">&amp;</span> dd<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// operator&lt;&lt; for gregorian::partial_date. Output: "Jan 1" </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">,</span> <span class="keyword">typename</span> traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id747722"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">partial_date</span> <span class="special">&amp;</span> pd<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// operator&lt;&lt; for gregorian::nth_kday_of_month. Output: "first Mon of Jun" </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">,</span> <span class="keyword">typename</span> traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id704046"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">nth_kday_of_month</span> <span class="special">&amp;</span> nkd<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// operator&lt;&lt; for gregorian::first_kday_of_month. Output: "first Mon of Jun" </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">,</span> <span class="keyword">typename</span> traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id704079"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">first_kday_of_month</span> <span class="special">&amp;</span> fkd<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// operator&lt;&lt; for gregorian::last_kday_of_month. Output: "last Mon of Jun" </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">,</span> <span class="keyword">typename</span> traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id704112"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">last_kday_of_month</span> <span class="special">&amp;</span> lkd<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// operator&lt;&lt; for gregorian::first_kday_after. Output: "first Mon after" </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">,</span> <span class="keyword">typename</span> traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id707393"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">first_kday_after</span> <span class="special">&amp;</span> fka<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// operator&lt;&lt; for gregorian::first_kday_before. Output: "first Mon before" </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">,</span> <span class="keyword">typename</span> traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id735890"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">first_kday_before</span> <span class="special">&amp;</span> fkb<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// operator&gt;&gt; for <a class="link" href="../boost/gregorian/date.html" title="Class date">gregorian::date</a></span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id735922"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// operator&gt;&gt; for <a class="link" href="../boost/gregorian/date_duration.html" title="Class date_duration">gregorian::date_duration</a></span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id735588"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> <a class="link" href="../boost/gregorian/date_duration.html" title="Class date_duration">date_duration</a> <span class="special">&amp;</span> dd<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// operator&gt;&gt; for gregorian::date_period </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id704216"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> <span class="identifier">date_period</span> <span class="special">&amp;</span> dp<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// generates a locale with the set of gregorian name-strings of type char* </span>
+ <span class="identifier">BOOST_DATE_TIME_DECL</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span>
+ <a name="boost.gregorian.generate_locale_id740949"></a><span class="identifier">generate_locale</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> loc<span class="special">,</span> <span class="keyword">char</span> type<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Returns a pointer to a facet with a default set of names (English) </span>
+ <span class="identifier">BOOST_DATE_TIME_DECL</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">all_date_names_put</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/greg_facet_config.html" title="Struct greg_facet_config">greg_facet_config</a><span class="special">,</span> <span class="keyword">char</span> <span class="special">&gt;</span> <span class="special">*</span>
+ <a name="boost.gregorian.create_facet_def_id740970"></a><span class="identifier">create_facet_def</span><span class="special">(</span><span class="keyword">char</span> type<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// generates a locale with the set of gregorian name-strings of type wchar_t* </span>
+ <span class="identifier">BOOST_DATE_TIME_DECL</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span>
+ <a name="boost.gregorian.generate_locale_id663135"></a><span class="identifier">generate_locale</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> loc<span class="special">,</span> <span class="keyword">wchar_t</span> type<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Returns a pointer to a facet with a default set of names (English) </span>
+ <span class="identifier">BOOST_DATE_TIME_DECL</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">all_date_names_put</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/greg_facet_config.html" title="Struct greg_facet_config">greg_facet_config</a><span class="special">,</span> <span class="keyword">wchar_t</span> <span class="special">&gt;</span> <span class="special">*</span>
+ <a name="boost.gregorian.create_facet_def_id712616"></a><span class="identifier">create_facet_def</span><span class="special">(</span><span class="keyword">wchar_t</span> type<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// operator&gt;&gt; for <a class="link" href="../boost/gregorian/greg_month.html" title="Class greg_month">gregorian::greg_month</a> - throws exception if invalid month given </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id690378"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> <a class="link" href="../boost/gregorian/greg_month.html" title="Class greg_month">greg_month</a> <span class="special">&amp;</span> m<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// operator&gt;&gt; for <a class="link" href="../boost/gregorian/greg_weekday.html" title="Class greg_weekday">gregorian::greg_weekday</a> - throws exception if invalid weekday given </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id363265"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> <a class="link" href="../boost/gregorian/greg_weekday.html" title="Class greg_weekday">greg_weekday</a> <span class="special">&amp;</span> wd<span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.greg_month_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_month.hpp" target="_top">boost/date_time/gregorian/greg_month.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">gregorian</span> <span class="special">{</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/gregorian/bad_month.html" title="Struct bad_month">bad_month</a><span class="special">;</span>
+
+ <span class="keyword">class</span> <a class="link" href="../boost/gregorian/greg_month.html" title="Class greg_month">greg_month</a><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">months_of_year</span> <a name="boost.gregorian.months_of_year"></a><span class="identifier">months_of_year</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">CV</span><span class="special">::</span><span class="identifier">simple_exception_policy</span><span class="special">&lt;</span> <span class="keyword">unsigned</span> <span class="keyword">short</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">12</span><span class="special">,</span> <a class="link" href="../boost/gregorian/bad_month.html" title="Struct bad_month">bad_month</a> <span class="special">&gt;</span> <a name="boost.gregorian.greg_month_policies"></a><span class="identifier">greg_month_policies</span><span class="special">;</span> <span class="comment">// Build a policy class for the greg_month_rep. </span>
+ <span class="keyword">typedef</span> <span class="identifier">CV</span><span class="special">::</span><span class="identifier">constrained_value</span><span class="special">&lt;</span> <span class="identifier">greg_month_policies</span> <span class="special">&gt;</span> <a name="boost.gregorian.greg_month_rep"></a><span class="identifier">greg_month_rep</span><span class="special">;</span> <span class="comment">// A constrained range that implements the gregorian_month rules. </span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.greg_serialize_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_serialize.hpp" target="_top">boost/date_time/gregorian/greg_serialize.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis">
+ <a class="link" href="../BOOST_SERIALIZATION_SPL_id684017.html" title="Function BOOST_SERIALIZATION_SPLIT_FREE"><span class="identifier">BOOST_SERIALIZATION_SPLIT_FREE</span></a><span class="special">(</span><span class="special">::</span><a class="link" href="../boost/gregorian/date_duration.html" title="Class date_duration">boost::gregorian::date_duration</a><span class="special">)</span><span class="special">;</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.greg_weekday_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_weekday.hpp" target="_top">boost/date_time/gregorian/greg_weekday.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">gregorian</span> <span class="special">{</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/gregorian/bad_weekday.html" title="Struct bad_weekday">bad_weekday</a><span class="special">;</span>
+
+ <span class="keyword">class</span> <a class="link" href="../boost/gregorian/greg_weekday.html" title="Class greg_weekday">greg_weekday</a><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">CV</span><span class="special">::</span><span class="identifier">simple_exception_policy</span><span class="special">&lt;</span> <span class="keyword">unsigned</span> <span class="keyword">short</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="number">6</span><span class="special">,</span> <a class="link" href="../boost/gregorian/bad_weekday.html" title="Struct bad_weekday">bad_weekday</a> <span class="special">&gt;</span> <a name="boost.gregorian.greg_weekday_policies"></a><span class="identifier">greg_weekday_policies</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">CV</span><span class="special">::</span><span class="identifier">constrained_value</span><span class="special">&lt;</span> <span class="identifier">greg_weekday_policies</span> <span class="special">&gt;</span> <a name="boost.gregorian.greg_weekday_rep"></a><span class="identifier">greg_weekday_rep</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.greg_year_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_year.hpp" target="_top">boost/date_time/gregorian/greg_year.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">gregorian</span> <span class="special">{</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/gregorian/bad_year.html" title="Struct bad_year">bad_year</a><span class="special">;</span>
+
+ <span class="keyword">class</span> <a class="link" href="../boost/gregorian/greg_year.html" title="Class greg_year">greg_year</a><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">CV</span><span class="special">::</span><span class="identifier">simple_exception_policy</span><span class="special">&lt;</span> <span class="keyword">unsigned</span> <span class="keyword">short</span><span class="special">,</span> <span class="number">1400</span><span class="special">,</span> <span class="number">10000</span><span class="special">,</span> <a class="link" href="../boost/gregorian/bad_year.html" title="Struct bad_year">bad_year</a> <span class="special">&gt;</span> <a name="boost.gregorian.greg_year_policies"></a><span class="identifier">greg_year_policies</span><span class="special">;</span> <span class="comment">// Policy class that declares error handling gregorian year type. </span>
+ <span class="keyword">typedef</span> <span class="identifier">CV</span><span class="special">::</span><span class="identifier">constrained_value</span><span class="special">&lt;</span> <span class="identifier">greg_year_policies</span> <span class="special">&gt;</span> <a name="boost.gregorian.greg_year_rep"></a><span class="identifier">greg_year_rep</span><span class="special">;</span> <span class="comment">// Generated representation for gregorian year. </span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.greg_ymd_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_ymd.hpp" target="_top">boost/date_time/gregorian/greg_ymd.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">gregorian</span> <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">year_month_day_base</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/greg_year.html" title="Class greg_year">greg_year</a><span class="special">,</span> <a class="link" href="../boost/gregorian/greg_month.html" title="Class greg_month">greg_month</a><span class="special">,</span> <a class="link" href="../boost/gregorian/greg_day.html" title="Class greg_day">greg_day</a> <span class="special">&gt;</span> <a name="boost.gregorian.greg_year_month_day"></a><span class="identifier">greg_year_month_day</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.gregorian_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/gregorian.hpp" target="_top">boost/date_time/gregorian/gregorian.hpp</a>&gt;</h4></div></div></div>
+<p>Single file header that provides overall include for all elements of the gregorian date-time system. This includes the various types defined, but also other functions for formatting and parsing. </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.gregorian_io_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/gregorian_io.hpp" target="_top">boost/date_time/gregorian/gregorian_io.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">gregorian</span> <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">period_formatter</span><span class="special">&lt;</span> <span class="keyword">wchar_t</span> <span class="special">&gt;</span> <a name="boost.gregorian.wperiod_formatter"></a><span class="identifier">wperiod_formatter</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">period_formatter</span><span class="special">&lt;</span> <span class="keyword">char</span> <span class="special">&gt;</span> <a name="boost.gregorian.period_formatter"></a><span class="identifier">period_formatter</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">date_facet</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a><span class="special">,</span> <span class="keyword">wchar_t</span> <span class="special">&gt;</span> <a name="boost.gregorian.wdate_facet"></a><span class="identifier">wdate_facet</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">date_facet</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a><span class="special">,</span> <span class="keyword">char</span> <span class="special">&gt;</span> <a name="boost.gregorian.date_facet"></a><span class="identifier">date_facet</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">period_parser</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a><span class="special">,</span> <span class="keyword">char</span> <span class="special">&gt;</span> <a name="boost.gregorian.period_parser"></a><span class="identifier">period_parser</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">period_parser</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a><span class="special">,</span> <span class="keyword">wchar_t</span> <span class="special">&gt;</span> <a name="boost.gregorian.wperiod_parser"></a><span class="identifier">wperiod_parser</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">special_values_formatter</span><span class="special">&lt;</span> <span class="keyword">char</span> <span class="special">&gt;</span> <a name="boost.gregorian.special_values_formatter"></a><span class="identifier">special_values_formatter</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">special_values_formatter</span><span class="special">&lt;</span> <span class="keyword">wchar_t</span> <span class="special">&gt;</span> <a name="boost.gregorian.wspecial_values_formatter"></a><span class="identifier">wspecial_values_formatter</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">special_values_parser</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a><span class="special">,</span> <span class="keyword">char</span> <span class="special">&gt;</span> <a name="boost.gregorian.special_values_parser"></a><span class="identifier">special_values_parser</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">special_values_parser</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a><span class="special">,</span> <span class="keyword">wchar_t</span> <span class="special">&gt;</span> <a name="boost.gregorian.wspecial_values_parser"></a><span class="identifier">wspecial_values_parser</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">date_input_facet</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a><span class="special">,</span> <span class="keyword">char</span> <span class="special">&gt;</span> <a name="boost.gregorian.date_input_facet"></a><span class="identifier">date_input_facet</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">date_input_facet</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a><span class="special">,</span> <span class="keyword">wchar_t</span> <span class="special">&gt;</span> <a name="boost.gregorian.wdate_input_facet"></a><span class="identifier">wdate_input_facet</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> TraitsT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id377090"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">boost::gregorian::date</a> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// input operator for date </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id368056"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&amp;</span> d<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> TraitsT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id351846"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <a class="link" href="../boost/gregorian/date_duration.html" title="Class date_duration">boost::gregorian::date_duration</a> <span class="special">&amp;</span> dd<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// input operator for <a class="link" href="../boost/gregorian/date_duration.html" title="Class date_duration">date_duration</a></span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id377956"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> <a class="link" href="../boost/gregorian/date_duration.html" title="Class date_duration">date_duration</a> <span class="special">&amp;</span> dd<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> TraitsT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id692597"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">date_period</span> <span class="special">&amp;</span> dp<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// input operator for date_period </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id687328"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> <span class="identifier">date_period</span> <span class="special">&amp;</span> dp<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> TraitsT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id717808"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <a class="link" href="../boost/gregorian/greg_month.html" title="Class greg_month">boost::gregorian::greg_month</a> <span class="special">&amp;</span> gm<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// input operator for <a class="link" href="../boost/gregorian/greg_month.html" title="Class greg_month">greg_month</a></span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id388290"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> <a class="link" href="../boost/gregorian/greg_month.html" title="Class greg_month">greg_month</a> <span class="special">&amp;</span> m<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> TraitsT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id736518"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <a class="link" href="../boost/gregorian/greg_weekday.html" title="Class greg_weekday">boost::gregorian::greg_weekday</a> <span class="special">&amp;</span> gw<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// input operator for <a class="link" href="../boost/gregorian/greg_weekday.html" title="Class greg_weekday">greg_weekday</a></span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id663082"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> <a class="link" href="../boost/gregorian/greg_weekday.html" title="Class greg_weekday">greg_weekday</a> <span class="special">&amp;</span> wd<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// input operator for <a class="link" href="../boost/gregorian/greg_day.html" title="Class greg_day">greg_day</a></span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id669944"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> <a class="link" href="../boost/gregorian/greg_day.html" title="Class greg_day">greg_day</a> <span class="special">&amp;</span> gd<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// input operator for <a class="link" href="../boost/gregorian/greg_year.html" title="Class greg_year">greg_year</a></span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id385846"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> <a class="link" href="../boost/gregorian/greg_year.html" title="Class greg_year">greg_year</a> <span class="special">&amp;</span> gy<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> TraitsT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id681893"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">partial_date</span> <span class="special">&amp;</span> pd<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// input operator for partial_date </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id666841"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> <span class="identifier">partial_date</span> <span class="special">&amp;</span> pd<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> TraitsT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id683351"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">nth_day_of_the_week_in_month</span> <span class="special">&amp;</span> nkd<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// input operator for nth_day_of_the_week_in_month </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id663480"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span>
+ <span class="identifier">nth_day_of_the_week_in_month</span> <span class="special">&amp;</span> nday<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> TraitsT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id691888"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">first_day_of_the_week_in_month</span> <span class="special">&amp;</span> fkd<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// input operator for first_day_of_the_week_in_month </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id706153"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span>
+ <span class="identifier">first_day_of_the_week_in_month</span> <span class="special">&amp;</span> fkd<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> TraitsT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id706186"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">last_day_of_the_week_in_month</span> <span class="special">&amp;</span> lkd<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// input operator for last_day_of_the_week_in_month </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id706216"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span>
+ <span class="identifier">last_day_of_the_week_in_month</span> <span class="special">&amp;</span> lkd<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> TraitsT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id683017"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">first_day_of_the_week_after</span> <span class="special">&amp;</span> fda<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// input operator for first_day_of_the_week_after </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id665399"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span>
+ <span class="identifier">first_day_of_the_week_after</span> <span class="special">&amp;</span> fka<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> TraitsT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id423564"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">first_day_of_the_week_before</span> <span class="special">&amp;</span> fdb<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// input operator for first_day_of_the_week_before </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.gregorian.operator_id468979"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span>
+ <span class="identifier">first_day_of_the_week_before</span> <span class="special">&amp;</span> fkb<span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.gregorian_types_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/gregorian_types.hpp" target="_top">boost/date_time/gregorian/gregorian_types.hpp</a>&gt;</h4></div></div></div>
+<p>Single file header that defines most of the types for the gregorian date-time system. </p>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">gregorian</span> <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">period</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a><span class="special">,</span> <a class="link" href="../boost/gregorian/date_duration.html" title="Class date_duration">date_duration</a> <span class="special">&gt;</span> <a name="boost.gregorian.date_period"></a><span class="identifier">date_period</span><span class="special">;</span> <span class="comment">// Date periods for the gregorian system. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">year_based_generator</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&gt;</span> <a class="link" href="../boost/gregorian/year_based_generator.html" title="Type definition year_based_generator"><span class="identifier">year_based_generator</span></a><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">partial_date</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&gt;</span> <a name="boost.gregorian.partial_date"></a><span class="identifier">partial_date</span><span class="special">;</span> <span class="comment">// A date generation object type. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">nth_kday_of_month</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&gt;</span> <a name="boost.gregorian.nth_kday_of_month"></a><span class="identifier">nth_kday_of_month</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">nth_kday_of_month</span> <a name="boost.gregorian.nth_day_of_the_week_in__id747740"></a><span class="identifier">nth_day_of_the_week_in_month</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">first_kday_of_month</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&gt;</span> <a name="boost.gregorian.first_kday_of_month"></a><span class="identifier">first_kday_of_month</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">first_kday_of_month</span> <a name="boost.gregorian.first_day_of_the_week_i_id747756"></a><span class="identifier">first_day_of_the_week_in_month</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">last_kday_of_month</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&gt;</span> <a name="boost.gregorian.last_kday_of_month"></a><span class="identifier">last_kday_of_month</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">last_kday_of_month</span> <a name="boost.gregorian.last_day_of_the_week_in_id360430"></a><span class="identifier">last_day_of_the_week_in_month</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">first_kday_after</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&gt;</span> <a name="boost.gregorian.first_kday_after"></a><span class="identifier">first_kday_after</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">first_kday_after</span> <a name="boost.gregorian.first_day_of_the_week_a_id703320"></a><span class="identifier">first_day_of_the_week_after</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">first_kday_before</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&gt;</span> <a name="boost.gregorian.first_kday_before"></a><span class="identifier">first_kday_before</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">first_kday_before</span> <a name="boost.gregorian.first_day_of_the_week_b_id703336"></a><span class="identifier">first_day_of_the_week_before</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">day_clock</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&gt;</span> <a name="boost.gregorian.day_clock"></a><span class="identifier">day_clock</span><span class="special">;</span> <span class="comment">// A clock to get the current day from the local computer. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">date_itr_base</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&gt;</span> <a name="boost.gregorian.date_iterator"></a><span class="identifier">date_iterator</span><span class="special">;</span> <span class="comment">// Base date_iterator type for gregorian types. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">date_itr</span><span class="special">&lt;</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">day_functor</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&gt;</span><span class="special">,</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&gt;</span> <a name="boost.gregorian.day_iterator"></a><span class="identifier">day_iterator</span><span class="special">;</span> <span class="comment">// A day level iterator. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">date_itr</span><span class="special">&lt;</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">week_functor</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&gt;</span><span class="special">,</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&gt;</span> <a name="boost.gregorian.week_iterator"></a><span class="identifier">week_iterator</span><span class="special">;</span> <span class="comment">// A week level iterator. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">date_itr</span><span class="special">&lt;</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">month_functor</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&gt;</span><span class="special">,</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&gt;</span> <a name="boost.gregorian.month_iterator"></a><span class="identifier">month_iterator</span><span class="special">;</span> <span class="comment">// A month level iterator. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">date_itr</span><span class="special">&lt;</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">year_functor</span><span class="special">&lt;</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&gt;</span><span class="special">,</span> <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <span class="special">&gt;</span> <a name="boost.gregorian.year_iterator"></a><span class="identifier">year_iterator</span><span class="special">;</span> <span class="comment">// A year level iterator. </span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.gregorian.parsers_hpp"></a>Header &lt;<a href="../../../boost/date_time/gregorian/parsers.hpp" target="_top">boost/date_time/gregorian/parsers.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">gregorian</span> <span class="special">{</span>
+ <span class="identifier">BOOST_DATE_TIME_DECL</span> <span class="identifier">special_values</span>
+ <a class="link" href="../boost/gregorian/special_value_from_string.html" title="Function special_value_from_string"><span class="identifier">special_value_from_string</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Deprecated: Use from_simple_string. </span>
+ <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <a name="boost.gregorian.from_string"></a><span class="identifier">from_string</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> s<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// From delimited date string where with order year-month-day eg: 2002-1-25 or 2003-Jan-25 (full month name is also accepted) </span>
+ <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <a name="boost.gregorian.from_simple_string"></a><span class="identifier">from_simple_string</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> s<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// From delimited date string where with order year-month-day eg: 1-25-2003 or Jan-25-2003 (full month name is also accepted) </span>
+ <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <a name="boost.gregorian.from_us_string"></a><span class="identifier">from_us_string</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> s<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// From delimited date string where with order day-month-year eg: 25-1-2002 or 25-Jan-2003 (full month name is also accepted) </span>
+ <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <a name="boost.gregorian.from_uk_string"></a><span class="identifier">from_uk_string</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> s<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// From iso type date string where with order year-month-day eg: 20020125. </span>
+ <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <a name="boost.gregorian.from_undelimited_string"></a><span class="identifier">from_undelimited_string</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> s<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// From iso type date string where with order year-month-day eg: 20020125. </span>
+ <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <a name="boost.gregorian.date_from_iso_string"></a><span class="identifier">date_from_iso_string</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span> s<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Stream should hold a date in the form of: 2002-1-25. Month number, abbrev, or name are accepted. </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> iterator_type<span class="special">&gt;</span>
+ <a class="link" href="../boost/gregorian/date.html" title="Class date">date</a> <a name="boost.gregorian.from_stream"></a><span class="identifier">from_stream</span><span class="special">(</span><span class="identifier">iterator_type</span> beg<span class="special">,</span> <span class="identifier">iterator_type</span> end<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Function to parse a date_period from a string (eg: [2003-Oct-31/2003-Dec-25]) </span>
+ <span class="identifier">date_period</span> <a name="boost.gregorian.date_period_from_string"></a><span class="identifier">date_period_from_string</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span> s<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Function to parse a date_period from a wstring (eg: [2003-Oct-31/2003-Dec-25]) </span>
+ <span class="identifier">date_period</span> <a name="boost.gregorian.date_period_from_wstring"></a><span class="identifier">date_period_from_wstring</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span> <span class="special">&amp;</span> s<span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="posix_time_reference"></a>Posix Time Reference</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.posix_time.conversion_hpp">Header &lt;boost/date_time/posix_time/conversion.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.posix_time.date_duration_operators_hpp">Header &lt;boost/date_time/posix_time/date_duration_operators.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.posix_time.posix_time_hpp">Header &lt;boost/date_time/posix_time/posix_time.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.posix_time.posix_time_config_hpp">Header &lt;boost/date_time/posix_time/posix_time_config.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.posix_time.posix_time_duration_hpp">Header &lt;boost/date_time/posix_time/posix_time_duration.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.posix_time.posix_time_io_hpp">Header &lt;boost/date_time/posix_time/posix_time_io.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.posix_time.posix_time_legacy_io_hpp">Header &lt;boost/date_time/posix_time/posix_time_legacy_io.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.posix_time.posix_time_system_hpp">Header &lt;boost/date_time/posix_time/posix_time_system.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.posix_time.posix_time_types_hpp">Header &lt;boost/date_time/posix_time/posix_time_types.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.posix_time.ptime_hpp">Header &lt;boost/date_time/posix_time/ptime.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.posix_time.time_formatters_hpp">Header &lt;boost/date_time/posix_time/time_formatters.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.posix_time.time_formatters_limited_hpp">Header &lt;boost/date_time/posix_time/time_formatters_limited.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.posix_time.time_parsers_hpp">Header &lt;boost/date_time/posix_time/time_parsers.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.posix_time.time_period_hpp">Header &lt;boost/date_time/posix_time/time_period.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.posix_time.time_serialize_hpp">Header &lt;boost/date_time/posix_time/time_serialize.hpp&gt;</a></span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.posix_time.conversion_hpp"></a>Header &lt;<a href="../../../boost/date_time/posix_time/conversion.hpp" target="_top">boost/date_time/posix_time/conversion.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">posix_time</span> <span class="special">{</span>
+
+ <span class="comment">// Function that converts a time_t into a ptime. </span>
+ <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <a name="boost.posix_time.from_time_t"></a><span class="identifier">from_time_t</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">time_t</span> t<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Convert a time to a tm structure truncating any fractional seconds. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">tm</span> <a name="boost.posix_time.to_tm_id719123"></a><span class="identifier">to_tm</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">boost::posix_time::ptime</a> <span class="special">&amp;</span> t<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Convert a <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a> to a tm structure truncating any fractional seconds and zeroing fields for date components. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">tm</span> <a name="boost.posix_time.to_tm_id668921"></a><span class="identifier">to_tm</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">boost::posix_time::time_duration</a> <span class="special">&amp;</span> td<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Convert a tm struct to a ptime ignoring is_dst flag. </span>
+ <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <a name="boost.posix_time.ptime_from_tm"></a><span class="identifier">ptime_from_tm</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">tm</span> <span class="special">&amp;</span> timetm<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> TimeT<span class="special">,</span> <span class="keyword">typename</span> FileTimeT<span class="special">&gt;</span>
+ <span class="identifier">TimeT</span> <a class="link" href="../boost/posix_time/from_ftime.html" title="Function template from_ftime"><span class="identifier">from_ftime</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">FileTimeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.posix_time.date_duration_operators_hpp"></a>Header &lt;<a href="../../../boost/date_time/posix_time/date_duration_operators.hpp" target="_top">boost/date_time/posix_time/date_duration_operators.hpp</a>&gt;</h4></div></div></div>
+<p>Operators for ptime and optional gregorian types. Operators use snap-to-end-of-month behavior. Further details on this behavior can be found in reference for date_time/date_duration_types.hpp and documentation for month and year iterators. </p>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">posix_time</span> <span class="special">{</span>
+ <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <a class="link" href="../boost/posix_time/operator__id705345.html" title="Function operator+"><span class="keyword">operator</span><span class="special">+</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">months</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <a class="link" href="../boost/posix_time/operator___id706828.html" title="Function operator+="><span class="keyword">operator</span><span class="special">+=</span></a><span class="special">(</span><a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">months</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <a class="link" href="../boost/posix_time/operator-_id706854.html" title="Function operator-"><span class="keyword">operator</span><span class="special">-</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">months</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <a class="link" href="../boost/posix_time/operator-__id691181.html" title="Function operator-="><span class="keyword">operator</span><span class="special">-=</span></a><span class="special">(</span><a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">months</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <a class="link" href="../boost/posix_time/operator__id711710.html" title="Function operator+"><span class="keyword">operator</span><span class="special">+</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">years</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <a class="link" href="../boost/posix_time/operator___id709584.html" title="Function operator+="><span class="keyword">operator</span><span class="special">+=</span></a><span class="special">(</span><a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">years</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <a class="link" href="../boost/posix_time/operator-_id709610.html" title="Function operator-"><span class="keyword">operator</span><span class="special">-</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">years</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <a class="link" href="../boost/posix_time/operator-__id709639.html" title="Function operator-="><span class="keyword">operator</span><span class="special">-=</span></a><span class="special">(</span><a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">years</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.posix_time.posix_time_hpp"></a>Header &lt;<a href="../../../boost/date_time/posix_time/posix_time.hpp" target="_top">boost/date_time/posix_time/posix_time.hpp</a>&gt;</h4></div></div></div>
+<p>Global header file to get all of posix time types </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.posix_time.posix_time_config_hpp"></a>Header &lt;<a href="../../../boost/date_time/posix_time/posix_time_config.hpp" target="_top">boost/date_time/posix_time/posix_time_config.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">posix_time</span> <span class="special">{</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a><span class="special">;</span>
+
+ <span class="keyword">struct</span> <a class="link" href="../boost/posix_time/simple_time_rep.html" title="Struct simple_time_rep">simple_time_rep</a><span class="special">;</span>
+
+ <span class="keyword">class</span> <a class="link" href="../boost/posix_time/posix_time_system_config.html" title="Class posix_time_system_config">posix_time_system_config</a><span class="special">;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/posix_time/millisec_posix_time_sys_id711962.html" title="Class millisec_posix_time_system_config">millisec_posix_time_system_config</a><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">time_resolution_traits</span><span class="special">&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">time_resolution_traits_adapted64_impl</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">nano</span><span class="special">,</span> <span class="number">1000000000</span><span class="special">,</span> <span class="number">9</span> <span class="special">&gt;</span> <a name="boost.posix_time.time_res_traits"></a><span class="identifier">time_res_traits</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.posix_time.posix_time_duration_hpp"></a>Header &lt;<a href="../../../boost/date_time/posix_time/posix_time_duration.hpp" target="_top">boost/date_time/posix_time/posix_time_duration.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">posix_time</span> <span class="special">{</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/posix_time/hours.html" title="Class hours">hours</a><span class="special">;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/posix_time/minutes.html" title="Class minutes">minutes</a><span class="special">;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/posix_time/seconds.html" title="Class seconds">seconds</a><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">subsecond_duration</span><span class="special">&lt;</span> <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a><span class="special">,</span> <span class="number">1000</span> <span class="special">&gt;</span> <a name="boost.posix_time.millisec"></a><span class="identifier">millisec</span><span class="special">;</span> <span class="comment">// Allows expression of durations as milli seconds. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">subsecond_duration</span><span class="special">&lt;</span> <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a><span class="special">,</span> <span class="number">1000</span> <span class="special">&gt;</span> <a name="boost.posix_time.milliseconds"></a><span class="identifier">milliseconds</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">subsecond_duration</span><span class="special">&lt;</span> <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a><span class="special">,</span> <span class="number">1000000</span> <span class="special">&gt;</span> <a name="boost.posix_time.microsec"></a><span class="identifier">microsec</span><span class="special">;</span> <span class="comment">// Allows expression of durations as micro seconds. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">subsecond_duration</span><span class="special">&lt;</span> <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a><span class="special">,</span> <span class="number">1000000</span> <span class="special">&gt;</span> <a name="boost.posix_time.microseconds"></a><span class="identifier">microseconds</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">subsecond_duration</span><span class="special">&lt;</span> <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a><span class="special">,</span> <span class="number">1000000000</span> <span class="special">&gt;</span> <a name="boost.posix_time.nanosec"></a><span class="identifier">nanosec</span><span class="special">;</span> <span class="comment">// Allows expression of durations as nano seconds. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">subsecond_duration</span><span class="special">&lt;</span> <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a><span class="special">,</span> <span class="number">1000000000</span> <span class="special">&gt;</span> <a name="boost.posix_time.nanoseconds"></a><span class="identifier">nanoseconds</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.posix_time.posix_time_io_hpp"></a>Header &lt;<a href="../../../boost/date_time/posix_time/posix_time_io.hpp" target="_top">boost/date_time/posix_time/posix_time_io.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">posix_time</span> <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">time_facet</span><span class="special">&lt;</span> <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a><span class="special">,</span> <span class="keyword">wchar_t</span> <span class="special">&gt;</span> <a class="link" href="../boost/posix_time/wtime_facet.html" title="Type definition wtime_facet"><span class="identifier">wtime_facet</span></a><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">time_facet</span><span class="special">&lt;</span> <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a><span class="special">,</span> <span class="keyword">char</span> <span class="special">&gt;</span> <a name="boost.posix_time.time_facet"></a><span class="identifier">time_facet</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">time_input_facet</span><span class="special">&lt;</span> <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a><span class="special">,</span> <span class="keyword">wchar_t</span> <span class="special">&gt;</span> <a name="boost.posix_time.wtime_input_facet"></a><span class="identifier">wtime_input_facet</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">time_input_facet</span><span class="special">&lt;</span> <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a><span class="special">,</span> <span class="keyword">char</span> <span class="special">&gt;</span> <a name="boost.posix_time.time_input_facet"></a><span class="identifier">time_input_facet</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> TraitsT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.posix_time.operator_id423355"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <span class="special">&amp;</span> p<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// input operator for ptime </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.posix_time.operator_id423121"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <span class="special">&amp;</span> pt<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> TraitsT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.posix_time.operator_id356201"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">time_period</span> <span class="special">&amp;</span> p<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// input operator for time_period </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.posix_time.operator_id702160"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> <span class="identifier">time_period</span> <span class="special">&amp;</span> tp<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// ostream operator for <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">posix_time::time_duration</a></span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.posix_time.operator_id746130"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a> <span class="special">&amp;</span> td<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// input operator for <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a></span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.posix_time.operator_id734815"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a> <span class="special">&amp;</span> td<span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.posix_time.posix_time_legacy_io_hpp"></a>Header &lt;<a href="../../../boost/date_time/posix_time/posix_time_legacy_io.hpp" target="_top">boost/date_time/posix_time/posix_time_legacy_io.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">posix_time</span> <span class="special">{</span>
+
+ <span class="comment">// ostream operator for <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">posix_time::time_duration</a></span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">,</span> <span class="keyword">typename</span> traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.posix_time.operator_id708849"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a> <span class="special">&amp;</span> td<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// ostream operator for <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">posix_time::ptime</a></span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">,</span> <span class="keyword">typename</span> traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.posix_time.operator_id708891"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <span class="special">&amp;</span> t<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// ostream operator for posix_time::time_period </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">,</span> <span class="keyword">typename</span> traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.posix_time.operator_id372980"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">time_period</span> <span class="special">&amp;</span> tp<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.posix_time.operator_id662405"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a> <span class="special">&amp;</span> td<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.posix_time.operator_id721083"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span> <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <span class="special">&amp;</span> pt<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a class="link" href="../boost/posix_time/operator_id745582.html" title="Function template operator&gt;&gt;"><span class="keyword">operator</span><span class="special">&gt;&gt;</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">time_period</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.posix_time.posix_time_system_hpp"></a>Header &lt;<a href="../../../boost/date_time/posix_time/posix_time_system.hpp" target="_top">boost/date_time/posix_time/posix_time_system.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">posix_time</span> <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">split_timedate_system</span><span class="special">&lt;</span> <a class="link" href="../boost/posix_time/posix_time_system_config.html" title="Class posix_time_system_config">posix_time_system_config</a><span class="special">,</span> <span class="number">1000000000</span> <span class="special">&gt;</span> <a name="boost.posix_time.posix_time_system"></a><span class="identifier">posix_time_system</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">counted_time_rep</span><span class="special">&lt;</span> <a class="link" href="../boost/posix_time/millisec_posix_time_sys_id711962.html" title="Class millisec_posix_time_system_config">millisec_posix_time_system_config</a> <span class="special">&gt;</span> <a name="boost.posix_time.int64_time_rep"></a><span class="identifier">int64_time_rep</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.posix_time.posix_time_types_hpp"></a>Header &lt;<a href="../../../boost/date_time/posix_time/posix_time_types.hpp" target="_top">boost/date_time/posix_time/posix_time_types.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">posix_time</span> <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">time_itr</span><span class="special">&lt;</span> <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <span class="special">&gt;</span> <a name="boost.posix_time.time_iterator"></a><span class="identifier">time_iterator</span><span class="special">;</span> <span class="comment">// Iterator over a defined time duration. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">second_clock</span><span class="special">&lt;</span> <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <span class="special">&gt;</span> <a name="boost.posix_time.second_clock"></a><span class="identifier">second_clock</span><span class="special">;</span> <span class="comment">// A time clock that has a resolution of one second. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">microsec_clock</span><span class="special">&lt;</span> <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <span class="special">&gt;</span> <a name="boost.posix_time.microsec_clock"></a><span class="identifier">microsec_clock</span><span class="special">;</span> <span class="comment">// A time clock that has a resolution of one microsecond. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">null_dst_rules</span><span class="special">&lt;</span> <span class="identifier">ptime</span><span class="special">::</span><span class="identifier">date_type</span><span class="special">,</span> <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a> <span class="special">&gt;</span> <a name="boost.posix_time.no_dst"></a><span class="identifier">no_dst</span><span class="special">;</span> <span class="comment">// Define a dst null dst rule for the posix_time system. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">us_dst_rules</span><span class="special">&lt;</span> <span class="identifier">ptime</span><span class="special">::</span><span class="identifier">date_type</span><span class="special">,</span> <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a> <span class="special">&gt;</span> <a name="boost.posix_time.us_dst"></a><span class="identifier">us_dst</span><span class="special">;</span> <span class="comment">// Define US dst rule calculator for the posix_time system. </span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.posix_time.ptime_hpp"></a>Header &lt;<a href="../../../boost/date_time/posix_time/ptime.hpp" target="_top">boost/date_time/posix_time/ptime.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">posix_time</span> <span class="special">{</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.posix_time.time_formatters_hpp"></a>Header &lt;<a href="../../../boost/date_time/posix_time/time_formatters.hpp" target="_top">boost/date_time/posix_time/time_formatters.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">posix_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <a name="boost.posix_time.to_simple_string_type_id670394"></a><span class="identifier">to_simple_string_type</span><span class="special">(</span><a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a> td<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Time duration to string -hh::mm::ss.fffffff. Example: 10:09:03.0123456. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <a name="boost.posix_time.to_simple_string_id703880"></a><span class="identifier">to_simple_string</span><span class="special">(</span><a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a> td<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <a name="boost.posix_time.to_iso_string_type_id441325"></a><span class="identifier">to_iso_string_type</span><span class="special">(</span><a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a> td<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Time duration in iso format -hhmmss,fffffff Example: 10:09:03,0123456. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <a name="boost.posix_time.to_iso_string_id666953"></a><span class="identifier">to_iso_string</span><span class="special">(</span><a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a> td<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Time to simple format CCYY-mmm-dd hh:mm:ss.fffffff. </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <a name="boost.posix_time.to_simple_string_type_id666968"></a><span class="identifier">to_simple_string_type</span><span class="special">(</span><a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> t<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Time to simple format CCYY-mmm-dd hh:mm:ss.fffffff. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <a name="boost.posix_time.to_simple_string_id708459"></a><span class="identifier">to_simple_string</span><span class="special">(</span><a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> t<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <a name="boost.posix_time.to_simple_string_type_id708475"></a><span class="identifier">to_simple_string_type</span><span class="special">(</span><span class="identifier">time_period</span> tp<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Convert to string of form [YYYY-mmm-DD HH:MM::SS.ffffff/YYYY-mmm-DD HH:MM::SS.fffffff]. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <a name="boost.posix_time.to_simple_string_id468024"></a><span class="identifier">to_simple_string</span><span class="special">(</span><span class="identifier">time_period</span> tp<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <a name="boost.posix_time.to_iso_string_type_id671342"></a><span class="identifier">to_iso_string_type</span><span class="special">(</span><a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> t<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Convert iso short form YYYYMMDDTHHMMSS where T is the date-time separator. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <a name="boost.posix_time.to_iso_string_id671362"></a><span class="identifier">to_iso_string</span><span class="special">(</span><a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> t<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> charT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">charT</span> <span class="special">&gt;</span> <a name="boost.posix_time.to_iso_extended_string__id679167"></a><span class="identifier">to_iso_extended_string_type</span><span class="special">(</span><a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> t<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Convert to form YYYY-MM-DDTHH:MM:SS where T is the date-time separator. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <a name="boost.posix_time.to_iso_extended_string_id672669"></a><span class="identifier">to_iso_extended_string</span><span class="special">(</span><a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> t<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Time duration to wstring -hh::mm::ss.fffffff. Example: 10:09:03.0123456. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span> <a name="boost.posix_time.to_simple_wstring_id740609"></a><span class="identifier">to_simple_wstring</span><span class="special">(</span><a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a> td<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Time duration in iso format -hhmmss,fffffff Example: 10:09:03,0123456. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span> <a name="boost.posix_time.to_iso_wstring_id423391"></a><span class="identifier">to_iso_wstring</span><span class="special">(</span><a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a> td<span class="special">)</span><span class="special">;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span> <a name="boost.posix_time.to_simple_wstring_id745403"></a><span class="identifier">to_simple_wstring</span><span class="special">(</span><a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> t<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Convert to wstring of form [YYYY-mmm-DD HH:MM::SS.ffffff/YYYY-mmm-DD HH:MM::SS.fffffff]. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span> <a name="boost.posix_time.to_simple_wstring_id718176"></a><span class="identifier">to_simple_wstring</span><span class="special">(</span><span class="identifier">time_period</span> tp<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Convert iso short form YYYYMMDDTHHMMSS where T is the date-time separator. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span> <a name="boost.posix_time.to_iso_wstring_id722293"></a><span class="identifier">to_iso_wstring</span><span class="special">(</span><a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> t<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// Convert to form YYYY-MM-DDTHH:MM:SS where T is the date-time separator. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span> <a name="boost.posix_time.to_iso_extended_wstring_id347848"></a><span class="identifier">to_iso_extended_wstring</span><span class="special">(</span><a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> t<span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.posix_time.time_formatters_limited_hpp"></a>Header &lt;<a href="../../../boost/date_time/posix_time/time_formatters_limited.hpp" target="_top">boost/date_time/posix_time/time_formatters_limited.hpp</a>&gt;</h4></div></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.posix_time.time_parsers_hpp"></a>Header &lt;<a href="../../../boost/date_time/posix_time/time_parsers.hpp" target="_top">boost/date_time/posix_time/time_parsers.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">posix_time</span> <span class="special">{</span>
+ <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a> <a class="link" href="../boost/posix_time/duration_from_string.html" title="Function duration_from_string"><span class="identifier">duration_from_string</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <a name="boost.posix_time.time_from_string"></a><span class="identifier">time_from_string</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span> s<span class="special">)</span><span class="special">;</span>
+ <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a> <a name="boost.posix_time.from_iso_string"></a><span class="identifier">from_iso_string</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span> s<span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.posix_time.time_period_hpp"></a>Header &lt;<a href="../../../boost/date_time/posix_time/time_period.hpp" target="_top">boost/date_time/posix_time/time_period.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">posix_time</span> <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">period</span><span class="special">&lt;</span> <a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">ptime</a><span class="special">,</span> <a class="link" href="../boost/posix_time/time_duration.html" title="Class time_duration">time_duration</a> <span class="special">&gt;</span> <a name="boost.posix_time.time_period"></a><span class="identifier">time_period</span><span class="special">;</span> <span class="comment">// Time period type. </span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.posix_time.time_serialize_hpp"></a>Header &lt;<a href="../../../boost/date_time/posix_time/time_serialize.hpp" target="_top">boost/date_time/posix_time/time_serialize.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis">
+ <a class="link" href="../BOOST_SERIALIZATION_SPL_id358564.html" title="Function BOOST_SERIALIZATION_SPLIT_FREE"><span class="identifier">BOOST_SERIALIZATION_SPLIT_FREE</span></a><span class="special">(</span><a class="link" href="../boost/posix_time/ptime.html" title="Class ptime">boost::posix_time::ptime</a><span class="special">)</span><span class="special">;</span></pre>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="local_time_reference"></a>Local Time Reference</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.local_time.conversion_hpp">Header &lt;boost/date_time/local_time/conversion.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.local_time.custom_time_zone_hpp">Header &lt;boost/date_time/local_time/custom_time_zone.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.local_time.date_duration_operators_hpp">Header &lt;boost/date_time/local_time/date_duration_operators.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.local_time.dst_transition_day_rules_hpp">Header &lt;boost/date_time/local_time/dst_transition_day_rules.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.local_time.local_date_time_hpp">Header &lt;boost/date_time/local_time/local_date_time.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.local_time.local_time_io_hpp">Header &lt;boost/date_time/local_time/local_time_io.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.local_time.local_time_types_hpp">Header &lt;boost/date_time/local_time/local_time_types.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.local_time.posix_time_zone_hpp">Header &lt;boost/date_time/local_time/posix_time_zone.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#header.boost.date_time.local_time.tz_database_hpp">Header &lt;boost/date_time/local_time/tz_database.hpp&gt;</a></span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.local_time.conversion_hpp"></a>Header &lt;<a href="../../../boost/date_time/local_time/conversion.hpp" target="_top">boost/date_time/local_time/conversion.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">local_time</span> <span class="special">{</span>
+
+ <span class="comment">// Function that creates a tm struct from a local_date_time. </span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">tm</span> <a name="boost.local_time.to_tm_id695949"></a><span class="identifier">to_tm</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a> <span class="special">&amp;</span> lt<span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.local_time.custom_time_zone_hpp"></a>Header &lt;<a href="../../../boost/date_time/local_time/custom_time_zone.hpp" target="_top">boost/date_time/local_time/custom_time_zone.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">local_time</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/local_time/custom_time_zone_base.html" title="Class template custom_time_zone_base">custom_time_zone_base</a><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">dst_adjustment_offsets</span><span class="special">&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">time_duration</span> <span class="special">&gt;</span> <a name="boost.local_time.dst_adjustment_offsets"></a><span class="identifier">dst_adjustment_offsets</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span> <span class="identifier">dst_calc_rule</span> <span class="special">&gt;</span> <a name="boost.local_time.dst_calc_rule_ptr"></a><span class="identifier">dst_calc_rule_ptr</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <a class="link" href="../boost/local_time/custom_time_zone_base.html" title="Class template custom_time_zone_base">custom_time_zone_base</a><span class="special">&lt;</span> <span class="keyword">char</span> <span class="special">&gt;</span> <a name="boost.local_time.custom_time_zone"></a><span class="identifier">custom_time_zone</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.local_time.date_duration_operators_hpp"></a>Header &lt;<a href="../../../boost/date_time/local_time/date_duration_operators.hpp" target="_top">boost/date_time/local_time/date_duration_operators.hpp</a>&gt;</h4></div></div></div>
+<p>Operators for local_date_time and optional gregorian types. Operators use snap-to-end-of-month behavior. Further details on this behavior can be found in reference for date_time/date_duration_types.hpp and documentation for month and year iterators. </p>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">local_time</span> <span class="special">{</span>
+ <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a>
+ <a class="link" href="../boost/local_time/operator__id702493.html" title="Function operator+"><span class="keyword">operator</span><span class="special">+</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">months</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a>
+ <a class="link" href="../boost/local_time/operator___id668989.html" title="Function operator+="><span class="keyword">operator</span><span class="special">+=</span></a><span class="special">(</span><a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">months</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a>
+ <a class="link" href="../boost/local_time/operator-_id684144.html" title="Function operator-"><span class="keyword">operator</span><span class="special">-</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">months</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a>
+ <a class="link" href="../boost/local_time/operator-__id719546.html" title="Function operator-="><span class="keyword">operator</span><span class="special">-=</span></a><span class="special">(</span><a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">months</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a>
+ <a class="link" href="../boost/local_time/operator__id688008.html" title="Function operator+"><span class="keyword">operator</span><span class="special">+</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">years</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a>
+ <a class="link" href="../boost/local_time/operator___id706663.html" title="Function operator+="><span class="keyword">operator</span><span class="special">+=</span></a><span class="special">(</span><a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">years</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a>
+ <a class="link" href="../boost/local_time/operator-_id706690.html" title="Function operator-"><span class="keyword">operator</span><span class="special">-</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">years</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a>
+ <a class="link" href="../boost/local_time/operator-__id706718.html" title="Function operator-="><span class="keyword">operator</span><span class="special">-=</span></a><span class="special">(</span><a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">years</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.local_time.dst_transition_day_rules_hpp"></a>Header &lt;<a href="../../../boost/date_time/local_time/dst_transition_day_rules.hpp" target="_top">boost/date_time/local_time/dst_transition_day_rules.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">local_time</span> <span class="special">{</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/local_time/partial_date_rule_spec.html" title="Struct partial_date_rule_spec">partial_date_rule_spec</a><span class="special">;</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/local_time/first_last_rule_spec.html" title="Struct first_last_rule_spec">first_last_rule_spec</a><span class="special">;</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/local_time/last_last_rule_spec.html" title="Struct last_last_rule_spec">last_last_rule_spec</a><span class="special">;</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/local_time/nth_last_rule_spec.html" title="Struct nth_last_rule_spec">nth_last_rule_spec</a><span class="special">;</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/local_time/nth_kday_rule_spec.html" title="Struct nth_kday_rule_spec">nth_kday_rule_spec</a><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">dst_day_calc_rule</span><span class="special">&lt;</span> <span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">date</span> <span class="special">&gt;</span> <a name="boost.local_time.dst_calc_rule"></a><span class="identifier">dst_calc_rule</span><span class="special">;</span> <span class="comment">// Provides rule of the form starting Apr 30 ending Oct 21. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">day_calc_dst_rule</span><span class="special">&lt;</span> <a class="link" href="../boost/local_time/partial_date_rule_spec.html" title="Struct partial_date_rule_spec">partial_date_rule_spec</a> <span class="special">&gt;</span> <a name="boost.local_time.partial_date_dst_rule"></a><span class="identifier">partial_date_dst_rule</span><span class="special">;</span> <span class="comment">// Provides rule of the form first Sunday in April, last Saturday in Oct. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">day_calc_dst_rule</span><span class="special">&lt;</span> <a class="link" href="../boost/local_time/first_last_rule_spec.html" title="Struct first_last_rule_spec">first_last_rule_spec</a> <span class="special">&gt;</span> <a name="boost.local_time.first_last_dst_rule"></a><span class="identifier">first_last_dst_rule</span><span class="special">;</span> <span class="comment">// Provides rule of the form first Sunday in April, last Saturday in Oct. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">day_calc_dst_rule</span><span class="special">&lt;</span> <a class="link" href="../boost/local_time/last_last_rule_spec.html" title="Struct last_last_rule_spec">last_last_rule_spec</a> <span class="special">&gt;</span> <a name="boost.local_time.last_last_dst_rule"></a><span class="identifier">last_last_dst_rule</span><span class="special">;</span> <span class="comment">// Provides rule of the form last Sunday in April, last Saturday in Oct. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">day_calc_dst_rule</span><span class="special">&lt;</span> <a class="link" href="../boost/local_time/nth_last_rule_spec.html" title="Struct nth_last_rule_spec">nth_last_rule_spec</a> <span class="special">&gt;</span> <a name="boost.local_time.nth_last_dst_rule"></a><span class="identifier">nth_last_dst_rule</span><span class="special">;</span> <span class="comment">// Provides rule in form of [1st|2nd|3rd|4th] Sunday in April, last Sunday in Oct. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">day_calc_dst_rule</span><span class="special">&lt;</span> <a class="link" href="../boost/local_time/nth_kday_rule_spec.html" title="Struct nth_kday_rule_spec">nth_kday_rule_spec</a> <span class="special">&gt;</span> <a name="boost.local_time.nth_kday_dst_rule"></a><span class="identifier">nth_kday_dst_rule</span><span class="special">;</span> <span class="comment">// Provides rule in form of [1st|2nd|3rd|4th] Sunday in April/October. </span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">day_calc_dst_rule</span><span class="special">&lt;</span> <a class="link" href="../boost/local_time/nth_kday_rule_spec.html" title="Struct nth_kday_rule_spec">nth_kday_rule_spec</a> <span class="special">&gt;</span> <a name="boost.local_time.nth_day_of_the_week_in__id702211"></a><span class="identifier">nth_day_of_the_week_in_month_dst_rule</span><span class="special">;</span> <span class="comment">// Provides rule in form of [1st|2nd|3rd|4th] Sunday in April/October. </span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.local_time.local_date_time_hpp"></a>Header &lt;<a href="../../../boost/date_time/local_time/local_date_time.hpp" target="_top">boost/date_time/local_time/local_date_time.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">local_time</span> <span class="special">{</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/local_time/ambiguous_result.html" title="Struct ambiguous_result">ambiguous_result</a><span class="special">;</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/local_time/time_label_invalid.html" title="Struct time_label_invalid">time_label_invalid</a><span class="special">;</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/local_time/dst_not_valid.html" title="Struct dst_not_valid">dst_not_valid</a><span class="special">;</span>
+
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> utc_time_ <span class="special">=</span> <span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">ptime</span><span class="special">,</span>
+ <span class="keyword">typename</span> tz_type <span class="special">=</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">time_zone_base</span><span class="special">&lt;</span><span class="identifier">utc_time_</span><span class="special">,</span><span class="keyword">char</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="keyword">class</span> <a class="link" href="../boost/local_time/local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <a class="link" href="../boost/local_time/local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a> <a name="boost.local_time.local_date_time"></a><span class="identifier">local_date_time</span><span class="special">;</span> <span class="comment">// Use the default parameters to define local_date_time. </span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.local_time.local_time_io_hpp"></a>Header &lt;<a href="../../../boost/date_time/local_time/local_time_io.hpp" target="_top">boost/date_time/local_time/local_time_io.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">local_time</span> <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">time_facet</span><span class="special">&lt;</span> <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a><span class="special">,</span> <span class="keyword">wchar_t</span> <span class="special">&gt;</span> <a name="boost.local_time.wlocal_time_facet"></a><span class="identifier">wlocal_time_facet</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">time_facet</span><span class="special">&lt;</span> <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a><span class="special">,</span> <span class="keyword">char</span> <span class="special">&gt;</span> <a name="boost.local_time.local_time_facet"></a><span class="identifier">local_time_facet</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">time_input_facet</span><span class="special">&lt;</span> <span class="identifier">local_date_time</span><span class="special">::</span><span class="identifier">utc_time_type</span><span class="special">,</span> <span class="keyword">wchar_t</span> <span class="special">&gt;</span> <a name="boost.local_time.wlocal_time_input_facet"></a><span class="identifier">wlocal_time_input_facet</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">time_input_facet</span><span class="special">&lt;</span> <span class="identifier">local_date_time</span><span class="special">::</span><span class="identifier">utc_time_type</span><span class="special">,</span> <span class="keyword">char</span> <span class="special">&gt;</span> <a name="boost.local_time.local_time_input_facet"></a><span class="identifier">local_time_input_facet</span><span class="special">;</span>
+
+ <span class="comment">// operator&lt;&lt; for local_date_time - see local_time docs for formatting details </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> TraitsT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.local_time.operator_id711763"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a> <span class="special">&amp;</span> ldt<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// input operator for local_date_time </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.local_time.operator_id711799"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span>
+ <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a> <span class="special">&amp;</span> ldt<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// output operator for local_time_period </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> TraitsT<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.local_time.operator_id711834"></a><span class="keyword">operator</span><span class="special">&lt;&lt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span> os<span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">local_time</span><span class="special">::</span><span class="identifier">local_time_period</span> <span class="special">&amp;</span> p<span class="special">)</span><span class="special">;</span>
+
+ <span class="comment">// input operator for local_time_period </span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span>
+ <a name="boost.local_time.operator_id472728"></a><span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> is<span class="special">,</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">local_time</span><span class="special">::</span><span class="identifier">local_time_period</span> <span class="special">&amp;</span> tp<span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.local_time.local_time_types_hpp"></a>Header &lt;<a href="../../../boost/date_time/local_time/local_time_types.hpp" target="_top">boost/date_time/local_time/local_time_types.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">local_time</span> <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">date_time</span><span class="special">::</span><span class="identifier">period</span><span class="special">&lt;</span> <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">time_duration</span> <span class="special">&gt;</span> <a name="boost.local_time.local_time_period"></a><span class="identifier">local_time_period</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">time_itr</span><span class="special">&lt;</span> <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a> <span class="special">&gt;</span> <a name="boost.local_time.local_time_iterator"></a><span class="identifier">local_time_iterator</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">second_clock</span><span class="special">&lt;</span> <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a> <span class="special">&gt;</span> <a name="boost.local_time.local_sec_clock"></a><span class="identifier">local_sec_clock</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">microsec_clock</span><span class="special">&lt;</span> <a class="link" href="doxy.html#boost.local_time.local_date_time">local_date_time</a> <span class="special">&gt;</span> <a name="boost.local_time.local_microsec_clock"></a><span class="identifier">local_microsec_clock</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">time_zone_base</span><span class="special">&lt;</span> <span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">ptime</span><span class="special">,</span> <span class="keyword">char</span> <span class="special">&gt;</span> <a name="boost.local_time.time_zone"></a><span class="identifier">time_zone</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">time_zone_base</span><span class="special">&lt;</span> <span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">ptime</span><span class="special">,</span> <span class="keyword">wchar_t</span> <span class="special">&gt;</span> <a name="boost.local_time.wtime_zone"></a><span class="identifier">wtime_zone</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span> <span class="identifier">time_zone</span> <span class="special">&gt;</span> <a name="boost.local_time.time_zone_ptr"></a><span class="identifier">time_zone_ptr</span><span class="special">;</span> <span class="comment">// Shared Pointer for custom_time_zone and posix_time_zone objects. </span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span> <span class="identifier">wtime_zone</span> <span class="special">&gt;</span> <a name="boost.local_time.wtime_zone_ptr"></a><span class="identifier">wtime_zone_ptr</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">time_zone_names_base</span><span class="special">&lt;</span> <span class="keyword">char</span> <span class="special">&gt;</span> <a name="boost.local_time.time_zone_names"></a><span class="identifier">time_zone_names</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">time_zone_names_base</span><span class="special">&lt;</span> <span class="keyword">wchar_t</span> <span class="special">&gt;</span> <a name="boost.local_time.wtime_zone_names"></a><span class="identifier">wtime_zone_names</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.local_time.posix_time_zone_hpp"></a>Header &lt;<a href="../../../boost/date_time/local_time/posix_time_zone.hpp" target="_top">boost/date_time/local_time/posix_time_zone.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">local_time</span> <span class="special">{</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/local_time/bad_offset.html" title="Struct bad_offset">bad_offset</a><span class="special">;</span>
+ <span class="keyword">struct</span> <a class="link" href="../boost/local_time/bad_adjustment.html" title="Struct bad_adjustment">bad_adjustment</a><span class="special">;</span>
+
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/local_time/posix_time_zone_base.html" title="Class template posix_time_zone_base">posix_time_zone_base</a><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <a class="link" href="../boost/local_time/posix_time_zone_base.html" title="Class template posix_time_zone_base">posix_time_zone_base</a><span class="special">&lt;</span> <span class="keyword">char</span> <span class="special">&gt;</span> <a name="boost.local_time.posix_time_zone"></a><span class="identifier">posix_time_zone</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.date_time.local_time.tz_database_hpp"></a>Header &lt;<a href="../../../boost/date_time/local_time/tz_database.hpp" target="_top">boost/date_time/local_time/tz_database.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">local_time</span> <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">date_time</span><span class="special">::</span><span class="identifier">tz_db_base</span><span class="special">&lt;</span> <a class="link" href="doxy.html#boost.local_time.custom_time_zone">custom_time_zone</a><span class="special">,</span> <span class="identifier">nth_kday_dst_rule</span> <span class="special">&gt;</span> <a class="link" href="../boost/local_time/tz_database.html" title="Type definition tz_database"><span class="identifier">tz_database</span></a><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2005 CrystalClear Software, Inc<p>Subject to the Boost Software License, Version 1.0. (See accompanying file
+ <code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="examples.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../boost/date_time/day_functor.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_time/examples.html b/doc/html/date_time/examples.html
new file mode 100755
index 0000000000..54688d5198
--- /dev/null
+++ b/doc/html/date_time/examples.html
@@ -0,0 +1,1165 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Examples</title>
+<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
+<link rel="up" href="../date_time.html" title="Chapter&#160;7.&#160;Boost.Date_Time">
+<link rel="prev" href="details.html" title="Details">
+<link rel="next" href="doxy.html" title="Library Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.html">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
+<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="details.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="doxy.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="date_time.examples"></a>Examples</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="examples.html#date_time.examples.dates_as_strings">Dates as Strings</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.days_alive">Days Alive</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.days_between_new_year">Days Between New Years</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.end_of_month_day">Last Day of the Months</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.localization">Localization Demonstration</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.date_period_calc">Date Period Calculations</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.print_holidays">Print Holidays</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.print_month">Print Month</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.month_add">Month Adding</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.time_math">Time Math</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.print_hours">Print Hours</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.local_utc_conversion">Local to UTC Conversion</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.time_periods">Time Periods</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.simple_time_zone">Simple Time Zones</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.calc_rules">Daylight Savings Calc Rules</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.flight">Flight Time Example</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.seconds_since_epoch">Seconds Since Epoch</a></span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.examples.dates_as_strings"></a>Dates as Strings</h3></div></div></div>
+<p>
+ Various parsing and output of strings.
+ </p>
+<pre class="programlisting">
+
+
+ /* The following is a simple example that shows conversion of dates
+ * to and from a std::string.
+ *
+ * Expected output:
+ * 2001-Oct-09
+ * 2001-10-09
+ * Tuesday October 9, 2001
+ * An expected exception is next:
+ * Exception: Month number is out of range 1..12
+ */
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include &lt;iostream&gt;
+ #include &lt;string&gt;
+
+ int
+ main()
+ {
+
+ using namespace boost::gregorian;
+
+ try {
+ // The following date is in ISO 8601 extended format (CCYY-MM-DD)
+ std::string s("2001-10-9"); //2001-October-09
+ date d(from_simple_string(s));
+ std::cout &lt;&lt; to_simple_string(d) &lt;&lt; std::endl;
+
+ //Read ISO Standard(CCYYMMDD) and output ISO Extended
+ std::string ud("20011009"); //2001-Oct-09
+ date d1(from_undelimited_string(ud));
+ std::cout &lt;&lt; to_iso_extended_string(d1) &lt;&lt; std::endl;
+
+ //Output the parts of the date - Tuesday October 9, 2001
+ date::ymd_type ymd = d1.year_month_day();
+ greg_weekday wd = d1.day_of_week();
+ std::cout &lt;&lt; wd.as_long_string() &lt;&lt; " "
+ &lt;&lt; ymd.month.as_long_string() &lt;&lt; " "
+ &lt;&lt; ymd.day &lt;&lt; ", " &lt;&lt; ymd.year
+ &lt;&lt; std::endl;
+
+ //Let's send in month 25 by accident and create an exception
+ std::string bad_date("20012509"); //2001-??-09
+ std::cout &lt;&lt; "An expected exception is next: " &lt;&lt; std::endl;
+ date wont_construct(from_undelimited_string(bad_date));
+ //use wont_construct so compiler doesn't complain, but you wont get here!
+ std::cout &lt;&lt; "oh oh, you shouldn't reach this line: "
+ &lt;&lt; to_iso_string(wont_construct) &lt;&lt; std::endl;
+ }
+ catch(std::exception&amp; e) {
+ std::cout &lt;&lt; " Exception: " &lt;&lt; e.what() &lt;&lt; std::endl;
+ }
+
+
+ return 0;
+ }
+
+
+ </pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.examples.days_alive"></a>Days Alive</h3></div></div></div>
+<p>
+ Calculate the number of days you have been living using durations and dates.
+ </p>
+<pre class="programlisting">
+<code class="literal">
+<span class="comment">/* Short example that calculates the number of days since user was born.
+ * Demonstrates comparisons of durations, use of the day_clock,
+ * and parsing a date from a string.
+ */</span><span class="preprocessor">
+
+#include</span><span class="string"> "boost/date_time/gregorian/gregorian.hpp"</span><span class="preprocessor">
+#include</span><span class="special"> &lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span><span class="keyword">
+
+int</span><span class="identifier">
+main</span><span class="special">()</span><span class="special">
+{</span><span class="keyword">
+
+ using</span><span class="keyword"> namespace</span><span class="identifier"> boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">;</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">string</span><span class="identifier"> s</span><span class="special">;</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">cout</span><span class="special"> &lt;&lt;</span><span class="string"> "Enter birth day YYYY-MM-DD (eg: 2002-02-01): "</span><span class="special">;</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">cin</span><span class="special"> &gt;&gt;</span><span class="identifier"> s</span><span class="special">;</span><span class="keyword">
+ try</span><span class="special"> {</span><span class="identifier">
+ date</span><span class="identifier"> birthday</span><span class="special">(</span><span class="identifier">from_simple_string</span><span class="special">(</span><span class="identifier">s</span><span class="special">));</span><span class="identifier">
+ date</span><span class="identifier"> today</span><span class="special"> =</span><span class="identifier"> day_clock</span><span class="special">::</span><span class="identifier">local_day</span><span class="special">();</span><span class="identifier">
+ days</span><span class="identifier"> days_alive</span><span class="special"> =</span><span class="identifier"> today</span><span class="special"> -</span><span class="identifier"> birthday</span><span class="special">;</span><span class="identifier">
+ days</span><span class="identifier"> one_day</span><span class="special">(</span><span class="number">1</span><span class="special">);</span><span class="keyword">
+ if</span><span class="special"> (</span><span class="identifier">days_alive</span><span class="special"> ==</span><span class="identifier"> one_day</span><span class="special">)</span><span class="special"> {</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">cout</span><span class="special"> &lt;&lt;</span><span class="string"> "Born yesterday, very funny"</span><span class="special"> &lt;&lt;</span><span class="identifier"> std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span><span class="special">
+ }</span><span class="keyword">
+ else</span><span class="keyword"> if</span><span class="special"> (</span><span class="identifier">days_alive</span><span class="special"> &lt;</span><span class="identifier"> days</span><span class="special">(</span><span class="number">0</span><span class="special">))</span><span class="special"> {</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">cout</span><span class="special"> &lt;&lt;</span><span class="string"> "Not born yet, hmm: "</span><span class="special"> &lt;&lt;</span><span class="identifier"> days_alive</span><span class="special">.</span><span class="identifier">days</span><span class="special">()</span><span class="special">
+ &lt;&lt;</span><span class="string"> " days"</span><span class="special"> &lt;&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span><span class="special">
+ }</span><span class="keyword">
+ else</span><span class="special"> {</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">cout</span><span class="special"> &lt;&lt;</span><span class="string"> "Days alive: "</span><span class="special"> &lt;&lt;</span><span class="identifier"> days_alive</span><span class="special">.</span><span class="identifier">days</span><span class="special">()</span><span class="special"> &lt;&lt;</span><span class="identifier"> std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span><span class="special">
+ }</span><span class="special">
+
+ }</span><span class="keyword">
+ catch</span><span class="special">(...)</span><span class="special"> {</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">cout</span><span class="special"> &lt;&lt;</span><span class="string"> "Bad date entered: "</span><span class="special"> &lt;&lt;</span><span class="identifier"> s</span><span class="special"> &lt;&lt;</span><span class="identifier"> std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span><span class="special">
+ }</span><span class="keyword">
+ return</span><span class="number"> 0</span><span class="special">;</span><span class="special">
+}</span>
+</code>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.examples.days_between_new_year"></a>Days Between New Years</h3></div></div></div>
+<p>
+ Calculate the number of days till new years
+ </p>
+<pre class="programlisting">
+
+ /* Provides a simple example of using a date_generator, and simple
+ * mathematical operatorations, to calculate the days since
+ * New Years day of this year, and days until next New Years day.
+ *
+ * Expected results:
+ * Adding together both durations will produce 366 (365 in a leap year).
+ */
+ #include &lt;iostream&gt;
+ #include "boost/date_time/gregorian/gregorian.hpp"
+
+ int
+ main()
+ {
+
+ using namespace boost::gregorian;
+
+ date today = day_clock::local_day();
+ partial_date new_years_day(1,Jan);
+ //Subtract two dates to get a duration
+ days days_since_year_start = today - new_years_day.get_date(today.year());
+ std::cout &lt;&lt; "Days since Jan 1: " &lt;&lt; days_since_year_start.days()
+ &lt;&lt; std::endl;
+
+ days days_until_year_start = new_years_day.get_date(today.year()+1) - today;
+ std::cout &lt;&lt; "Days until next Jan 1: " &lt;&lt; days_until_year_start.days()
+ &lt;&lt; std::endl;
+ return 0;
+ };
+
+
+ </pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.examples.end_of_month_day"></a>Last Day of the Months</h3></div></div></div>
+<p>
+ Example that gets a month and a year from the user and finds the last day of each remaining month of that year.
+ </p>
+<pre class="programlisting">
+
+ /* Simple program that finds the last day of the given month,
+ * then displays the last day of every month left in the given year.
+ */
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include &lt;iostream&gt;
+
+ int
+ main()
+ {
+ using namespace boost::gregorian;
+
+ greg_year year(1400);
+ greg_month month(1);
+
+ // get a month and a year from the user
+ try {
+ int y, m;
+ std::cout &lt;&lt; " Enter Year(ex: 2002): ";
+ std::cin &gt;&gt; y;
+ year = greg_year(y);
+ std::cout &lt;&lt; " Enter Month(1..12): ";
+ std::cin &gt;&gt; m;
+ month = greg_month(m);
+ }
+ catch(bad_year by) {
+ std::cout &lt;&lt; "Invalid Year Entered: " &lt;&lt; by.what() &lt;&lt; '\n'
+ &lt;&lt; "Using minimum values for month and year." &lt;&lt; std::endl;
+ }
+ catch(bad_month bm) {
+ std::cout &lt;&lt; "Invalid Month Entered" &lt;&lt; bm.what() &lt;&lt; '\n'
+ &lt;&lt; "Using minimum value for month. " &lt;&lt; std::endl;
+ }
+
+ date start_of_next_year(year+1, Jan, 1);
+ date d(year, month, 1);
+
+ // add another month to d until we enter the next year.
+ while (d &lt; start_of_next_year){
+ std::cout &lt;&lt; to_simple_string(d.end_of_month()) &lt;&lt; std::endl;
+ d += months(1);
+ }
+
+ return 0;
+ }
+
+
+ </pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.examples.localization"></a>Localization Demonstration</h3></div></div></div>
+<p>
+ The boost::date_time library provides the ability to create customized locale facets. Date ordering, language, seperators, and abbreviations can be customized.
+ </p>
+<pre class="programlisting">
+
+ /* The following shows the creation of a facet for the output of
+ * dates in German (please forgive me for any errors in my German --
+ * I'm not a native speaker).
+ */
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include &lt;iostream&gt;
+ #include &lt;algorithm&gt;
+
+ /* Define a series of char arrays for short and long name strings
+ * to be associated with German date output (US names will be
+ * retrieved from the locale). */
+ const char* const de_short_month_names[] =
+ {
+ "Jan", "Feb", "Mar", "Apr", "Mai", "Jun",
+ "Jul", "Aug", "Sep", "Okt", "Nov", "Dez", "NAM"
+ };
+ const char* const de_long_month_names[] =
+ {
+ "Januar", "Februar", "Marz", "April", "Mai",
+ "Juni", "Juli", "August", "September", "Oktober",
+ "November", "Dezember", "NichtDerMonat"
+ };
+ const char* const de_long_weekday_names[] =
+ {
+ "Sonntag", "Montag", "Dienstag", "Mittwoch",
+ "Donnerstag", "Freitag", "Samstag"
+ };
+ const char* const de_short_weekday_names[] =
+ {
+ "Son", "Mon", "Die","Mit", "Don", "Fre", "Sam"
+ };
+
+
+ int main()
+ {
+ using namespace boost::gregorian;
+
+ // create some gregorian objects to output
+ date d1(2002, Oct, 1);
+ greg_month m = d1.month();
+ greg_weekday wd = d1.day_of_week();
+
+ // create a facet and a locale for German dates
+ date_facet* german_facet = new date_facet();
+ std::cout.imbue(std::locale(std::locale::classic(), german_facet));
+
+ // create the German name collections
+ date_facet::input_collection_type short_months, long_months,
+ short_weekdays, long_weekdays;
+ std::copy(&amp;de_short_month_names[0], &amp;de_short_month_names[11],
+ std::back_inserter(short_months));
+ std::copy(&amp;de_long_month_names[0], &amp;de_long_month_names[11],
+ std::back_inserter(long_months));
+ std::copy(&amp;de_short_weekday_names[0], &amp;de_short_weekday_names[6],
+ std::back_inserter(short_weekdays));
+ std::copy(&amp;de_long_weekday_names[0], &amp;de_long_weekday_names[6],
+ std::back_inserter(long_weekdays));
+
+ // replace the default names with ours
+ // NOTE: date_generators and special_values were not replaced as
+ // they are not used in this example
+ german_facet-&gt;short_month_names(short_months);
+ german_facet-&gt;long_month_names(long_months);
+ german_facet-&gt;short_weekday_names(short_weekdays);
+ german_facet-&gt;long_weekday_names(long_weekdays);
+
+ // output the date in German using short month names
+ german_facet-&gt;format("%d.%m.%Y");
+ std::cout &lt;&lt; d1 &lt;&lt; std::endl; //01.10.2002
+
+ german_facet-&gt;month_format("%B");
+ std::cout &lt;&lt; m &lt;&lt; std::endl; //Oktober
+
+ german_facet-&gt;weekday_format("%A");
+ std::cout &lt;&lt; wd &lt;&lt; std::endl; //Dienstag
+
+
+ // Output the same gregorian objects using US names
+ date_facet* us_facet = new date_facet();
+ std::cout.imbue(std::locale(std::locale::classic(), us_facet));
+
+ us_facet-&gt;format("%m/%d/%Y");
+ std::cout &lt;&lt; d1 &lt;&lt; std::endl; // 10/01/2002
+
+ // English names, iso order (year-month-day), '-' separator
+ us_facet-&gt;format("%Y-%b-%d");
+ std::cout &lt;&lt; d1 &lt;&lt; std::endl; // 2002-Oct-01
+
+ return 0;
+
+ }
+
+ </pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.examples.date_period_calc"></a>Date Period Calculations</h3></div></div></div>
+<p>
+ Calculates if a date is in an 'irregular' collection of periods using period calculation functions.
+ </p>
+<pre class="programlisting">
+
+ /*
+ This example demonstrates a simple use of periods for the calculation
+ of date information.
+
+ The example calculates if a given date is a weekend or holiday
+ given an exclusion set. That is, each weekend or holiday is
+ entered into the set as a time interval. Then if a given date
+ is contained within any of the intervals it is considered to
+ be within the exclusion set and hence is a offtime.
+
+ Output:
+ Number Excluded Periods: 5
+ 20020202/20020203
+ 20020209/20020210
+ 20020212/20020212
+ 20020216/20020217
+ In Exclusion Period: 20020216 --&gt; 20020216/20020217
+ 20020223/20020224
+
+ */
+
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include &lt;set&gt;
+ #include &lt;algorithm&gt;
+ #include &lt;iostream&gt;
+
+ typedef std::set&lt;boost::gregorian::date_period&gt; date_period_set;
+
+ //Simple population of the exclusion set
+ date_period_set
+ generateExclusion()
+ {
+ using namespace boost::gregorian;
+ date_period periods_array[] =
+ { date_period(date(2002,Feb,2), date(2002,Feb,4)),//weekend of 2nd-3rd
+ date_period(date(2002,Feb,9), date(2002,Feb,11)),
+ date_period(date(2002,Feb,16), date(2002,Feb,18)),
+ date_period(date(2002,Feb,23), date(2002,Feb,25)),
+ date_period(date(2002,Feb,12), date(2002,Feb,13))//a random holiday 2-12
+ };
+ const int num_periods = sizeof(periods_array)/sizeof(date_period);
+
+ date_period_set ps;
+ //insert the periods in the set
+ std::insert_iterator&lt;date_period_set&gt; itr(ps, ps.begin());
+ std::copy(periods_array, periods_array+num_periods, itr );
+ return ps;
+
+ }
+
+
+ int main()
+ {
+ using namespace boost::gregorian;
+
+ date_period_set ps = generateExclusion();
+ std::cout &lt;&lt; "Number Excluded Periods: " &lt;&lt; ps.size() &lt;&lt; std::endl;
+
+ date d(2002,Feb,16);
+ date_period_set::const_iterator i = ps.begin();
+ //print the periods, check for containment
+ for (;i != ps.end(); i++) {
+ std::cout &lt;&lt; to_iso_string(*i) &lt;&lt; std::endl;
+ //if date is in exclusion period then print it
+ if (i-&gt;contains(d)) {
+ std::cout &lt;&lt; "In Exclusion Period: "
+ &lt;&lt; to_iso_string(d) &lt;&lt; " --&gt; " &lt;&lt; to_iso_string(*i)
+ &lt;&lt; std::endl;
+ }
+ }
+
+ return 0;
+
+ }
+
+
+ </pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.examples.print_holidays"></a>Print Holidays</h3></div></div></div>
+<p>
+ This is an example of using functors to define a holiday schedule
+ </p>
+<pre class="programlisting">
+
+
+ /* Generate a set of dates using a collection of date generators
+ * Output looks like:
+ * Enter Year: 2002
+ * 2002-Jan-01 [Tue]
+ * 2002-Jan-21 [Mon]
+ * 2002-Feb-12 [Tue]
+ * 2002-Jul-04 [Thu]
+ * 2002-Sep-02 [Mon]
+ * 2002-Nov-28 [Thu]
+ * 2002-Dec-25 [Wed]
+ * Number Holidays: 7
+ */
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include &lt;algorithm&gt;
+ #include &lt;functional&gt;
+ #include &lt;vector&gt;
+ #include &lt;iostream&gt;
+ #include &lt;set&gt;
+
+ void
+ print_date(boost::gregorian::date d)
+ {
+ using namespace boost::gregorian;
+ #if defined(BOOST_DATE_TIME_NO_LOCALE)
+ std::cout &lt;&lt; to_simple_string(d) &lt;&lt; " [" &lt;&lt; d.day_of_week() &lt;&lt; "]\n";
+ #else
+ std::cout &lt;&lt; d &lt;&lt; " [" &lt;&lt; d.day_of_week() &lt;&lt; "]\n";
+ #endif
+ }
+
+
+ int
+ main() {
+
+ std::cout &lt;&lt; "Enter Year: ";
+ int year;
+ std::cin &gt;&gt; year;
+
+ using namespace boost::gregorian;
+
+ //define a collection of holidays fixed by month and day
+ std::vector&lt;year_based_generator*&gt; holidays;
+ holidays.push_back(new partial_date(1,Jan)); //Western New Year
+ holidays.push_back(new partial_date(4,Jul)); //US Independence Day
+ holidays.push_back(new partial_date(25, Dec));//Christmas day
+
+
+ //define a shorthand for the nth_day_of_the_week_in_month function object
+ typedef nth_day_of_the_week_in_month nth_dow;
+
+ //US labor day
+ holidays.push_back(new nth_dow(nth_dow::first, Monday, Sep));
+ //MLK Day
+ holidays.push_back(new nth_dow(nth_dow::third, Monday, Jan));
+ //Pres day
+ holidays.push_back(new nth_dow(nth_dow::second, Tuesday, Feb));
+ //Thanksgiving
+ holidays.push_back(new nth_dow(nth_dow::fourth, Thursday, Nov));
+
+ typedef std::set&lt;date&gt; date_set;
+ date_set all_holidays;
+
+ for(std::vector&lt;year_based_generator*&gt;::iterator it = holidays.begin();
+ it != holidays.end(); ++it)
+ {
+ all_holidays.insert((*it)-&gt;get_date(year));
+ }
+
+ //print the holidays to the screen
+ std::for_each(all_holidays.begin(), all_holidays.end(), print_date);
+ std::cout &lt;&lt; "Number Holidays: " &lt;&lt; all_holidays.size() &lt;&lt; std::endl;
+
+ return 0;
+ }
+
+
+ </pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.examples.print_month"></a>Print Month</h3></div></div></div>
+<p>
+ Simple utility to print out days of the month with the days of a month. Demontstrates date iteration (date_time::date_itr).
+ </p>
+<pre class="programlisting">
+
+ /* This example prints all the dates in a month. It demonstrates
+ * the use of iterators as well as functions of the gregorian_calendar
+ *
+ * Output:
+ * Enter Year: 2002
+ * Enter Month(1..12): 2
+ * 2002-Feb-01 [Fri]
+ * 2002-Feb-02 [Sat]
+ * 2002-Feb-03 [Sun]
+ * 2002-Feb-04 [Mon]
+ * 2002-Feb-05 [Tue]
+ * 2002-Feb-06 [Wed]
+ * 2002-Feb-07 [Thu]
+ */
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include &lt;iostream&gt;
+
+ int
+ main()
+ {
+ std::cout &lt;&lt; "Enter Year: ";
+ int year, month;
+ std::cin &gt;&gt; year;
+ std::cout &lt;&lt; "Enter Month(1..12): ";
+ std::cin &gt;&gt; month;
+
+ using namespace boost::gregorian;
+ try {
+ //Use the calendar to get the last day of the month
+ int eom_day = gregorian_calendar::end_of_month_day(year,month);
+ date endOfMonth(year,month,eom_day);
+
+ //construct an iterator starting with firt day of the month
+ day_iterator ditr(date(year,month,1));
+ //loop thru the days and print each one
+ for (; ditr &lt;= endOfMonth; ++ditr) {
+ #if defined(BOOST_DATE_TIME_NO_LOCALE)
+ std::cout &lt;&lt; to_simple_string(*ditr) &lt;&lt; " ["
+ #else
+ std::cout &lt;&lt; *ditr &lt;&lt; " ["
+ #endif
+ &lt;&lt; ditr-&gt;day_of_week() &lt;&lt; "]"
+ &lt;&lt; std::endl;
+ }
+ }
+ catch(std::exception&amp; e) {
+
+ std::cout &lt;&lt; "Error bad date, check your entry: \n"
+ &lt;&lt; " Details: " &lt;&lt; e.what() &lt;&lt; std::endl;
+ }
+ return 0;
+ }
+
+
+ </pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.examples.month_add"></a>Month Adding</h3></div></div></div>
+<p>
+ Adding a month to a day without the use of iterators.
+ </p>
+<pre class="programlisting">
+
+ /* Simple program that uses the gregorian calendar to progress by exactly
+ * one month, irregardless of how many days are in that month.
+ *
+ * This method can be used as an alternative to iterators
+ */
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include &lt;iostream&gt;
+
+ int
+ main()
+ {
+
+ using namespace boost::gregorian;
+
+ date d = day_clock::local_day();
+ add_month mf(1);
+ date d2 = d + mf.get_offset(d);
+ std::cout &lt;&lt; "Today is: " &lt;&lt; to_simple_string(d) &lt;&lt; ".\n"
+ &lt;&lt; "One month from today will be: " &lt;&lt; to_simple_string(d2)
+ &lt;&lt; std::endl;
+
+ return 0;
+ }
+
+ </pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.examples.time_math"></a>Time Math</h3></div></div></div>
+<p>
+ Various types of calculations with times and time durations.
+ </p>
+<pre class="programlisting">
+
+ /* Some simple examples of constructing and calculating with times
+ * Output:
+ * 2002-Feb-01 00:00:00 - 2002-Feb-01 05:04:02.001000000 = -5:04:02.001000000
+ */
+
+ #include "boost/date_time/posix_time/posix_time.hpp"
+ #include &lt;iostream&gt;
+
+ int
+ main()
+ {
+ using namespace boost::posix_time;
+ using namespace boost::gregorian;
+
+ date d(2002,Feb,1); //an arbitrary date
+ //construct a time by adding up some durations durations
+ ptime t1(d, hours(5)+minutes(4)+seconds(2)+millisec(1));
+ //construct a new time by subtracting some times
+ ptime t2 = t1 - hours(5)- minutes(4)- seconds(2)- millisec(1);
+ //construct a duration by taking the difference between times
+ time_duration td = t2 - t1;
+
+ std::cout &lt;&lt; to_simple_string(t2) &lt;&lt; " - "
+ &lt;&lt; to_simple_string(t1) &lt;&lt; " = "
+ &lt;&lt; to_simple_string(td) &lt;&lt; std::endl;
+
+ return 0;
+ }
+
+ </pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.examples.print_hours"></a>Print Hours</h3></div></div></div>
+<p>
+ Demonstrate time iteration, clock retrieval, and simple calculation.
+ </p>
+<pre class="programlisting">
+
+ /* Print the remaining hours of the day
+ * Uses the clock to get the local time
+ * Use an iterator to iterate over the remaining hours
+ * Retrieve the date part from a time
+ *
+ * Expected Output something like:
+ *
+ * 2002-Mar-08 16:30:59
+ * 2002-Mar-08 17:30:59
+ * 2002-Mar-08 18:30:59
+ * 2002-Mar-08 19:30:59
+ * 2002-Mar-08 20:30:59
+ * 2002-Mar-08 21:30:59
+ * 2002-Mar-08 22:30:59
+ * 2002-Mar-08 23:30:59
+ * Time left till midnight: 07:29:01
+ */
+
+ #include "boost/date_time/posix_time/posix_time.hpp"
+ #include &lt;iostream&gt;
+
+ int
+ main()
+ {
+ using namespace boost::posix_time;
+ using namespace boost::gregorian;
+
+ //get the current time from the clock -- one second resolution
+ ptime now = second_clock::local_time();
+ //Get the date part out of the time
+ date today = now.date();
+ date tommorrow = today + days(1);
+ ptime tommorrow_start(tommorrow); //midnight
+
+ //iterator adds by one hour
+ time_iterator titr(now,hours(1));
+ for (; titr &lt; tommorrow_start; ++titr) {
+ std::cout &lt;&lt; to_simple_string(*titr) &lt;&lt; std::endl;
+ }
+
+ time_duration remaining = tommorrow_start - now;
+ std::cout &lt;&lt; "Time left till midnight: "
+ &lt;&lt; to_simple_string(remaining) &lt;&lt; std::endl;
+ return 0;
+ }
+
+
+ </pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.examples.local_utc_conversion"></a>Local to UTC Conversion</h3></div></div></div>
+<p>
+ Demonstrate utc to local and local to utc calculations including dst.
+ </p>
+<pre class="programlisting">
+
+
+ /* Demonstrate conversions between a local time and utc
+ * Output:
+ *
+ * UTC &lt;--&gt; New York while DST is NOT active (5 hours)
+ * 2001-Dec-31 19:00:00 in New York is 2002-Jan-01 00:00:00 UTC time
+ * 2002-Jan-01 00:00:00 UTC is 2001-Dec-31 19:00:00 New York time
+ *
+ * UTC &lt;--&gt; New York while DST is active (4 hours)
+ * 2002-May-31 20:00:00 in New York is 2002-Jun-01 00:00:00 UTC time
+ * 2002-Jun-01 00:00:00 UTC is 2002-May-31 20:00:00 New York time
+ *
+ * UTC &lt;--&gt; Arizona (7 hours)
+ * 2002-May-31 17:00:00 in Arizona is 2002-Jun-01 00:00:00 UTC time
+ */
+
+ #include "boost/date_time/posix_time/posix_time.hpp"
+ #include "boost/date_time/local_time_adjustor.hpp"
+ #include "boost/date_time/c_local_time_adjustor.hpp"
+ #include &lt;iostream&gt;
+
+ int
+ main()
+ {
+ using namespace boost::posix_time;
+ using namespace boost::gregorian;
+
+ //This local adjustor depends on the machine TZ settings-- highly dangerous!
+ typedef boost::date_time::c_local_adjustor&lt;ptime&gt; local_adj;
+ ptime t10(date(2002,Jan,1), hours(7));
+ ptime t11 = local_adj::utc_to_local(t10);
+ std::cout &lt;&lt; "UTC &lt;--&gt; Zone base on TZ setting" &lt;&lt; std::endl;
+ std::cout &lt;&lt; to_simple_string(t11) &lt;&lt; " in your TZ is "
+ &lt;&lt; to_simple_string(t10) &lt;&lt; " UTC time "
+ &lt;&lt; std::endl;
+ time_duration td = t11 - t10;
+ std::cout &lt;&lt; "A difference of: "
+ &lt;&lt; to_simple_string(td) &lt;&lt; std::endl;
+
+
+ //eastern timezone is utc-5
+ typedef boost::date_time::local_adjustor&lt;ptime, -5, us_dst&gt; us_eastern;
+
+ ptime t1(date(2001,Dec,31), hours(19)); //5 hours b/f midnight NY time
+
+ std::cout &lt;&lt; "\nUTC &lt;--&gt; New York while DST is NOT active (5 hours)"
+ &lt;&lt; std::endl;
+ ptime t2 = us_eastern::local_to_utc(t1);
+ std::cout &lt;&lt; to_simple_string(t1) &lt;&lt; " in New York is "
+ &lt;&lt; to_simple_string(t2) &lt;&lt; " UTC time "
+ &lt;&lt; std::endl;
+
+ ptime t3 = us_eastern::utc_to_local(t2);//back should be the same
+ std::cout &lt;&lt; to_simple_string(t2) &lt;&lt; " UTC is "
+ &lt;&lt; to_simple_string(t3) &lt;&lt; " New York time "
+ &lt;&lt; "\n\n";
+
+ ptime t4(date(2002,May,31), hours(20)); //4 hours b/f midnight NY time
+ std::cout &lt;&lt; "UTC &lt;--&gt; New York while DST is active (4 hours)" &lt;&lt; std::endl;
+ ptime t5 = us_eastern::local_to_utc(t4);
+ std::cout &lt;&lt; to_simple_string(t4) &lt;&lt; " in New York is "
+ &lt;&lt; to_simple_string(t5) &lt;&lt; " UTC time "
+ &lt;&lt; std::endl;
+
+ ptime t6 = us_eastern::utc_to_local(t5);//back should be the same
+ std::cout &lt;&lt; to_simple_string(t5) &lt;&lt; " UTC is "
+ &lt;&lt; to_simple_string(t6) &lt;&lt; " New York time "
+ &lt;&lt; "\n" &lt;&lt; std::endl;
+
+
+ //Arizona timezone is utc-7 with no dst
+ typedef boost::date_time::local_adjustor&lt;ptime, -7, no_dst&gt; us_arizona;
+
+ ptime t7(date(2002,May,31), hours(17));
+ std::cout &lt;&lt; "UTC &lt;--&gt; Arizona (7 hours)" &lt;&lt; std::endl;
+ ptime t8 = us_arizona::local_to_utc(t7);
+ std::cout &lt;&lt; to_simple_string(t7) &lt;&lt; " in Arizona is "
+ &lt;&lt; to_simple_string(t8) &lt;&lt; " UTC time "
+ &lt;&lt; std::endl;
+
+ return 0;
+ }
+
+
+ </pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.examples.time_periods"></a>Time Periods</h3></div></div></div>
+<p>
+ Demonstrate some simple uses of time periods.
+ </p>
+<pre class="programlisting">
+
+
+ /* Some simple examples of constructing and calculating with times
+ * Returns:
+ * [2002-Feb-01 00:00:00/2002-Feb-01 23:59:59.999999999]
+ * contains 2002-Feb-01 03:00:05
+ * [2002-Feb-01 00:00:00/2002-Feb-01 23:59:59.999999999]
+ * intersected with
+ * [2002-Feb-01 00:00:00/2002-Feb-01 03:00:04.999999999]
+ * is
+ * [2002-Feb-01 00:00:00/2002-Feb-01 03:00:04.999999999]
+ */
+
+ #include "boost/date_time/posix_time/posix_time.hpp"
+ #include &lt;iostream&gt;
+
+ using namespace boost::posix_time;
+ using namespace boost::gregorian;
+
+ //Create a simple period class to contain all the times in a day
+ class day_period : public time_period
+ {
+ public:
+ day_period(date d) : time_period(ptime(d),//midnight
+ ptime(d,hours(24)))
+ {}
+
+ };
+
+ int
+ main()
+ {
+
+ date d(2002,Feb,1); //an arbitrary date
+ //a period that represents a day
+ day_period dp(d);
+ ptime t(d, hours(3)+seconds(5)); //an arbitray time on that day
+ if (dp.contains(t)) {
+ std::cout &lt;&lt; to_simple_string(dp) &lt;&lt; " contains "
+ &lt;&lt; to_simple_string(t) &lt;&lt; std::endl;
+ }
+ //a period that represents part of the day
+ time_period part_of_day(ptime(d, hours(0)), t);
+ //intersect the 2 periods and print the results
+ if (part_of_day.intersects(dp)) {
+ time_period result = part_of_day.intersection(dp);
+ std::cout &lt;&lt; to_simple_string(dp) &lt;&lt; " intersected with\n"
+ &lt;&lt; to_simple_string(part_of_day) &lt;&lt; " is \n"
+ &lt;&lt; to_simple_string(result) &lt;&lt; std::endl;
+ }
+
+
+ return 0;
+ }
+
+
+ </pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.examples.simple_time_zone"></a>Simple Time Zones</h3></div></div></div>
+<p>
+ Example usage of custom_time_zone as well as posix_time_zone.
+ </p>
+<pre class="programlisting">
+
+ /* A simple example for using a custom_time_zone and a posix_time_zone.
+ */
+
+ #include "boost/date_time/local_time/local_time.hpp"
+ #include &lt;iostream&gt;
+
+ int
+ main()
+ {
+ using namespace boost;
+ using namespace local_time;
+ using namespace gregorian;
+ using posix_time::time_duration;
+
+ /***** custom_time_zone *****/
+
+ // create the dependent objects for a custom_time_zone
+ time_zone_names tzn("Eastern Standard Time", "EST",
+ "Eastern Daylight Time", "EDT");
+ time_duration utc_offset(-5,0,0);
+ dst_adjustment_offsets adj_offsets(time_duration(1,0,0),
+ time_duration(2,0,0),
+ time_duration(2,0,0));
+ // rules for this zone are:
+ // start on first Sunday of April at 2 am
+ // end on last Sunday of October at 2 am
+ // so we use a first_last_dst_rule
+ first_day_of_the_week_in_month start_rule(Sunday, Apr);
+ last_day_of_the_week_in_month end_rule(Sunday, Oct);
+ shared_ptr&lt;dst_calc_rule&gt; nyc_rules(new first_last_dst_rule(start_rule,
+ end_rule));
+ // create more dependent objects for a non-dst custom_time_zone
+ time_zone_names tzn2("Mountain Standard Time", "MST",
+ "", ""); // no dst means empty dst strings
+ time_duration utc_offset2(-7,0,0);
+ dst_adjustment_offsets adj_offsets2(time_duration(0,0,0),
+ time_duration(0,0,0),
+ time_duration(0,0,0));
+ // no dst means we need a null pointer to the rules
+ shared_ptr&lt;dst_calc_rule&gt; phx_rules;
+
+ // create the custom_time_zones
+ time_zone_ptr nyc_1(new custom_time_zone(tzn, utc_offset,
+ adj_offsets, nyc_rules));
+ time_zone_ptr phx_1(new custom_time_zone(tzn2, utc_offset2,
+ adj_offsets2, phx_rules));
+
+ /***** posix_time_zone *****/
+
+ // create posix_time_zones that are the duplicates of the
+ // custom_time_zones created above. See posix_time_zone documentation
+ // for details on full zone names.
+ std::string nyc_string, phx_string;
+ nyc_string = "EST-05:00:00EDT+01:00:00,M4.1.0/02:00:00,M10.5.0/02:00:00";
+ // nyc_string = "EST-05EDT,M4.1.0,M10.5.0"; // shorter when defaults used
+ phx_string = "MST-07"; // no-dst
+ time_zone_ptr nyc_2(new posix_time_zone(nyc_string));
+ time_zone_ptr phx_2(new posix_time_zone(phx_string));
+
+
+ /***** show the sets are equal *****/
+
+ std::cout &lt;&lt; "The first zone is in daylight savings from:\n "
+ &lt;&lt; nyc_1-&gt;dst_local_start_time(2004) &lt;&lt; " through "
+ &lt;&lt; nyc_1-&gt;dst_local_end_time(2004) &lt;&lt; std::endl;
+
+ std::cout &lt;&lt; "The second zone is in daylight savings from:\n "
+ &lt;&lt; nyc_2-&gt;dst_local_start_time(2004) &lt;&lt; " through "
+ &lt;&lt; nyc_2-&gt;dst_local_end_time(2004) &lt;&lt; std::endl;
+
+ std::cout &lt;&lt; "The third zone (no daylight savings):\n "
+ &lt;&lt; phx_1-&gt;std_zone_abbrev() &lt;&lt; " and "
+ &lt;&lt; phx_1-&gt;base_utc_offset() &lt;&lt; std::endl;
+
+ std::cout &lt;&lt; "The fourth zone (no daylight savings):\n "
+ &lt;&lt; phx_2-&gt;std_zone_abbrev() &lt;&lt; " and "
+ &lt;&lt; phx_2-&gt;base_utc_offset() &lt;&lt; std::endl;
+
+ return 0;
+ }
+
+ </pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.examples.calc_rules"></a>Daylight Savings Calc Rules</h3></div></div></div>
+<p>
+ Example of creating various Daylight Savings Calc Rule objects.
+ </p>
+<pre class="programlisting">
+
+ /* A simple example for creating various dst_calc_rule instances
+ */
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include "boost/date_time/local_time/local_time.hpp"
+ #include &lt;iostream&gt;
+
+ int
+ main()
+ {
+ using namespace boost;
+ using namespace local_time;
+ using namespace gregorian;
+
+ /***** create the necessary date_generator objects *****/
+ // starting generators
+ first_day_of_the_week_in_month fd_start(Sunday, May);
+ last_day_of_the_week_in_month ld_start(Sunday, May);
+ nth_day_of_the_week_in_month nkd_start(nth_day_of_the_week_in_month::third,
+ Sunday, May);
+ partial_date pd_start(1, May);
+ // ending generators
+ first_day_of_the_week_in_month fd_end(Sunday, Oct);
+ last_day_of_the_week_in_month ld_end(Sunday, Oct);
+ nth_day_of_the_week_in_month nkd_end(nth_day_of_the_week_in_month::third,
+ Sunday, Oct);
+ partial_date pd_end(31, Oct);
+
+ /***** create the various dst_calc_rule objects *****/
+ dst_calc_rule_ptr pdr(new partial_date_dst_rule(pd_start, pd_end));
+ dst_calc_rule_ptr flr(new first_last_dst_rule(fd_start, ld_end));
+ dst_calc_rule_ptr llr(new last_last_dst_rule(ld_start, ld_end));
+ dst_calc_rule_ptr nlr(new nth_last_dst_rule(nkd_start, ld_end));
+ dst_calc_rule_ptr ndr(new nth_day_of_the_week_in_month_dst_rule(nkd_start,
+ nkd_end));
+
+ return 0;
+ }
+
+
+ </pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.examples.flight"></a>Flight Time Example</h3></div></div></div>
+<p>This example shows a program that calculates the arrival time of a plane that flys from Phoenix to New York. During the flight New York shifts into daylight savings time (Phoenix doesn't because Arizona doesn't use dst).</p>
+<pre class="programlisting">
+<code class="literal">
+<span class="preprocessor">#include</span><span class="string"> "boost/date_time/local_time/local_time.hpp"</span><span class="preprocessor">
+#include</span><span class="special"> &lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span><span class="comment">
+
+/* This example shows a program that calculates the arrival time of a plane
+ * that flys from Phoenix to New York. During the flight New York shifts
+ * into daylight savings time (Phoenix doesn't because Arizona doesn't use
+ * dst).
+ *
+ *
+ */</span><span class="keyword">
+
+int</span><span class="identifier"> main</span><span class="special">()</span><span class="special">
+{</span><span class="keyword">
+ using</span><span class="keyword"> namespace</span><span class="identifier"> boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">;</span><span class="keyword">
+ using</span><span class="keyword"> namespace</span><span class="identifier"> boost</span><span class="special">::</span><span class="identifier">local_time</span><span class="special">;</span><span class="keyword">
+ using</span><span class="keyword"> namespace</span><span class="identifier"> boost</span><span class="special">::</span><span class="identifier">posix_time</span><span class="special">;</span><span class="comment">
+
+
+ //setup some timezones for creating and adjusting local times
+ //This user editable file can be found in libs/date_time/data.
+</span><span class="identifier"> tz_database</span><span class="identifier"> tz_db</span><span class="special">;</span><span class="identifier">
+ tz_db</span><span class="special">.</span><span class="identifier">load_from_file</span><span class="special">(</span><span class="string">"date_time_zonespec.csv"</span><span class="special">);</span><span class="identifier">
+ time_zone_ptr</span><span class="identifier"> nyc_tz</span><span class="special"> =</span><span class="identifier"> tz_db</span><span class="special">.</span><span class="identifier">time_zone_from_region</span><span class="special">(</span><span class="string">"America/New_York"</span><span class="special">);</span><span class="comment">
+ //Use a
+</span><span class="identifier"> time_zone_ptr</span><span class="identifier"> phx_tz</span><span class="special">(</span><span class="keyword">new</span><span class="identifier"> posix_time_zone</span><span class="special">(</span><span class="string">"MST-07:00:00"</span><span class="special">));</span><span class="comment">
+
+ //local departure time in phoenix is 11 pm on april 2 2005
+ // (ny changes to dst on apr 3 at 2 am)
+</span><span class="identifier"> local_date_time</span><span class="identifier"> phx_departure</span><span class="special">(</span><span class="identifier">date</span><span class="special">(</span><span class="number">2005</span><span class="special">,</span><span class="identifier"> Apr</span><span class="special">,</span><span class="number"> 2</span><span class="special">),</span><span class="identifier"> hours</span><span class="special">(</span><span class="number">23</span><span class="special">),</span><span class="identifier">
+ phx_tz</span><span class="special">,</span><span class="identifier">
+ local_date_time</span><span class="special">::</span><span class="identifier">NOT_DATE_TIME_ON_ERROR</span><span class="special">);</span><span class="identifier">
+
+ time_duration</span><span class="identifier"> flight_length</span><span class="special"> =</span><span class="identifier"> hours</span><span class="special">(</span><span class="number">4</span><span class="special">)</span><span class="special"> +</span><span class="identifier"> minutes</span><span class="special">(</span><span class="number">30</span><span class="special">);</span><span class="identifier">
+ local_date_time</span><span class="identifier"> phx_arrival</span><span class="special"> =</span><span class="identifier"> phx_departure</span><span class="special"> +</span><span class="identifier"> flight_length</span><span class="special">;</span><span class="identifier">
+ local_date_time</span><span class="identifier"> nyc_arrival</span><span class="special"> =</span><span class="identifier"> phx_arrival</span><span class="special">.</span><span class="identifier">local_time_in</span><span class="special">(</span><span class="identifier">nyc_tz</span><span class="special">);</span><span class="identifier">
+
+ std</span><span class="special">::</span><span class="identifier">cout</span><span class="special"> &lt;&lt;</span><span class="string"> "departure phx time: "</span><span class="special"> &lt;&lt;</span><span class="identifier"> phx_departure</span><span class="special"> &lt;&lt;</span><span class="identifier"> std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">cout</span><span class="special"> &lt;&lt;</span><span class="string"> "arrival phx time: "</span><span class="special"> &lt;&lt;</span><span class="identifier"> phx_arrival</span><span class="special"> &lt;&lt;</span><span class="identifier"> std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">cout</span><span class="special"> &lt;&lt;</span><span class="string"> "arrival nyc time: "</span><span class="special"> &lt;&lt;</span><span class="identifier"> nyc_arrival</span><span class="special"> &lt;&lt;</span><span class="identifier"> std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span><span class="special">
+
+}</span>
+</code>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.examples.seconds_since_epoch"></a>Seconds Since Epoch</h3></div></div></div>
+<p>
+ Example of calculating seconds elapsed since epoch (1970-Jan-1) using local_date_time.
+ </p>
+<pre class="programlisting">
+
+ /* This example demonstrates the use of the time zone database and
+ * local time to calculate the number of seconds since the UTC
+ * time_t epoch 1970-01-01 00:00:00. Note that the selected timezone
+ * could be any timezone supported in the time zone database file which
+ * can be modified and updated as needed by the user.
+ *
+ * To solve this problem the following steps are required:
+ * 1) Get a timezone from the tz database for the local time
+ * 2) Construct a local time using the timezone
+ * 3) Construct a posix_time::ptime for the time_t epoch time
+ * 4) Convert the local_time to utc and subtract the epoch time
+ *
+ */
+
+ #include "boost/date_time/local_time/local_time.hpp"
+ #include &lt;iostream&gt;
+
+ int main()
+ {
+ using namespace boost::gregorian;
+ using namespace boost::local_time;
+ using namespace boost::posix_time;
+
+ tz_database tz_db;
+ try {
+ tz_db.load_from_file("../data/date_time_zonespec.csv");
+ }catch(data_not_accessible dna) {
+ std::cerr &lt;&lt; "Error with time zone data file: " &lt;&lt; dna.what() &lt;&lt; std::endl;
+ exit(EXIT_FAILURE);
+ }catch(bad_field_count bfc) {
+ std::cerr &lt;&lt; "Error with time zone data file: " &lt;&lt; bfc.what() &lt;&lt; std::endl;
+ exit(EXIT_FAILURE);
+ }
+
+ time_zone_ptr nyc_tz = tz_db.time_zone_from_region("America/New_York");
+ date in_date(2004,10,04);
+ time_duration td(12,14,32);
+ // construct with local time value
+ // create not-a-date-time if invalid (eg: in dst transition)
+ local_date_time nyc_time(in_date,
+ td,
+ nyc_tz,
+ local_date_time::NOT_DATE_TIME_ON_ERROR);
+
+ std::cout &lt;&lt; nyc_time &lt;&lt; std::endl;
+
+ ptime time_t_epoch(date(1970,1,1));
+ std::cout &lt;&lt; time_t_epoch &lt;&lt; std::endl;
+
+ // first convert nyc_time to utc via the utc_time()
+ // call and subtract the ptime.
+ time_duration diff = nyc_time.utc_time() - time_t_epoch;
+
+ //Expected 1096906472
+ std::cout &lt;&lt; "Seconds diff: " &lt;&lt; diff.total_seconds() &lt;&lt; std::endl;
+
+ }
+
+ </pre>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2005 CrystalClear Software, Inc<p>Subject to the Boost Software License, Version 1.0. (See accompanying file
+ <code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="details.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="doxy.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_time/examples/general_usage_examples.html b/doc/html/date_time/examples/general_usage_examples.html
new file mode 100755
index 0000000000..d069032df8
--- /dev/null
+++ b/doc/html/date_time/examples/general_usage_examples.html
@@ -0,0 +1,134 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>General Usage Examples</title>
+<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
+<link rel="up" href="../../date_time.html" title="Chapter&#160;7.&#160;Boost.Date_Time">
+<link rel="prev" href="../../date_time.html" title="Chapter&#160;7.&#160;Boost.Date_Time">
+<link rel="next" href="../gregorian.html" title="Gregorian">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.html">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
+<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../../date_time.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../date_time.html"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../gregorian.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="date_time.examples.general_usage_examples"></a>General Usage Examples</h2></div></div></div>
+<p>
+ The following provides some sample usage of dates.
+ See <a class="link" href="../gregorian.html" title="Gregorian">Date Programming</a>
+ for more details.
+
+ </p>
+<pre class="programlisting"><span class="keyword">using namespace</span> boost::gregorian;
+ date weekstart(<span class="number">2002</span>,Feb,<span class="number">1</span>);
+ date weekend = weekstart + weeks(<span class="number">1</span>);
+ date d2 = d1 + days(<span class="number">5</span>);
+ date today = day_clock::local_day();
+ if (d2 &gt;= today) {} <span class="comment">//date comparison operators</span>
+
+ date_period thisWeek(d1,d2);
+ <span class="keyword">if</span> (thisWeek.contains(today)) {}<span class="comment">//do something
+
+ //iterate and print the week</span>
+ day_iterator itr(weekstart);
+ <span class="keyword">while</span> (itr &lt;= weekend) {
+ std::cout &lt;&lt; (*itr) &lt;&lt; std::endl;
+ ++itr;
+ }
+ <span class="comment">//input streaming</span>
+ std::stringstream ss(<span class="string">"2004-Jan-1"</span>);
+ ss &gt;&gt; d3;
+
+ <span class="comment">//date generator functions</span>
+ date d5 = next_weekday(d4, Sunday); <span class="comment">//calculate Sunday following d4
+
+ //US labor day is first Monday in Sept</span>
+ <span class="keyword">typedef</span> nth_day_of_the_week_in_month nth_dow;
+ nth_dow labor_day(nth_dow::first,Monday, Sep);
+ <span class="comment">//calculate a specific date for 2004 from functor</span>
+ date d6 = labor_day.get_date(<span class="number">2004</span>);
+ </pre>
+<p>
+
+ The following provides some example code using times.
+ See <a class="link" href="../posix_time.html" title="Posix Time">Time Programming</a>
+ for more details.
+
+ </p>
+<pre class="programlisting"><span class="keyword">using namespace</span> boost::posix_time;
+ date d(<span class="number">2002</span>,Feb,<span class="number">1</span>); <span class="comment">//an arbitrary date</span>
+ ptime t1(d, hours(<span class="number">5</span>)+nanosec(<span class="number">100</span>)); <span class="comment">//date + time of day offset</span>
+ ptime t2 = t1 - minutes(<span class="number">4</span>)+seconds(<span class="number">2</span>);
+ ptime now = second_clock::local_time(); <span class="comment">//use the clock</span>
+ date today = now.date(); <span class="comment">//Get the date part out of the time</span>
+ date tomorrow = today + date_duration(<span class="number">1</span>);
+ ptime tomorrow_start(tomorrow); <span class="comment">//midnight
+
+ //input streaming</span>
+ std::stringstream ss(<span class="string">"2004-Jan-1 05:21:33.20"</span>);
+ ss &gt;&gt; t2;
+
+ <span class="comment">//starting at current time iterator adds by one hour</span>
+ time_iterator titr(now,hours(<span class="number">1</span>));
+ <span class="keyword">for</span> (; titr &lt; tomorrow_start; ++titr) {
+ std::cout &lt;&lt; (*titr) &lt;&lt; std::endl;
+ }
+ </pre>
+<p>
+ </p>
+<p>
+ The following provides some example code using times.
+ See <a class="link" href="../local_time.html" title="Local Time">Local Time Programming</a>
+ for more details.
+
+ </p>
+<pre class="programlisting">
+ <span class="keyword">using namespace</span> boost::local_time;
+ <span class="comment">//setup some timezones for creating and adjusting times
+ //first time zone uses the time zone file for regional timezone definitions</span>
+ tz_database tz_db;
+ tz_db.load_from_file(<span class="string">"date_time_zonespec.csv"</span>);
+ time_zone_ptr nyc_tz = tz_db.time_zone_from_region(<span class="string">"America/New_York"</span>);
+ <span class="comment">//This timezone uses a posix time zone string definition to create a time zone</span>
+ time_zone_ptr phx_tz(new posix_time_zone(<span class="string">"MST-07:00:00"</span>));
+
+ <span class="comment">//local departure time in phoenix is 11 pm on April 2 2005
+ // Note that New York changes to daylight savings on Apr 3 at 2 am)</span>
+ local_date_time phx_departure(date(<span class="number">2005</span>, Apr, <span class="number">2</span>), hours(<span class="number">23</span>), phx_tz,
+ local_date_time::NOT_DATE_TIME_ON_ERROR);
+
+ time_duration flight_length = hours(<span class="number">4</span>) + minutes(<span class="number">30</span>);
+ local_date_time phx_arrival = phx_departure + flight_length;
+ <span class="comment">//convert the phx time to a nyz time</span>
+ local_date_time nyc_arrival = phx_arrival.local_time_in(nyc_tz);
+
+ <span class="comment">//2005-Apr-03 06:30:00 EDT</span>
+ std::cout &lt;&lt; nyc_arrival &lt;&lt; std::endl;
+ </pre>
+<p>
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2005 CrystalClear Software, Inc<p>Subject to the Boost Software License, Version 1.0. (See accompanying file
+ <code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../../date_time.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../date_time.html"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../gregorian.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_time/gregorian.html b/doc/html/date_time/gregorian.html
new file mode 100755
index 0000000000..c7793838ef
--- /dev/null
+++ b/doc/html/date_time/gregorian.html
@@ -0,0 +1,1456 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Gregorian</title>
+<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
+<link rel="up" href="../date_time.html" title="Chapter&#160;7.&#160;Boost.Date_Time">
+<link rel="prev" href="examples/general_usage_examples.html" title="General Usage Examples">
+<link rel="next" href="posix_time.html" title="Posix Time">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.html">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
+<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="examples/general_usage_examples.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="posix_time.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="date_time.gregorian"></a>Gregorian</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="gregorian.html#date_time.gregorian.date_class">Date</a></span></dt>
+<dt><span class="section"><a href="gregorian.html#date_time.gregorian.date_duration">Date Duration (aka Days)</a></span></dt>
+<dt><span class="section"><a href="gregorian.html#date_time.gregorian.date_period">Date Period</a></span></dt>
+<dt><span class="section"><a href="gregorian.html#date_time.gregorian.date_iterators">Date Iterators</a></span></dt>
+<dt><span class="section"><a href="gregorian.html#date_time.gregorian.date_algorithms">Date Generators/Algorithms</a></span></dt>
+<dt><span class="section"><a href="gregorian.html#date_time.gregorian.gregorian_calendar">Gregorian Calendar</a></span></dt>
+</dl></div>
+<h3>
+<a name="id1287943"></a>Gregorian Date System</h3>
+<p>
+ <a class="link" href="gregorian.html#greg_intro">Introduction</a> --
+ <a class="link" href="gregorian.html#greg_ex">Usage Examples</a>
+ </p>
+<a name="greg_intro"></a><h4>
+<a name="id1287972"></a>Introduction</h4>
+<p>The gregorian date system provides a date programming system based the Gregorian Calendar. The first introduction of the Gregorian calendar was in 1582 to fix an error in the Julian Calendar. However, many local jurisdictions did not adopt this change until much later. Thus there is potential confusion with historical dates.
+ </p>
+<p>The implemented calendar is a "proleptic Gregorian calendar" which extends dates back prior to the Gregorian Calendar's first adoption in 1582. The current implementation supports dates in the range 1400-Jan-01 to 9999-Dec-31. Many references will represent dates prior to 1582 using the Julian Calendar, so caution is in order if accurate calculations are required on historic dates. See <a href="http://emr.cs.iit.edu/home/reingold/calendar-book/second-edition" target="_top">Calendrical Calculations</a> by Reingold &amp; Dershowitz for more details. Date information from Calendrical Calculations has been used to cross-test the correctness of the Gregorian calendar implementation.
+ </p>
+<p>All types for the gregorian system are found in namespace boost::gregorian. The library supports a convenience header boost/date_time/gregorian/gregorian_types.hpp that will include all the classes of the library with no input/output dependency. Another header boost/date_time/gregorian/gregorian.hpp will include the types and the input/output code.
+ </p>
+<p>The class <a class="link" href="gregorian.html#date_time.gregorian.date_class" title="Date">boost::gregorian::date</a> is the primary temporal type for users. If you are interested in learning about writing programs that do specialized date calculations such as finding the "first sunday in april" see the date <a class="link" href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">generators and algorithms page</a>.
+ </p>
+<a name="greg_ex"></a><h4>
+<a name="id1288050"></a>Usage Examples</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Example</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><div class="literallayout"><p><br>
+<a class="link" href="examples.html#date_time.examples.days_alive" title="Days Alive">Days&#160;Alive</a>&#160;&#160;&#160;<br>
+<a class="link" href="examples.html#date_time.examples.days_between_new_year" title="Days Between New Years">Days&#160;Between&#160;New&#160;Years</a></p></div></td>
+<td>Simple date arithmetic. Retrieve current day from clock.</td>
+</tr>
+<tr>
+<td valign="top"><div class="literallayout"><p><a class="link" href="examples.html#date_time.examples.dates_as_strings" title="Dates as Strings">Dates&#160;as&#160;strings</a></p></div></td>
+<td>Simple parsing and formatting of dates from/to strings</td>
+</tr>
+<tr>
+<td valign="top"><div class="literallayout"><p><a class="link" href="examples.html#date_time.examples.date_period_calc" title="Date Period Calculations">Date&#160;Period&#160;Calculations</a></p></div></td>
+<td>See if a date is in a set of date periods (eg: is it a holiday/weekend)</td>
+</tr>
+<tr>
+<td valign="top"><div class="literallayout"><p><a class="link" href="examples.html#date_time.examples.print_month" title="Print Month">Print&#160;a&#160;month</a></p></div></td>
+<td>Small utility program which prints out all the days in a month from command line. Need to know if 1999-Jan-1 was a Friday or a Saturday? This program shows how to do it.</td>
+</tr>
+<tr>
+<td valign="top"><div class="literallayout"><p><a class="link" href="examples.html#date_time.examples.print_holidays" title="Print Holidays">Print&#160;Holidays</a></p></div></td>
+<td>Uses date generators to convert abstract specification into concrete set of dates.</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.gregorian.date_class"></a>Date</h3></div></div></div>
+<a class="link" href="gregorian.html#date_intro">Introduction</a> --
+ <a class="link" href="gregorian.html#date_header">Header</a> --
+ <a class="link" href="gregorian.html#date_construction">Construction</a> --
+ <a class="link" href="gregorian.html#date_construct_from_string">Construct from String</a> --
+ <a class="link" href="gregorian.html#date_construct_from_clock">Construct from Clock</a> --
+ <a class="link" href="gregorian.html#date_accessors">Accessors</a> --
+ <a class="link" href="gregorian.html#date_convert_to_string">Convert to String</a> --
+ <a class="link" href="gregorian.html#date_operators">Operators</a> --
+ <a class="link" href="gregorian.html#date_tm_funcs">Struct tm Functions</a><a name="date_intro"></a><h4>
+<a name="id1288315"></a>Introduction</h4>
+<p>
+ The class boost::gregorian::date is the primary interface for date programming. In general,
+ the date class is immutable once constructed although it does allow assignment from another
+ date.
+ Techniques for creating dates include reading the
+ <a class="link" href="gregorian.html#date_construct_from_clock">current date from the clock</a>,
+ using <a class="link" href="gregorian.html#date_time.gregorian.date_iterators" title="Date Iterators">date iterators</a>, and
+ <a class="link" href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">date algorithms or generators</a>.
+ </p>
+<p>
+ Internally boost::gregorian::date is stored as a 32 bit integer type. The class is specifically
+ designed to NOT contain virtual functions. This design allows for efficient
+ calculation and memory usage with large collections of dates.
+ </p>
+<p>
+ The construction of a date validates all input so that it is not possible to
+ construct an 'invalid' date. That is 2001-Feb-29 cannot be constructed as a date.
+ Various exceptions derived from std::out_of_range are thrown to indicate which aspect
+ of the date input is invalid. Note that the
+ special value not-a-date-time can be used as 'invalid' or 'null' date if so desired.
+ </p>
+<a name="date_header"></a><h4>
+<a name="id1288376"></a>Header</h4>
+<p>
+ </p>
+<pre class="programlisting">#include "boost/date_time/gregorian/gregorian.hpp" //include all types plus i/o
+or
+#include "boost/date_time/gregorian/gregorian_types.hpp" //no i/o just types</pre>
+<p>
+ </p>
+<a name="date_construction"></a><h4>
+<a name="id1288399"></a>Construction</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date(greg_year, greg_month, greg_day)</pre></td>
+<td>Construct from parts of date. Throws bad_year, bad_day_of_month, or bad_day_month (derivatives of std::out_of_range) if the year, month or day are out of range.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,10);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date(date d)</pre></td>
+<td>Copy constructor</td>
+</tr>
+<tr><td><pre class="screen">date d1(d);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date(special_values sv)</pre></td>
+<td>Constructor for infinities, not-a-date-time, max_date_time, and min_date_time</td>
+</tr>
+<tr><td><pre class="screen">date d1(neg_infin);
+date d2(pos_infin);
+date d3(not_a_date_time);
+date d4(max_date_time);
+date d5(min_date_time);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date()</pre></td>
+<td>Default constructor. Creates a date object initialized to not_a_date_time. NOTE: this constructor can be disabled by defining DATE_TIME_NO_DEFAULT_CONSTRUCTOR (see compiler_config.hpp)</td>
+</tr>
+<tr><td><pre class="screen">date d; // d =&gt; not_a_date_time</pre></td></tr>
+</tbody>
+</table></div>
+<a name="date_construct_from_string"></a><h4>
+<a name="id1288567"></a>Construct from String</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date from_string(std::string)</pre></td>
+<td>From delimited date string where with order year-month-day eg: 2002-1-25</td>
+</tr>
+<tr><td><pre class="screen">std::string ds("2002/1/25");
+date d(from_string(ds));</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date from_undelimited_string(std::string)</pre></td>
+<td>From iso type date string where with order year-month-day eg: 20020125</td>
+</tr>
+<tr><td><pre class="screen">std::string ds("20020125");
+date d(from_undelimited_string(ds));</pre></td></tr>
+</tbody>
+</table></div>
+<a name="date_construct_from_clock"></a><h4>
+<a name="id1288674"></a>Construct from Clock</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">day_clock::local_day()</pre></td>
+<td>Get the local day based on the time zone settings of the computer.</td>
+</tr>
+<tr><td><pre class="screen">date d(day_clock::local_day());</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">day_clock::universal_day()</pre></td>
+<td>Get the UTC day.</td>
+</tr>
+<tr><td><pre class="screen">date d(day_clock::universal_day());</pre></td></tr>
+</tbody>
+</table></div>
+<a name="date_accessors"></a><h4>
+<a name="id1288779"></a>Accessors</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">greg_year year() const</pre></td>
+<td>Get the year part of the date.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,10);
+d.year(); // --&gt; 2002</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">greg_month month() const</pre></td>
+<td>Get the month part of the date.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,10);
+d.month(); // --&gt; 1</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">greg_day day() const</pre></td>
+<td> Get the day part of the date.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,10);
+d.day(); // --&gt; 10</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">greg_ymd year_month_day() const</pre></td>
+<td>Return a year_month_day struct. More efficient when all 3 parts of the date are needed.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,10);
+date::ymd_type ymd = d.year_month_day();
+// ymd.year --&gt; 2002,
+// ymd.month --&gt; 1,
+// ymd.day --&gt; 10</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">greg_day_of_week day_of_week() const</pre></td>
+<td>Get the day of the week (Sunday, Monday, etc.)</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,10);
+d.day(); // --&gt; Thursday</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">greg_day_of_year day_of_year() const</pre></td>
+<td>Get the day of the year. Number from 1 to 366 </td>
+</tr>
+<tr><td><pre class="screen">date d(2000,Jan,10);
+d.day_of_year(); // --&gt; 10</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date end_of_month() const</pre></td>
+<td>Returns a <code class="computeroutput">date</code> object set to the last day of the calling objects current month.</td>
+</tr>
+<tr><td><pre class="screen">date d(2000,Jan,10);
+d.end_of_month(); // --&gt; 2000-Jan-31</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_infinity() const</pre></td>
+<td>Returns true if date is either positive or negative infinity</td>
+</tr>
+<tr><td><pre class="screen">date d(pos_infin);
+d.is_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_neg_infinity() const</pre></td>
+<td>Returns true if date is negative infinity</td>
+</tr>
+<tr><td><pre class="screen">date d(neg_infin);
+d.is_neg_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_pos_infinity() const</pre></td>
+<td>Returns true if date is positive infinity</td>
+</tr>
+<tr><td><pre class="screen">date d(neg_infin);
+d.is_pos_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_not_a_date() const</pre></td>
+<td>Returns true if value is not a date</td>
+</tr>
+<tr><td><pre class="screen">date d(not_a_date_time);
+d.is_not_a_date(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_special() const</pre></td>
+<td>Returns true if date is any <code class="computeroutput">special_value</code>
+</td>
+</tr>
+<tr><td><pre class="screen">date d(pos_infin);
+date d2(not_a_date_time);
+date d3(2005,Mar,1);
+d.is_special(); // --&gt; true
+d2.is_special(); // --&gt; true
+d3.is_special(); // --&gt; false</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">special_value as_special() const</pre></td>
+<td>Returns represented <code class="computeroutput">special_value</code> or <code class="computeroutput">not_special</code> if the represented date is a normal date.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long modjulian_day() const</pre></td>
+<td>Returns the modified julian day for the date.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long julian_day() const</pre></td>
+<td>Returns the julian day for the date.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">int week_number() const</pre></td>
+<td>Returns the ISO 8601 week number for the date.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date end_of_month() const</pre></td>
+<td>Returns the last day of the month for the date.</td>
+</tr>
+<tr><td><pre class="screen">date d(2000,Feb,1);
+//gets Feb 29 -- 2000 was leap year
+date eom = d.end_of_month();</pre></td></tr>
+</tbody>
+</table></div>
+<a name="date_convert_to_string"></a><h4>
+<a name="id1289338"></a>Convert to String</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_simple_string(date d)</pre></td>
+<td>To <code class="computeroutput">YYYY-mmm-DD</code> string where <code class="computeroutput">mmm</code> is a 3 char month name.</td>
+</tr>
+<tr><td><pre class="screen">"2002-Jan-01"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_iso_string(date d)</pre></td>
+<td>To <code class="computeroutput">YYYYMMDD</code> where all components are integers.</td>
+</tr>
+<tr><td><pre class="screen">"20020131"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_iso_extended_string(date d)</pre></td>
+<td> To <code class="computeroutput">YYYY-MM-DD</code> where all components are integers.</td>
+</tr>
+<tr><td><pre class="screen">"2002-01-31"</pre></td></tr>
+</tbody>
+</table></div>
+<a name="date_operators"></a><h4>
+<a name="id1289494"></a>Operators</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;&lt;</pre></td>
+<td>Stream output operator</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,1);
+std::cout &lt;&lt; d &lt;&lt; std::endl;</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&gt;&gt;</pre></td>
+<td>Stream input operator. <span class="strong"><strong>Note:</strong></span> As of version 1.33, streaming operations have been greatly improved. See <a class="link" href="date_time_io.html" title="Date Time Input/Output">Date Time IO System</a> for details on exceptions and error conditions.</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(not_a_date_time);
+stringstream ss("2002-Jan-01");
+ss &gt;&gt; d;</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator==, operator!=,
+operator&gt;, operator&lt;,
+operator&gt;=, operator&lt;=</pre></td>
+<td>A full complement of comparison operators</td>
+</tr>
+<tr><td><pre class="screen">d1 == d2, etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date operator+(date_duration) const</pre></td>
+<td>Return a date adding a day offset</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,1);
+date_duration dd(1);
+date d2 = d + dd;</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date operator-(date_duration) const</pre></td>
+<td>Return a date by substracting a day offset</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,1);
+date_duration dd(1);
+date d2 = d - dd;</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_duration operator-(date) const</pre></td>
+<td>Return a date_duration by subtracting two dates</td>
+</tr>
+<tr><td>
+<pre class="screen">date d1(2002,Jan,1);
+date d2(2002,Jan,2);
+date_duration dd = d2-d1;</pre>
+ </td></tr>
+</tbody>
+</table></div>
+<a name="date_tm_funcs"></a><h4>
+<a name="id1289737"></a>Struct tm Functions</h4>
+<p>Functions for converting a <code class="computeroutput">date</code> object to, and from, a <code class="computeroutput">tm</code> struct are provided.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">tm to_tm(date)</pre></td>
+<td>A function for converting a <code class="computeroutput">date</code> object to a <code class="computeroutput">tm</code> struct. The fields: <code class="computeroutput">tm_hour</code>, <code class="computeroutput">tm_min</code>, and <code class="computeroutput">tm_sec</code> are set to zero. The <code class="computeroutput">tm_isdst</code> field is set to -1.</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2005,Jan,1);
+tm d_tm = to_tm(d);
+/* tm_year =&gt; 105
+ tm_mon =&gt; 0
+ tm_mday =&gt; 1
+ tm_wday =&gt; 6 (Saturday)
+ tm_yday =&gt; 0
+ tm_hour =&gt; 0
+ tm_min =&gt; 0
+ tm_sec =&gt; 0
+ tm_isddst =&gt; -1 */</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date date_from_tm(tm datetm)</pre></td>
+<td>A function for converting a <code class="computeroutput">tm</code> struct to a <code class="computeroutput">date</code> object. The fields: <code class="computeroutput">tm_wday </code>, <code class="computeroutput">tm_yday </code>, <code class="computeroutput">tm_hour</code>, <code class="computeroutput">tm_min</code>, <code class="computeroutput">tm_sec</code>, and <code class="computeroutput">tm_isdst</code> are ignored.</td>
+</tr>
+<tr><td>
+<pre class="screen">tm d_tm;
+d_tm.tm_year = 105;
+d_tm.tm_mon = 0;
+d_tm.tm_mday = 1;
+date d = date_from_tm(d_tm);
+// d =&gt; 2005-Jan-01</pre>
+ </td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.gregorian.date_duration"></a>Date Duration (aka Days)</h3></div></div></div>
+<a class="link" href="gregorian.html#duration_intro">Introduction</a> --
+ <a class="link" href="gregorian.html#duration_header">Header</a> --
+ <a class="link" href="gregorian.html#duration_construction">Construction</a> --
+ <a class="link" href="gregorian.html#duration_accessors">Accessors</a> --
+ <a class="link" href="gregorian.html#duration_operators">Operators</a> --
+ <a class="link" href="gregorian.html#additional_duration_types">Additional Duration Types</a><a name="duration_intro"></a><h4>
+<a name="id1290010"></a>Introduction</h4>
+<p>
+ The class boost::gregorian::date_duration is a simple day count used for arithmetic with <a class="link" href="gregorian.html#date_time.gregorian.date_class" title="Date">gregorian::date</a>. A duration can be either positive or negative.
+ </p>
+<p>
+ As of version 1_32 the date_duration class has been typedef'd as days in the boost::gregorian namespace. Throughout the examples you will find days used instead of date_duration.
+ </p>
+<a name="duration_header"></a><h4>
+<a name="id1290041"></a>Header</h4>
+<p>
+ </p>
+<pre class="programlisting">#include "boost/date_time/gregorian/gregorian.hpp" //include all types plus i/o
+or
+#include "boost/date_time/gregorian/gregorian_types.hpp" //no i/o just types</pre>
+<p>
+ </p>
+<a name="duration_construction"></a><h4>
+<a name="id1290064"></a>Construction</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_duration(long)</pre></td>
+<td>Create a duration count.</td>
+</tr>
+<tr><td><pre class="screen">date_duration dd(3); //3 days</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">days(special_values sv)</pre></td>
+<td>Constructor for infinities, not-a-date-time, max_date_time, and min_date_time</td>
+</tr>
+<tr><td><pre class="screen">days dd1(neg_infin);
+days dd2(pos_infin);
+days dd3(not_a_date_time);
+days dd4(max_date_time);
+days dd5(min_date_time);</pre></td></tr>
+</tbody>
+</table></div>
+<a name="duration_accessors"></a><h4>
+<a name="id1290171"></a>Accessors</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long days() const</pre></td>
+<td>Get the day count.</td>
+</tr>
+<tr><td><pre class="screen">date_duration dd(3); dd.days() --&gt; 3</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_negative() const</pre></td>
+<td>True if number of days is less than zero.</td>
+</tr>
+<tr><td><pre class="screen">date_duration dd(-1); dd.is_negative() --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">static date_duration unit()</pre></td>
+<td>Return smallest possible unit of duration type.</td>
+</tr>
+<tr><td><pre class="screen">date_duration::unit() --&gt; date_duration(1)</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_special() const</pre></td>
+<td>Returns true if days is any <code class="computeroutput">special_value</code>
+</td>
+</tr>
+<tr><td><pre class="screen">days dd(pos_infin);
+days dd2(not_a_date_time);
+days dd3(25);
+dd.is_special(); // --&gt; true
+dd2.is_special(); // --&gt; true
+dd3.is_special(); // --&gt; false</pre></td></tr>
+</tbody>
+</table></div>
+<a name="duration_operators"></a><h4>
+<a name="id1290341"></a>Operators</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;&lt;, operator&gt;&gt;</pre></td>
+<td>Streaming operators. <span class="strong"><strong>Note:</strong></span> As of version 1.33, streaming operations have been greatly improved. See <a class="link" href="date_time_io.html" title="Date Time Input/Output">Date Time IO System</a> for more details (including exceptions and error conditions).</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(not_a_date_time);
+stringstream ss("2002-Jan-01");
+ss &gt;&gt; d;
+std::cout &lt;&lt; d; // "2002-Jan-01"
+</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top">
+<pre class="screen">operator==, operator!=,
+operator&gt;, operator&lt;,
+operator&gt;=, operator&lt;=</pre>
+ </td>
+<td>A full complement of comparison operators</td>
+</tr>
+<tr><td><pre class="screen">dd1 == dd2, etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_duration operator+(date_duration) const</pre></td>
+<td>Add date durations.</td>
+</tr>
+<tr><td>
+<pre class="screen">date_duration dd1(3);
+date_duration dd2(5);
+date_duration dd3 = dd1 + dd2;</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_duration operator-(date_duration) const</pre></td>
+<td>Subtract durations.</td>
+</tr>
+<tr><td>
+<pre class="screen">date_duration dd1(3);
+date_duration dd2(5);
+date_duration dd3 = dd1 - dd2;</pre>
+ </td></tr>
+</tbody>
+</table></div>
+<a name="additional_duration_types"></a><h4>
+<a name="id1290526"></a>Additional Duration Types</h4>
+<p>These additional types are logical representations of spans of days.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">months(int num_of_months)</pre></td>
+<td>A logical month representation. Depending on the usage, this <code class="computeroutput">months</code> object may cover a span of 28 to 31 days. The objects also use a snap to end-of-month behavior when used in conjunction with a date that is the last day of a given month. <span class="strong"><strong>WARNING: this behavior may lead to unexpected results.</strong></span> See: <a class="link" href="gregorian.html#snap_to_details">Reversibility of Operations Pitfall</a> for complete details and alternatives.</td>
+</tr>
+<tr><td><pre class="screen">months single(1);
+date leap_year(2004,Jan,31);
+date norm_year(2005,Jan,31);
+leap_year + single; // =&gt; 2004-Feb-29
+norm_year + single; // =&gt; 2005-Feb-28
+date(2005,Jan,1) + single; // =&gt; 2005-Feb-01
+date(2005,Feb,1) + single; // =&gt; 2005-Mar-01
+date(2005,Feb,28) + single; // =&gt; 2005-Mar-31</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">years(int num_of_years)</pre></td>
+<td>A logical representation of a year. The <code class="computeroutput">years</code> object has the same behavior as the <code class="computeroutput">months</code> objects with regards to the end-of-the-month.</td>
+</tr>
+<tr><td><pre class="screen">years single(1);
+date(2003,Feb,28) + single;
+// results in =&gt; 2004-Feb-29
+date(2004,Feb,29) + single;
+// results in =&gt; 2005-Feb-28</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">weeks(int num_of_weeks)</pre></td>
+<td>A duration type representing a number of <code class="computeroutput">n * 7</code> days.</td>
+</tr>
+<tr><td><pre class="screen">weeks single(1);
+date(2005,Jan,1) + single; // =&gt; 2005-Jan-08</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+<a name="snap_to_details"></a>
+</p>
+<h5>
+<a name="id1290721"></a>Reversibility of Operations Pitfall</h5>
+<p>
+</p>
+<p>A natural expectation when adding a number of months to a date, and then subtracting the same number of months, is to end up exactly where you started. This is most often the result the <code class="computeroutput">date_time</code> library provides but there is one significant exception: The snap-to-end-of-month behavior implemented by the <a class="link" href="gregorian.html#additional_duration_types">months</a> duration type. The <a class="link" href="gregorian.html#additional_duration_types">months</a> duration type may provide unexpected results when the starting day is the 28th, 29th, or 30th in a 31 day month. The <a class="link" href="gregorian.html#iterators_intro">month_iterator</a> is not affected by this issue and is therefore included in the examples to illustrate a possible alternative.
+</p>
+<p>
+
+</p>
+<p>When the starting date is in the middle of a month, adding or subtracting any number of months will result in a date that is the same day of month (e.g. if you start on the 15th, you will end on the 15th). When a date is the last day of the month, adding or subtracting any number of months will give a result that is also the last day of the month (e.g if you start on Jan 31st, you will land on: Feb 28th, Mar 31st, etc).
+ </p>
+<pre class="programlisting">
+ // using months duration type
+ date d(2005, Nov, 30); // last day of November
+ d + months(1); // result is last day of December "2005-Dec-31"
+ d - months(1); // result is last day of October "2005-Oct-31"
+
+ // using month_iterator
+ month_iterator itr(d); // last day of November
+ ++itr; // result is last day of December "2005-Dec-31"
+ --itr; // back to original starting point "2005-Nov-30"
+ --itr; // last day of October "2005-Oct-31"
+ </pre>
+<p>
+</p>
+<p>
+
+</p>
+<p>If the start date is the 28th, 29th, or 30th in a 31 day month, the result of adding or subtracting a month may result in the snap-to-end-of-month behavior kicking in unexpectedly. This would cause the final result to be different than the starting date.
+ </p>
+<pre class="programlisting">
+ // using months duration type
+ date d(2005, Nov, 29);
+ d += months(1); // "2005-Dec-29"
+ d += months(1); // "2006-Jan-29"
+ d += months(1); // "2006-Feb-28" --&gt; snap-to-end-of-month behavior kicks in
+ d += months(1); // "2006-Mar-31" --&gt; unexpected result
+ d -= months(4); // "2005-Nov-30" --&gt; unexpected result, not where we started
+
+ // using month_iterator
+ month_iterator itr(date(2005, Dec, 30));
+ ++itr; // "2006-Jan-30" --&gt; ok
+ ++itr; // "2006-Feb-28" --&gt; snap-to DOES NOT kick in
+ ++itr; // "2006-Mar-30" --&gt; ok
+ --itr; // "2006-Feb-28" --&gt; ok
+ --itr; // "2006-Jan-30" --&gt; ok
+ --itr; // "2005-Dec-30" --&gt; ok, back where we started
+ </pre>
+<p>
+</p>
+<p>
+
+</p>
+<p>The additional duration types (<code class="computeroutput">months</code>, <code class="computeroutput">years</code>, and <code class="computeroutput">weeks</code>) are provided as a convenience and can be easily removed to insure this pitfall never occurs. To remove these types simply undefine BOOST_DATE_TIME_OPTIONAL_GREGORIAN_TYPES.</p>
+<p>
+</p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.gregorian.date_period"></a>Date Period</h3></div></div></div>
+<a class="link" href="gregorian.html#period_intro">Introduction</a> --
+ <a class="link" href="gregorian.html#period_header">Header</a> --
+ <a class="link" href="gregorian.html#period_construction">Construction</a> --
+ <a class="link" href="gregorian.html#date_period_mutators">Mutators</a> --
+ <a class="link" href="gregorian.html#period_accessors">Accessors</a> --
+ <a class="link" href="gregorian.html#period_convert_to_string">Convert to String</a> --
+ <a class="link" href="gregorian.html#period_operators">Operators</a><a name="period_intro"></a><h4>
+<a name="id1290907"></a>Introduction</h4>
+<p>
+ The class boost::gregorian::date_period provides direct representation for ranges between two dates. Periods provide the ability to simplify some types of calculations by simplifying the conditional logic of the program. For example, testing if a date is within an irregular schedule such as a weekend or holiday can be accomplished using collections of date periods. This is facilitated by several methods that allow evaluation if a date_period intersects with another date period, and to generate the period resulting from the intersection. The <a class="link" href="examples.html#date_time.examples.date_period_calc" title="Date Period Calculations">date period calculation example</a> provides an example of this.
+ </p>
+<p>
+ A period that is created with beginning and end points being equal, or with a duration of zero, is known as a zero length period. Zero length periods are considered invalid (it is perfectly legal to construct an invalid period). For these periods, the <code class="computeroutput">last</code> point will always be one unit less that the <code class="computeroutput">begin</code> point.
+ </p>
+<p>
+ Date periods used in combination with infinity values have the ability to represent complex concepts such as 'until further notice'.
+ </p>
+<a name="period_header"></a><h4>
+<a name="id1290956"></a>Header</h4>
+<p>
+ </p>
+<pre class="programlisting">#include "boost/date_time/gregorian/gregorian.hpp" //include all types plus i/o
+or
+#include "boost/date_time/gregorian/gregorian_types.hpp" //no i/o just types</pre>
+<p>
+ </p>
+<a name="period_construction"></a><h4>
+<a name="id1290978"></a>Construction</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period(date, date)</pre></td>
+<td>Create a period as [begin, end). If end is &lt;= begin then the period will be invalid.</td>
+</tr>
+<tr><td><pre class="screen">date_period dp(date(2002,Jan,10),
+ date(2002,Jan,12));</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period(date, days)</pre></td>
+<td>Create a period as [begin, begin+len) where end point would be begin+len. If len is &lt;= zero then the period will be defined as invalid.</td>
+</tr>
+<tr><td><pre class="screen">date_period dp(date(2002,Jan,10),
+ days(2));</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period(date_period)</pre></td>
+<td> Copy constructor</td>
+</tr>
+<tr><td><pre class="screen">date_period dp1(dp);</pre></td></tr>
+</tbody>
+</table></div>
+<a name="date_period_mutators"></a><h4>
+<a name="id1291116"></a>Mutators</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period shift(days)</pre></td>
+<td>Add duration to both begin and end.</td>
+</tr>
+<tr><td>
+ <pre class="screen">
+date_period dp(date(2005,Jan,1), days(3));
+dp.shift(days(3));
+// dp == 2005-Jan-04 to 2005-Jan-07
+ </pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period expand(days)</pre></td>
+<td>Subtract duration from begin and add duration to end.</td>
+</tr>
+<tr><td>
+ <pre class="screen">
+date_period dp(date(2005,Jan,2), days(2));
+dp.expand(days(1));
+// dp == 2005-Jan-01 to 2005-Jan-04
+ </pre>
+ </td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="period_accessors"></a><h4>
+<a name="id1291232"></a>Accessors</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date begin()</pre></td>
+<td> Return first day of period.</td>
+</tr>
+<tr><td>
+<pre class="screen">date_period dp(date(2002,Jan,1),
+ date(2002,Jan,10));
+dp.begin() --&gt; 2002-Jan-01</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date last()</pre></td>
+<td>Return last date in the period</td>
+</tr>
+<tr><td>
+<pre class="screen">date_period dp(date(2002,Jan,1),
+ date(2002,Jan,10));
+dp.last() --&gt; 2002-Jan-09</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date end()</pre></td>
+<td>Return one past the last in period</td>
+</tr>
+<tr><td>
+<pre class="screen">date_period dp(date(2002,Jan,1),
+ date(2002,Jan,10));
+dp.end() --&gt; 2002-Jan-10</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">days length()</pre></td>
+<td>Return the length of the date_period</td>
+</tr>
+<tr><td>
+<pre class="screen">date_period dp(date(2002,Jan,1),
+ days(2));
+dp.length() --&gt; 2</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_null()</pre></td>
+<td>True if period is not well formed. eg: end less than or equal to begin.</td>
+</tr>
+<tr><td>
+<pre class="screen">date_period dp(date(2002,Jan,10),
+ date(2002,Jan,1));
+dp.begin() --&gt; true</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool contains(date)</pre></td>
+<td>True if date is within the period. Zero length periods cannot contain any points</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,1);
+date_period dp(d, date(2002,Jan,10));
+dp.contains(date(2002,Jan,2));// true
+date_period dp2(d, d);
+dp.contains(date(2002,Jan,1));// false</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool contains(date_period)</pre></td>
+<td>True if date period is within the period</td>
+</tr>
+<tr><td>
+<pre class="screen">date_period dp1(date(2002,Jan,1),
+ date(2002,Jan,10));
+date_period dp2(date(2002,Jan,2),
+ date(2002,Jan,3));
+dp1.contains(dp2) --&gt; true
+dp2.contains(dp1) --&gt; false</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool intersects(date_period)</pre></td>
+<td>True if periods overlap</td>
+</tr>
+<tr><td>
+<pre class="screen">date_period dp1(date(2002,Jan,1),
+ date(2002,Jan,10));
+date_period dp2(date(2002,Jan,2),
+ date(2002,Jan,3));
+dp2.intersects(dp1) --&gt; true</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period intersection(date_period)</pre></td>
+<td>Calculate the intersection of 2 periods. Null if no intersection.</td>
+</tr>
+<tr><td>
+<pre class="screen">date_period dp1(date(2002,Jan,1),
+ date(2002,Jan,10));
+date_period dp2(date(2002,Jan,2),
+ date(2002,Jan,3));
+dp2.intersection(dp1) --&gt; dp2</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period is_adjacent(date_period)</pre></td>
+<td>Check if two periods are adjacent, but not overlapping.</td>
+</tr>
+<tr><td>
+<pre class="screen">date_period dp1(date(2002,Jan,1),
+ date(2002,Jan,3));
+date_period dp2(date(2002,Jan,3),
+ date(2002,Jan,10));
+dp2.is_adjacent(dp1) --&gt; true</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period is_after(date)</pre></td>
+<td>Determine the period is after a given date.</td>
+</tr>
+<tr><td>
+<pre class="screen">date_period dp1(date(2002,Jan,10),
+ date(2002,Jan,30));
+date d(2002,Jan,3);
+dp1.is_after(d) --&gt; true</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period is_before(date)</pre></td>
+<td>Determine the period is before a given date.</td>
+</tr>
+<tr><td>
+<pre class="screen">date_period dp1(date(2002,Jan,1),
+ date(2002,Jan,3));
+date d(2002,Jan,10);
+dp1.is_before(d) --&gt; true</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period merge(date_period)</pre></td>
+<td>Returns union of two periods. Null if no intersection.</td>
+</tr>
+<tr><td>
+<pre class="screen">date_period dp1(date(2002,Jan,1),
+ date(2002,Jan,10));
+date_period dp2(date(2002,Jan,9),
+ date(2002,Jan,31));
+dp2.merge(dp1)
+// 2002-Jan-01/2002-Jan-31</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period span(date_period)</pre></td>
+<td>Combines two periods and any gap between them such that begin = min(p1.begin, p2.begin) and end = max(p1.end , p2.end)</td>
+</tr>
+<tr><td>
+<pre class="screen">
+date_period dp1(date(2002,Jan,1),
+ date(2002,Jan,5));
+date_period dp2(date(2002,Jan,9),
+ date(2002,Jan,31));
+dp2.span(dp1); // 2002-Jan-01/2002-Jan-31</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period shift(days)</pre></td>
+<td>Add duration to both begin and end.</td>
+</tr>
+<tr><td>
+<pre class="screen">date_period dp1(date(2002,Jan,1),
+ date(2002,Jan,10));
+dp1.shift(days(1));
+// 2002-Jan-02/2002-Jan-11</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period expand(days)</pre></td>
+<td>Subtract duration from begin and add duration to end.</td>
+</tr>
+<tr><td>
+<pre class="screen">date_period dp1(date(2002,Jan,4),
+ date(2002,Jan,10));
+dp1.expand(days(2));
+// 2002-Jan-02/2002-Jan-12</pre>
+ </td></tr>
+</tbody>
+</table></div>
+<a name="period_convert_to_string"></a><h4>
+<a name="id1291798"></a>Convert to String</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_simple_string(date_period dp)</pre></td>
+<td>To <code class="computeroutput">[YYYY-mmm-DD/YYYY-mmm-DD]</code> string where <code class="computeroutput">mmm</code> is 3 char month name.</td>
+</tr>
+<tr><td><pre class="screen">[2002-Jan-01/2002-Jan-31]</pre></td></tr>
+</tbody>
+</table></div>
+<a name="period_operators"></a><h4>
+<a name="id1291885"></a>Operators</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;&lt;</pre></td>
+<td>ostream operator for date_period. Uses facet to format time points. Typical output: [2002-Jan-01/2002-Jan-31].</td>
+</tr>
+<tr><td><pre class="screen">std::cout &lt;&lt; dp &lt;&lt; std::endl;</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&gt;&gt;</pre></td>
+<td>istream operator for date_period. Uses facet to parse time points.</td>
+</tr>
+<tr><td><pre class="screen">"[2002-Jan-01/2002-Jan-31]"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top">
+<pre class="screen">operator==, operator!=,
+operator&gt;, operator&lt;</pre>
+ </td>
+<td>A full complement of comparison operators</td>
+</tr>
+<tr><td><pre class="screen">dp1 == dp2, etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;</pre></td>
+<td>True if dp1.end() less than dp2.begin()</td>
+</tr>
+<tr><td><pre class="screen">dp1 &lt; dp2, etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&gt;</pre></td>
+<td>True if dp1.begin() greater than dp2.end()</td>
+</tr>
+<tr><td><pre class="screen">dp1 &gt; dp2, etc</pre></td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.gregorian.date_iterators"></a>Date Iterators</h3></div></div></div>
+<a class="link" href="gregorian.html#iterators_intro">Introduction</a> --
+ <a class="link" href="gregorian.html#iterators_header">Header</a> --
+ <a class="link" href="gregorian.html#iterators_overview">Overview</a><a name="iterators_intro"></a><h4>
+<a name="id1292113"></a>Introduction</h4>
+<p>
+ Date iterators provide a standard mechanism for iteration through dates. Date iterators are a model of <a href="http://www.sgi.com/tech/stl/BidirectionalIterator.html" target="_top">Bidirectional Iterator</a> and can be used to populate collections with dates and other date generation tasks. For example, the <a class="link" href="examples.html#date_time.examples.print_month" title="Print Month">print month</a> example iterates through all the days in a month and prints them.
+ </p>
+<p>
+ All of the iterators here derive from boost::gregorian::date_iterator.
+ </p>
+<a name="iterators_header"></a><h4>
+<a name="id1292152"></a>Header</h4>
+<p>
+ </p>
+<pre class="programlisting">#include "boost/date_time/gregorian/gregorian.hpp" //include all types plus i/o
+or
+#include "boost/date_time/gregorian/gregorian_types.hpp" //no i/o just types</pre>
+<p>
+ </p>
+<a name="iterators_overview"></a><h4>
+<a name="id1292174"></a>Overview</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_iterator</pre></td>
+<td>Common (abstract) base class for all day level iterators.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">day_iterator(date start_date, int day_count=1)</pre></td>
+<td>Iterate <code class="computeroutput">day_count</code> days at a time. This iterator does not provide postfix increment/decrement operators. Only prefix operators are provided.</td>
+</tr>
+<tr><td><pre class="screen">day_iterator day_itr(date(2005,Jan,1));
+++d_itr; // 2005-Jan-02
+day_iterator 2day_itr(date(2005,Feb,1),2);
+++2d_itr; // 2005-Feb-03</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">week_iterator(...)
+ Parameters:
+ date start_date
+ int week_offset (defaults to 1)</pre></td>
+<td>Iterate <code class="computeroutput">week_offset</code> weeks at a time. This iterator does not provide postfix increment/decrement operators. Only prefix operators are provided.</td>
+</tr>
+<tr><td><pre class="screen">week_iterator wk_itr(date(2005,Jan,1));
+++wk_itr; // 2005-Jan-08
+week_iterator 2wk_itr(date(2005,Jan,1),2);
+++2wk_itr; // 2005-Feb-15</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">month_iterator(...)
+ Parameters:
+ date start_date
+ int month_offset (defaults to 1)</pre></td>
+<td>Iterate <code class="computeroutput">month_offset</code> months. There are special rules for handling the end of the month. These are: if start date is last day of the month, always adjust to last day of the month. If date is beyond the end of the month (e.g. Jan 31 + 1 month) adjust back to end of month (for more details and examples of this, see <a class="link" href="gregorian.html#snap_to_details">Reversibility of Operations Pitfall</a>. <span class="strong"><strong>NOTE:</strong></span> the <code class="computeroutput">month_iterator</code> is not effected by this pitfall.) This iterator does not provide postfix increment/decrement operators. Only prefix operators are provided.</td>
+</tr>
+<tr><td><pre class="screen">month_iterator m_itr(date(2005,Jan,1));
+++m_itr; // 2005-Feb-01
+month_iterator 2m_itr(date(2005,Feb,1),2);
+++2m_itr; // 2005-Apr-01</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">year_iterator(...)
+ Parameters:
+ date start_date
+ int year_offset (defaults to 1)</pre></td>
+<td>Iterate year_offset years. The year_iterator will always land on the day of the date parameter except when date is Feb 28 in a non-leap year. In this case the iterator will return Feb 29 for leap years (eg: 2003-Feb-28, 2004-Feb-29, 2005-Feb-28). This iterator does not provide postfix increment/decrement operators. Only prefix operators are provided.</td>
+</tr>
+<tr><td><pre class="screen">year_iterator y_itr(date(2005,Jan,1));
+++y_itr; // 2006-Jan-01
+year_iterator 2y_itr(date(2005,Feb,1),2);
+++2y_itr; // 2007-Feb-01</pre></td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.gregorian.date_algorithms"></a>Date Generators/Algorithms</h3></div></div></div>
+<h3>
+<a name="id1292429"></a>Date Generators/Algorithms</h3>
+<a class="link" href="gregorian.html#algo_intro">Introduction</a> --
+ <a class="link" href="gregorian.html#algo_header">Header</a> --
+ <a class="link" href="gregorian.html#algo_overview">Class Overview</a> --
+ <a class="link" href="gregorian.html#algo_func_overview">Function Overview</a><a name="algo_intro"></a><h4>
+<a name="id1292474"></a>Introduction</h4>
+<p>
+ Date algorithms or generators are tools for generating other dates or schedules of dates. A generator function starts with some part of a date such as a month and day and is supplied another part to then generate a concrete date. This allows the programmer to represent concepts such as "The first Sunday in February" and then create a concrete set of dates when provided with one or more years.
+ <span class="emphasis"><em>Note</em></span>: As of boost version 1_31_0, date generator names have been changed. Old names are still available but are no longer documented and may someday be deprecated
+ </p>
+<p>Also provided are stand-alone functions for generating a date, or calculation a duration of days. These functions take a date object and a weekday object as parameters.
+ </p>
+<p>All date generator classes and functions are in the boost::gregorian namespace.
+ </p>
+<p>
+ The <a class="link" href="examples.html#date_time.examples.print_holidays" title="Print Holidays">print holidays</a> example shows a detailed usage example.
+ </p>
+<a name="algo_header"></a><h4>
+<a name="id1292524"></a>Header</h4>
+<pre class="programlisting">#include "boost/date_time/gregorian/gregorian.hpp"</pre>
+<p>
+ </p>
+<a name="algo_overview"></a><h4>
+<a name="id1292544"></a>Overview</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Class and get_date Parameter</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">year_based_generator
+date get_date(greg_year year)</pre></td>
+<td>A unifying (abstract) date_generator base type for: <code class="computeroutput">partial_date</code>, <code class="computeroutput">nth_day_of_the_week_in_month</code>, <code class="computeroutput">first_day_of_the_week_in_month</code>, and <code class="computeroutput">last_day_of_the_week_in_month</code>.</td>
+</tr>
+<tr><td>The <a class="link" href="examples.html#date_time.examples.print_holidays" title="Print Holidays">print holidays</a> example shows a detailed usage example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">last_day_of_the_week_in_month(greg_weekday,
+ greg_month)
+date get_date(greg_year year)</pre></td>
+<td>Calculate something like last Monday of January</td>
+</tr>
+<tr><td>
+<pre class="screen">last_day_of_the_week_in_month lwdm(Monday,Jan);
+date d = lwdm.get_date(2002);
+//2002-Jan-28</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">first_day_of_the_week_in_month(greg_weekday,
+ greg_month)
+date get_date(greg_year year)</pre></td>
+<td>Calculate something like first Monday of January</td>
+</tr>
+<tr><td>
+<pre class="screen">first_day_of_the_week_in_month fdm(Monday,Jan);
+date d = fdm.get_date(2002);
+//2002-Jan-07</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">nth_day_of_the_week_in_month(week_num,
+ greg_weekday,
+ greg_month)
+date get_date(greg_year year)</pre></td>
+<td>
+<code class="computeroutput">week_num</code> is a public enum member of <code class="computeroutput">nth_day_of_the_week_in_month</code>. Calculate something like first Monday of January, second Tuesday of March, Third Sunday of December, etc. (first through fifth are provided, fifth is the equivalent of last)</td>
+</tr>
+<tr><td>
+<pre class="screen">typedef nth_day_of_the_week_in_month nth_dow;
+nth_dow ndm(nth_dow::third, Monday,Jan);
+date d = ndm.get_date(2002);
+//2002-Jan-21</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">partial_date(greg_day, greg_month)
+date get_date(greg_year year)</pre></td>
+<td>Generates a date by applying the year to the given month and day.</td>
+</tr>
+<tr><td>
+<pre class="screen">partial_date pd(1,Jan);
+date d = pd.get_date(2002);
+//2002-Jan-01</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">first_day_of_the_week_after(greg_weekday)
+date get_date(date d)</pre></td>
+<td>Calculate something like First Sunday after Jan 1,2002</td>
+</tr>
+<tr><td>
+<pre class="screen">first_day_of_the_week_after fdaf(Monday);
+date d = fdaf.get_date(date(2002,Jan,1));
+//2002-Jan-07</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">first_day_of_the_week_before(greg_weekday)
+date get_date(date d)</pre></td>
+<td>Calculate something like First Monday before Feb 1,2002</td>
+</tr>
+<tr><td>
+<pre class="screen">first_day_of_the_week_before fdbf(Monday);
+date d = fdbf.get_date(date(2002,Feb,1));
+//2002-Jan-28</pre>
+ </td></tr>
+</tbody>
+</table></div>
+<a name="algo_func_overview"></a><h4>
+<a name="id1292854"></a>Function Overview</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Function Prototype</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">days days_until_weekday date, greg_weekday)</pre></td>
+<td> Calculates the number of days from given date until given weekday.</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2004,Jun,1); // Tuesday
+greg_weekday gw(Friday);
+days_until_weekday(d, gw); // 3 days</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">days days_before_weekday(date, greg_weekday)</pre></td>
+<td> Calculates the number of day from given date to previous given weekday.</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2004,Jun,1); // Tuesday
+greg_weekday gw(Friday);
+days_before_weekday(d, gw); // 4 days</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date next_weekday(date, greg_weekday)</pre></td>
+<td> Generates a date object representing the date of the following weekday from the given date.</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2004,Jun,1); // Tuesday
+greg_weekday gw(Friday);
+next_weekday(d, gw); // 2004-Jun-4</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date previous_weekday(date, greg_weekday)</pre></td>
+<td> Generates a date object representing the date of the previous weekday from the given date.</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2004,Jun,1); // Tuesday
+greg_weekday gw(Friday);
+previous_weekday(d, gw); // 2004-May-28</pre>
+ </td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.gregorian.gregorian_calendar"></a>Gregorian Calendar</h3></div></div></div>
+<a class="link" href="gregorian.html#gregcal_intro">Introduction</a> --
+ <a class="link" href="gregorian.html#gregcal_header">Header</a> --
+ <a class="link" href="gregorian.html#gregcal_functions">Functions</a><a name="gregcal_intro"></a><h4>
+<a name="id1293335"></a>Introduction</h4>
+<p>
+ The class boost::gregorian::gregorian_calendar implements the functions necessary to create the gregorian date system. It converts to the year-month-day form of a date to a day number representation and back.
+ </p>
+<p>
+ For most purposes this class is simply accessed by <a class="link" href="gregorian.html#date_time.gregorian.date_class" title="Date">gregorian::date</a> and is not used directly by the user. However, there are useful functions that might be of use such as the end_of_month_day function.
+ </p>
+<p>
+ The <a class="link" href="examples.html#date_time.examples.print_month" title="Print Month">print month</a> example demonstrates this.
+ </p>
+<a name="gregcal_header"></a><h4>
+<a name="id1293378"></a>Header</h4>
+<p>
+ </p>
+<pre class="programlisting">#include "boost/date_time/gregorian/gregorian.hpp" //include all types plus i/o
+or
+#include "boost/date_time/gregorian/gregorian_types.hpp" //no i/o just types</pre>
+<p>
+ </p>
+<a name="gregcal_functions"></a><h4>
+<a name="id1293401"></a>Functions</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">static short day_of_week(ymd_type)</pre></td>
+<td>Return the day of the week (0==Sunday, 1==Monday, etc)</td>
+</tr>
+<tr><td>See also <a class="link" href="gregorian.html#date_time.gregorian.date_class" title="Date">gregorian::date</a> day_of_week</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">static date_int_type day_number(ymd_type)</pre></td>
+<td> Convert a ymd_type into a day number. The day number is an absolute number of days since the epoch start.</td>
+</tr>
+<tr><td>&#160;</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">static short end_of_month_day(year_type,
+ month_type)</pre></td>
+<td>Given a year and month determine the last day of the month.</td>
+</tr>
+<tr><td>&#160;</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">static ymd_type from_day_number(date_int_type)</pre></td>
+<td> Convert a day number to a ymd struct.</td>
+</tr>
+<tr><td>&#160;</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">static bool is_leap_year(year_type)</pre></td>
+<td>Returns true if specified year is a leap year.</td>
+</tr>
+<tr><td><pre class="screen">gregorian_calendar::is_leap_year(2000)
+//--&gt; true</pre></td></tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2005 CrystalClear Software, Inc<p>Subject to the Boost Software License, Version 1.0. (See accompanying file
+ <code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="examples/general_usage_examples.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="posix_time.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_time/local_time.html b/doc/html/date_time/local_time.html
new file mode 100644
index 0000000000..52af1daac3
--- /dev/null
+++ b/doc/html/date_time/local_time.html
@@ -0,0 +1,1657 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Local Time</title>
+<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
+<link rel="up" href="../date_time.html" title="Chapter&#160;7.&#160;Boost.Date_Time">
+<link rel="prev" href="posix_time.html" title="Posix Time">
+<link rel="next" href="date_time_io.html" title="Date Time Input/Output">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.html">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
+<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="posix_time.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="date_time_io.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="date_time.local_time"></a>Local Time</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="local_time.html#date_time.local_time.time_zone_base">Time Zone (abstract)</a></span></dt>
+<dt><span class="section"><a href="local_time.html#date_time.local_time.posix_time_zone">Posix Time Zone</a></span></dt>
+<dt><span class="section"><a href="local_time.html#date_time.local_time.tz_database">Time Zone Database</a></span></dt>
+<dt><span class="section"><a href="local_time.html#date_time.local_time.custom_time_zone">Custom Time Zone</a></span></dt>
+<dt><span class="section"><a href="local_time.html#date_time.local_time.local_date_time">Local Date Time</a></span></dt>
+<dt><span class="section"><a href="local_time.html#date_time.local_time.local_time_period">Local Time Period</a></span></dt>
+</dl></div>
+<h3>
+<a name="id1298982"></a>Local Time System</h3>
+<p>
+ <a class="link" href="local_time.html#local_intro">Introduction</a> --
+ <a class="link" href="local_time.html#local_ex">Usage Examples</a>
+ </p>
+<a name="local_intro"></a><h4>
+<a name="id1299013"></a>Introduction</h4>
+<p>
+ The library supports 4 main extensions for the management of local times. This includes
+ </p>
+<table border="0" summary="Simple list" class="simplelist">
+<tr><td>local_date_time -- locally adjusted time point</td></tr>
+<tr><td>posix_time_zone -- time zone defined by posix string (eg: "EST10EDT,M10.5.0,M3.5.0/03")</td></tr>
+<tr><td>time_zone_database -- get time zones by region from .csv file (eg: America/New York)</td></tr>
+<tr><td>time_zone -- abstract time zone interface</td></tr>
+</table>
+<p>
+ </p>
+<p>
+ Together, these extensions define a time system adjusted for recording times related to a specific earth location. This time system utilizes all the features and benefits of the posix_time system (see <a class="link" href="posix_time.html" title="Posix Time">posix_time</a> for full details). It uses a time_zone object which contains all the necessary data/rules to enable adjustments to and from various time zones. The time_zone objects used in date_time are handled via a boost::shared_ptr&lt;boost::local_time::time_zone&gt;.
+ </p>
+<p>
+ The phrase "wall-clock" refers to the time that would be shown on a wall clock in a particular time zone at any point in time. Local_time uses a time zone object to account for differences in time zones and daylight savings adjustments. For example: While 5:00 pm, October 10, 2004 in Sydney Australia occurs at exactly the same instant as 3:00 am, October 10, 2004 in New York USA, it is a 14 hour difference in wall-clock times. However, a point in time just one day later will result in a 16 hour difference in wall-clock time due to daylight savings adjustments in both time zones. The local_time system tracks these by means of a time point, stored as UTC, and time_zone objects that contain all the necessary data to correctly calculate wall-clock times.
+ </p>
+<a name="local_ex"></a><h4>
+<a name="id1299061"></a>Usage Examples</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Example</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a class="link" href="examples.html#date_time.examples.simple_time_zone" title="Simple Time Zones">Simple Time Zone</a></td>
+<td>Side by side examples of Time Zone usage. Both <span class="type">custom_time_zone</span> and <span class="type">posix_time_zone</span> are shown.</td>
+</tr>
+<tr>
+<td><a class="link" href="examples.html#date_time.examples.calc_rules" title="Daylight Savings Calc Rules">Daylight Savings Calc Rules</a></td>
+<td>Simple example showing the creation of all five <span class="type">dst_calc_rule</span> types.</td>
+</tr>
+<tr>
+<td><a class="link" href="examples.html#date_time.examples.seconds_since_epoch" title="Seconds Since Epoch">Seconds Since Epoch</a></td>
+<td>Example that calculates the total seconds elapsed since the epoch (1970-Jan-01) utilizing local_date_time.</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.local_time.time_zone_base"></a>Time Zone (abstract)</h3></div></div></div>
+<a class="link" href="local_time.html#time_zone_base_intro">Introduction</a> --
+ <a class="link" href="local_time.html#time_zone_base_header">Header</a> --
+ <a class="link" href="local_time.html#time_zone_base_constr">Construction</a> --
+ <a class="link" href="local_time.html#time_zone_base_accessors">Accessors</a><a name="time_zone_base_intro"></a><h4>
+<a name="id1299230"></a>Introduction</h4>
+<p>
+ The time_zone_base class is an abstract base class template for representing time zones. Time zones are a set of data and rules that provide information about a time zone. The date_time library handles time_zones by means of a boost::shared_ptr&lt;time_zone_base&gt;. A user's custom time zone class will work in the date_time library by means of this shared_ptr.
+ </p>
+<p>
+ For convienience, the time_zone_base class is typedef'd as time_zone. All references in the documentation to time_zone, are referring to this typedef.
+ </p>
+<a name="time_zone_base_header"></a><h4>
+<a name="id1299250"></a>Header</h4>
+<p>
+ The time_zone_base class is defined in the header:
+ </p>
+<pre class="programlisting">#include "boost/date_time/time_zone_base.hpp"
+ </pre>
+<p>
+ </p>
+<a name="time_zone_base_constr"></a><h4>
+<a name="id1299273"></a>Construction</h4>
+<p>
+ A default constructor is provided in the time_zone_base class. There are no private data members in this base class to initialize.
+ </p>
+<p>
+ Template parameters are time_type (typically posix_time::ptime) and CharT (defaults to char).
+ </p>
+<a name="time_zone_base_accessors"></a><h4>
+<a name="id1299295"></a>Accessors</h4>
+<p>
+ All of the accessors listed here are pure virtual functions.
+ </p>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">
+string_type dst_zone_abbrev();</pre></td>
+<td>Returns the daylight savings abbreviation for the represented time zone.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">
+string_type std_zone_abbrev();</pre></td>
+<td>Returns the standard abbreviation for the represented time zone.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">
+string_type dst_zone_name();</pre></td>
+<td>Returns the daylight savings name for the represented time zone.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">
+string_type std_zone_name();</pre></td>
+<td>Returns the standard name for the represented time zone.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">bool has_dst();</pre></td>
+<td>Returns true if this time zone does not make a daylight savings shift.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">
+time_type dst_local_start_time(year_type);</pre></td>
+<td>The date and time daylight savings time begins in given year.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">
+time_type dst_local_end_time(year_type);</pre></td>
+<td valign="top">The date and time daylight savings time ends in given year.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">
+time_duration_type base_utc_offset();</pre></td>
+<td>The amount of time offset from UTC (typically in hours).</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">
+time_duration_type dst_offset();</pre></td>
+<td>The amount of time shifted during daylight savings.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">
+std::string to_posix_string();</pre></td>
+<td>Returns a posix time zone string representation of this time_zone_base object. For a detailed description of a posix time zone string see <a class="link" href="local_time.html#date_time.local_time.posix_time_zone" title="Posix Time Zone">posix_time_zone</a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.local_time.posix_time_zone"></a>Posix Time Zone</h3></div></div></div>
+<a class="link" href="local_time.html#posix_time_zone_intro">Introduction</a> --
+ <a class="link" href="local_time.html#posix_time_zone_notes">Important Notes</a> --
+ <a class="link" href="local_time.html#posix_time_zone_header">Header</a> --
+ <a class="link" href="local_time.html#posix_time_zone_constr">Construction</a> --
+ <a class="link" href="local_time.html#posix_time_zone_accessors">Accessors</a><a name="posix_time_zone_intro"></a><h4>
+<a name="id1299574"></a>Introduction</h4>
+<p>
+ A posix_time_zone object is a set of data and rules that provide information about a time zone. Information such as the offset from UTC, it's name and abbreviation, as well as daylight savings rules, called <a class="link" href="local_time.html#date_time.local_time.dst_calc_rules">dst_calc_rules</a>. These rules are stored as a boost::shared_ptr&lt;dst_calc_rules&gt;.
+ </p>
+<p>
+ As a convenience, a typedef for shared_ptr&lt;dst_calc_rules&gt; is provided.
+ </p>
+<pre class="programlisting">typedef boost::shared_ptr&lt;dst_calc_rules&gt; local_time::dst_calc_rule_ptr;</pre>
+<p>
+ </p>
+<p>
+ A posix_time_zone is unique in that the object is created from a Posix time zone string (IEEE Std 1003.1). A POSIX time zone string takes the form of:
+ </p>
+<div class="literallayout"><p><br>
+&#160;&#160;&#160;&#160;&#160;&#160;"std&#160;offset&#160;dst&#160;[offset],start[/time],end[/time]"&#160;(w/no&#160;spaces).</p></div>
+<p>'std' specifies the abbrev of the time zone. 'offset' is the offset from UTC. 'dst' specifies the abbrev of the time zone during daylight savings time. The second offset is how many hours changed during DST. 'start' and 'end' are the dates when DST goes into (and out of) effect. 'offset' takes the form of:
+ </p>
+<div class="literallayout"><p><br>
+&#160;&#160;&#160;&#160;&#160;&#160;[+|-]hh[:mm[:ss]]&#160;{h=0-23,&#160;m/s=0-59}</p></div>
+<p>'time' and 'offset' take the same form. 'start' and 'end' can be one of three forms:
+ </p>
+<div class="literallayout"><p><br>
+&#160;&#160;&#160;&#160;&#160;&#160;Mm.w.d&#160;{month=1-12,&#160;week=1-5&#160;(5&#160;is&#160;always&#160;last),&#160;day=0-6}<br>
+&#160;&#160;&#160;&#160;&#160;&#160;Jn&#160;{n=1-365&#160;Feb29&#160;is&#160;never&#160;counted}<br>
+&#160;&#160;&#160;&#160;&#160;&#160;n&#160;{n=0-365&#160;Feb29&#160;is&#160;counted&#160;in&#160;leap&#160;years}</p></div>
+<p>
+ </p>
+<p>
+ Exceptions will be thrown under the following conditions:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">An exception will be thrown for an invalid date spec (see <a class="link" href="gregorian.html#date_time.gregorian.date_class" title="Date">date class</a>).</li>
+<li class="listitem">A boost::local_time::bad_offset exception will be thrown for:</li>
+<li class="listitem">A DST start or end offset that is negative or more than 24 hours.</li>
+<li class="listitem">A UTC zone that is greater than +14 or less than -12 hours.</li>
+<li class="listitem">A boost::local_time::bad_adjustment exception will be thrown for a DST adjustment that is 24 hours or more (positive or negative)</li>
+</ul></div>
+<p>
+ </p>
+<p>As stated above, the 'offset' and '/time' portions of the string are not required. If they are not given they default to 01:00 for 'offset', and 02:00 for both occurrences of '/time'.
+ </p>
+<p>
+ Some examples are:
+ </p>
+<div class="literallayout"><p><br>
+&#160;&#160;&#160;&#160;&#160;&#160;"PST-8PDT01:00:00,M4.1.0/02:00:00,M10.1.0/02:00:00"<br>
+&#160;&#160;&#160;&#160;&#160;&#160;"PST-8PDT,M4.1.0,M10.1.0"</p></div>
+<p>These two are actually the same specification (defaults were used in the second string). This zone lies eight hours west of GMT and makes a one hour shift forward during daylight savings time. Daylight savings for this zone starts on the first Sunday of April at 2am, and ends on the first Sunday of October at 2am.
+ </p>
+<div class="literallayout"><p><br>
+&#160;&#160;&#160;&#160;&#160;&#160;"MST-7"</p></div>
+<p>This zone is as simple as it gets. This zone lies seven hours west of GMT and has no daylight savings.
+ </p>
+<div class="literallayout"><p><br>
+&#160;&#160;&#160;&#160;&#160;&#160;"EST10EDT,M10.5.0,M3.5.0/03"</p></div>
+<p>This string describes the time zone for Sydney Australia. It lies ten hours east of GMT and makes a one hour shift forward during daylight savings. Being located in the southern hemisphere, daylight savings begins on the last Sunday in October at 2am and ends on the last Sunday in March at 3am.
+ </p>
+<div class="literallayout"><p><br>
+&#160;&#160;&#160;&#160;&#160;&#160;"FST+3FDT02:00,J60/00,J304/02"</p></div>
+<p>This specification describes a fictitious zone that lies three hours east of GMT. It makes a two hour shift forward for daylight savings which begins on March 1st at midnight, and ends on October 31st at 2am. The 'J' designation in the start/end specs signifies that counting starts at one and February 29th is never counted.
+ </p>
+<div class="literallayout"><p><br>
+&#160;&#160;&#160;&#160;&#160;&#160;"FST+3FDT,59,304"</p></div>
+<p>This specification is significant because of the '59'. The lack of 'J' for the start and end dates, indicates that the Julian day-count begins at zero and ends at 365. If you do the math, you'll see that allows for a total of 366 days. This is fine in leap years, but in non-leap years '59' (Feb-29) does not exist. This will construct a valid posix_time_zone object but an exception will be thrown if the date of '59' is accessed in a non-leap year. Ex:
+ </p>
+<pre class="programlisting">posix_time_zone leap_day(std::string("FST+3FDT,59,304"));
+leap_day.dst_local_start_time(2004); // ok
+leap_day.dst_local_start_time(2003); // Exception thrown</pre>
+<p>
+ </p>
+<p>
+ The posix_time_zone objects are used via a boost::shared_ptr&lt;local_time::time_zone_base&gt;. As a convenience, a typedef for boost::shared_ptr&lt;local_time::time_zone_base&gt; is provided:
+ </p>
+<pre class="programlisting">typedef boost::shared_ptr&lt;time_zone_base&gt; local_time::time_zone_ptr;</pre>
+<p>
+ </p>
+<p>
+ See <a class="link" href="examples.html#date_time.examples.simple_time_zone" title="Simple Time Zones">Simple time zone</a> for a side by side example of time_zone and posix_time_zone usage.
+ </p>
+<a name="posix_time_zone_notes"></a><h4>
+<a name="id1299811"></a>Important Notes</h4>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">posix_time_zone objects use the standard and daylight savings abbreviations in place of the full names (see <a class="link" href="local_time.html#posix_time_zone_accessors">Accessors</a> below).</li>
+<li class="listitem">'Jn' and 'n' date specifications can not be mixed in a specification string. Ex: "FST+3FDT,59,J304" </li>
+<li class="listitem">'n' date specification of 59 represents Feb-29. Do not attempt to access in a non-leap year or an exception will be thrown.</li>
+</ul></div>
+<a name="posix_time_zone_header"></a><h4>
+<a name="id1299849"></a>Header</h4>
+<p>
+ The inclusion of a single header will bring in all boost::local_time types, functions, and IO operators.
+ </p>
+<pre class="programlisting">#include "boost/date_time/local_time/local_time.hpp"</pre>
+<p>
+ </p>
+<a name="posix_time_zone_constr"></a><h4>
+<a name="id1299872"></a>Construction</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Syntax</th>
+<th>Example</th>
+</tr></thead>
+<tbody><tr>
+<td valign="top"><pre class="screen">posix_time_zone(std::string)</pre></td>
+<td>
+<pre class="screen">std::string nyc("EST-5EDT,M4.1.0,M10.5.0");
+time_zone_ptr zone(new posix_time_zone(nyc));</pre>
+ </td>
+</tr></tbody>
+</table></div>
+<p>
+ </p>
+<a name="posix_time_zone_accessors"></a><h4>
+<a name="id1299935"></a>Accessors</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string dst_zone_abbrev()</pre></td>
+<td>Returns the daylight savings abbreviation for the represented time zone.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;dst_zone_abbrev(); // "EDT"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string std_zone_abbrev()</pre></td>
+<td>Returns the standard abbreviation for the represented time zone.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;std_zone_abbrev(); // "EST"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string dst_zone_name()</pre></td>
+<td>Returns the daylight savings ABBREVIATION for the represented time zone.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;dst_zone_name(); // "EDT"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string std_zone_name()</pre></td>
+<td>Returns the standard ABBREVIATION for the represented time zone.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;std_zone_name(); // "EST"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool has_dst()</pre></td>
+<td>Returns true when time_zone's shared_ptr to dst_calc_rules is not NULL.</td>
+</tr>
+<tr><td>
+<pre class="screen">nyc_zone_sh_ptr-&gt;has_dst(); // true
+phx_zone_sh_ptr-&gt;has_dst(); // false</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">
+ptime dst_local_start_time(greg_year)</pre></td>
+<td>The date and time daylight savings time begins in given year. Returns not_a_date_time if this zone has no daylight savings.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;dst_local_start_time(2004);
+// 2004-Apr-04 02:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">
+ptime dst_local_end_time(greg_year)</pre></td>
+<td>The date and time daylight savings time ends in given year. Returns not_a_date_time if this zone has no daylight savings.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;dst_local_end_time(2004);
+// 2004-Oct-31 02:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">
+time_duration base_utc_offset()</pre></td>
+<td>The amount of time offset from UTC (typically in hours).</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;base_utc_offset(); // -05:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">posix_time::time_duration dst_offset()</pre></td>
+<td>The amount of time shifted during daylight savings.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;dst_offset(); // 01:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_posix_string()</pre></td>
+<td>Returns a posix time zone string representation of this time_zone_base object. Depending on how the time_zone object was created, the date-spec format of the string will be in either 'M' notation or 'n' notation. Every possible date-spec that can be represented in 'J' notation can also be represented in 'n' notation. The reverse is not true so only 'n' notation is used for these types of date-specs. For a detailed description of a posix time zone string see <a class="link" href="local_time.html#date_time.local_time.posix_time_zone" title="Posix Time Zone">posix_time_zone</a>.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;to_posix_string();
+// "EST-05EDT+01,M4.1.0/02:00,M10.5.0/02:00"
+phx_zone_sh_ptr-&gt;to_posix_string();
+// "MST-07"
+ </pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.local_time.tz_database"></a>Time Zone Database</h3></div></div></div>
+<a class="link" href="local_time.html#tz_database_intro">Introduction</a> --
+ <a class="link" href="local_time.html#tz_database_header">Header</a> --
+ <a class="link" href="local_time.html#tz_database_constr">Construction</a> --
+ <a class="link" href="local_time.html#tz_database_accessors">Accessors</a> --
+ <a class="link" href="local_time.html#tz_database_datafile">Data File Details</a><a name="tz_database_intro"></a><h4>
+<a name="id1300365"></a>Introduction</h4>
+<p>
+ The local_time system depends on the ability to store time zone information. Our Time Zone Database (tz_database) is a means of permanently storing that data. The specifications for many time zones (377 at this time) are provided. These specifications are based on data found in the <a href="http://www.twinsun.com/tz/tz-link.htm" target="_top">zoneinfo datebase</a>. The specifications are stored in the file:</p>
+<pre class="screen">libs/date_time/data/date_time_zonespec.csv</pre>
+<p>. While this file already contains specifications for many time zones, it's real intent is for the user to modify it by adding (or removing) time zones to fit their application. See <a class="link" href="local_time.html#tz_database_datafile">Data File Details</a> to learn how this is accomplished.
+ </p>
+<a name="tz_database_header"></a><h4>
+<a name="id1300409"></a>Header</h4>
+<p>
+ The inclusion of a single header will bring in all boost::local_time types, functions, and IO operators.
+ </p>
+<pre class="programlisting">#include "boost/date_time/local_time/local_time.hpp"
+ </pre>
+<p>
+ </p>
+<a name="tz_database_constr"></a><h4>
+<a name="id1300433"></a>Construction</h4>
+<p>
+ The only constructor takes no arguments and creates an empty database. It is up to the user to populate the database. This is typically achieved by loading the desired datafile, but can also be accomplished by means of the <code class="computeroutput">add_record(...)</code> function (see the <a class="link" href="local_time.html#tz_database_accessors">Accessors table</a>). A <code class="computeroutput">local_time::data_not_accessible</code> exception will be thrown if given zonespec file cannot be found. <code class="computeroutput">local_time::bad_field_count</code> exception will be thrown if the number of fields in given zonespec file is incorrect.
+ </p>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">tz_database()</pre></td>
+<td>Constructor creates an empty database.</td>
+</tr>
+<tr><td><pre class="screen">tz_database tz_db;</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool load_from_file(std::string)</pre></td>
+<td>Parameter is path to a time zone spec csv file (see <a class="link" href="local_time.html#tz_database_datafile">Data File Details</a> for details on the contents of this file). This function populates the database with time zone records found in the zone spec file. A <code class="computeroutput">local_time::data_not_accessible</code> exception will be thrown if given zonespec file cannot be found. <code class="computeroutput">local_time::bad_field_count</code> exception will be thrown if the number of fields in given zonespec file is incorrect.</td>
+</tr>
+<tr><td>
+<pre class="screen">tz_database tz_db;
+tz_db.load_from_file("./date_time_zonespec.csv");</pre>
+ </td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="tz_database_accessors"></a><h4>
+<a name="id1300596"></a>Accessors</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool tz_db.add_record(std::string id,
+ <a class="link" href="local_time.html#date_time.local_time.custom_time_zone_ptr">time_zone_ptr</a> tz);</pre></td>
+<td>Adds a time_zone, or a posix_time_zone, to the database. ID is the region name for this zone (Ex: "America/Phoenix").</td>
+</tr>
+<tr><td>
+<pre class="screen">time_zone_ptr zone(
+ new posix_time_zone("PST-8PDT,M4.1.0,M10.1.0")
+);
+std::string id("America/West_Coast");
+tz_db.add_record(id, zone);</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_zone_ptr
+ tz_db.time_zone_from_region(string id);</pre></td>
+<td>Returns a time_zone, via a time_zone_ptr, that matches the region listed in the data file. A null pointer is returned if no match is found.
+ </td>
+</tr>
+<tr><td>
+<pre class="screen">time_zone_ptr nyc =
+ tz_db.time_zone_from_region("America/New_York");</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">vector&lt;string&gt; tz_db.region_list();</pre></td>
+<td>Returns a vector of strings that holds all the region ID strings from the database.</td>
+</tr>
+<tr><td>
+<pre class="screen">std::vector&lt;std::string&gt; regions;
+regions = tz_db.region_list();</pre>
+ </td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="tz_database_datafile"></a><h4>
+<a name="id1300756"></a>Data File Details</h4>
+<a class="link" href="local_time.html#tz_database_fields">Field Description/Details</a><p>
+ The csv file containing the zone_specs used by the boost::local_time::tz_database is intended to be customized by the library user. When customizing this file (or creating your own) the file must follow a specific format.
+ </p>
+<p>
+ This first line is expected to contain column headings and is therefore
+not processed by the tz_database.
+ </p>
+<p>
+ Each record (line) must have eleven fields. Some of those fields can be empty. Every field (even empty ones) must be enclosed in double-quotes.
+ </p>
+<div class="literallayout"><p><br>
+&#160;&#160;&#160;&#160;&#160;&#160;Ex:<br>
+&#160;&#160;&#160;&#160;&#160;&#160;"America/Phoenix"&#160;&lt;-&#160;string&#160;enclosed&#160;in&#160;quotes<br>
+&#160;&#160;&#160;&#160;&#160;&#160;""&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&lt;-&#160;empty&#160;field<br>
+&#160;&#160;&#160;&#160;</p></div>
+<p>
+ </p>
+<p>
+ Some fields represent a length of time. The format of these fields must be:
+ </p>
+<div class="literallayout"><p><br>
+&#160;&#160;&#160;&#160;&#160;&#160;"{+|-}hh:mm[:ss]"&#160;&lt;-&#160;length-of-time&#160;format<br>
+&#160;&#160;&#160;&#160;</p></div>
+<p>
+ Where the plus or minus is mandatory and the seconds are optional.
+ </p>
+<p>
+ Since some time zones do not use daylight savings it is not always necessary for every field in a zone_spec to contain a value. All zone_specs must have at least ID and GMT offset. Zones that use daylight savings must have all fields filled except: STD ABBR, STD NAME, DST NAME. You should take note that DST ABBR is mandatory for zones that use daylight savings (see field descriptions for further details).
+ </p>
+<a name="tz_database_fields"></a><h4>
+<a name="id1300832"></a>Field Description/Details</h4>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ ID
+ <p>
+ Contains the identifying string for the zone_spec. Any string will do as long as it's unique. No two ID's can be the same.
+ </p>
+</li>
+<li class="listitem">
+ STD ABBR
+ </li>
+<li class="listitem">
+ STD NAME
+ </li>
+<li class="listitem">
+ DST ABBR
+ </li>
+<li class="listitem">
+ DST NAME
+ <p>
+ These four are all the names and abbreviations used by the time zone being described. While any string will do in these fields, care should be taken. These fields hold the strings that will be used in the output of many of the local_time classes.
+ </p>
+</li>
+<li class="listitem">
+ GMT offset
+ <p>
+ This is the number of hours added to utc to get the local time before any daylight savings adjustments are made. Some examples are: America/New_York offset -5 hours, and Africa/Cairo offset +2 hours. The format must follow the length-of-time format described above.
+ </p>
+</li>
+<li class="listitem">
+ DST adjustment
+ <p>
+ The amount of time added to gmt_offset when daylight savings is in effect. The format must follow the length-of-time format described above.
+ </p>
+<p>
+ NOTE: more rule capabilities are needed - this portion of the tz_database is incomplete
+ </p>
+</li>
+<li class="listitem">
+ DST Start Date rule
+ <p>
+ This is a specially formatted string that describes the day of year in which the transition take place. It holds three fields of it's own, separated by semicolons.
+ </p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+ The first field indicates the "nth" weekday of the month. The possible values are: 1 (first), 2 (second), 3 (third), 4 (fourth), 5 (fifth), and -1 (last).
+ </li>
+<li class="listitem">
+ The second field indicates the day-of-week from 0-6 (Sun=0).
+ </li>
+<li class="listitem">
+ The third field indicates the month from 1-12 (Jan=1).
+ </li>
+</ol></div>
+<p>
+ Examples are: "-1;5;9"="Last Friday of September", "2;1;3"="Second Monday of March"
+ </p>
+</li>
+<li class="listitem">
+ Start time
+ <p>
+ Start time is the number of hours past midnight, on the day of the start transition, the transition takes place. More simply put, the time of day the transition is made (in 24 hours format). The format must follow the length-of-time format described above with the exception that it must always be positive.
+ </p>
+</li>
+<li class="listitem">
+ DST End date rule
+ <p>
+ See DST Start date rule. The difference here is this is the day daylight savings ends (transition to STD).
+ </p>
+</li>
+<li class="listitem">
+ End time
+ <p>
+ Same as Start time.
+ </p>
+</li>
+</ul></div>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.local_time.custom_time_zone"></a>Custom Time Zone</h3></div></div></div>
+<a class="link" href="local_time.html#custom_time_zone_intro">Introduction</a> --
+ <a class="link" href="local_time.html#custom_time_zone_header">Header</a> --
+ <a class="link" href="local_time.html#custom_time_zone_constr">Construction</a> --
+ <a class="link" href="local_time.html#custom_time_zone_accessors">Accessors</a> --
+ <a class="link" href="local_time.html#custom_time_zone_dependents">Dependent Types</a><a name="custom_time_zone_intro"></a><h4>
+<a name="id1301029"></a>Introduction</h4>
+<p>
+ A custom_time_zone object is a set of data and rules that provide information about a time zone. Information such as the offset from UTC, it's name and abbreviation, as well as daylight savings rules, called <a class="link" href="local_time.html#date_time.local_time.dst_calc_rules">dst_calc_rules</a>. These rules are handled via a boost::shared_ptr&lt;dst_calc_rules&gt;. Not all time zones utilize daylight savings, therefore, time_zone objects can be used with a NULL-assigned shared_ptr.
+ </p>
+<p>
+ As a convenience, a typedef for shared_ptr&lt;dst_calc_rules&gt; is provided.
+ </p>
+<pre class="programlisting">typedef boost::shared_ptr&lt;dst_calc_rules&gt; local_time::dst_calc_rule_ptr;</pre>
+<p>
+ </p>
+<a name="date_time.local_time.custom_time_zone_ptr"></a><p>
+ The time_zone objects are used via a boost::shared_ptr&lt;local_time::time_zone&gt;. As a convenience, a typedef for boost::shared_ptr&lt;local_time::time_zone&gt; is provided:
+ </p>
+<pre class="programlisting">typedef boost::shared_ptr&lt;time_zone&gt; local_time::time_zone_ptr;</pre>
+<p>
+ </p>
+<a name="custom_time_zone_header"></a><h4>
+<a name="id1301099"></a>Header</h4>
+<p>
+ The inclusion of a single header will bring in all boost::local_time types, functions, and IO operators.
+ </p>
+<pre class="programlisting">#include "boost/date_time/local_time/local_time.hpp"</pre>
+<p>
+ </p>
+<a name="custom_time_zone_constr"></a><h4>
+<a name="id1301123"></a>Construction</h4>
+<p>
+ Construction of a custom_time_zone is dependent on four objects: a
+ <a class="link" href="posix_time.html#date_time.posix_time.time_duration" title="Time Duration">time_duration</a>, a <a class="link" href="local_time.html#time_zone_names">time_zone_names</a>, a <a class="link" href="local_time.html#dst_adjustment_offsets">dst_adjustment_offsets</a>, and a shared_ptr to a <a class="link" href="local_time.html#date_time.local_time.dst_calc_rules">dst_calc_rule</a>.
+ </p>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Syntax</th>
+<th>Example</th>
+</tr></thead>
+<tbody><tr>
+<td valign="top"><pre class="screen">custom_time_zone(...)
+ Parameters:
+ <a class="link" href="local_time.html#time_zone_names">names</a>,
+ <a class="link" href="posix_time.html#date_time.posix_time.time_duration" title="Time Duration">gmt_offset</a>,
+ <a class="link" href="local_time.html#dst_adjustment_offsets">dst_offsets</a>,
+ <a class="link" href="local_time.html#date_time.local_time.dst_calc_rules">dst_rules</a> </pre></td>
+<td>See <a class="link" href="examples.html#date_time.examples.simple_time_zone" title="Simple Time Zones">simple_time_zone</a> example for time_zone usage</td>
+</tr></tbody>
+</table></div>
+<p>
+ </p>
+<a name="custom_time_zone_accessors"></a><h4>
+<a name="id1301258"></a>Accessors</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string dst_zone_abbrev()</pre></td>
+<td>Returns the daylight savings abbreviation for the represented time zone.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;dst_zone_abbrev();
+// "EDT"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string std_zone_abbrev()</pre></td>
+<td>Returns the standard abbreviation for the represented time zone.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;std_zone_abbrev();
+// "EST"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string dst_zone_name()</pre></td>
+<td>Returns the daylight savings name for the represented time zone.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;dst_zone_name();
+// "Eastern Daylight Time"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string std_zone_name()</pre></td>
+<td>Returns the standard name for the represented time zone.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;std_zone_name();
+// "Eastern Standard Time"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool has_dst()</pre></td>
+<td>Returns true when custom_time_zone's shared_ptr to dst_calc_rules is not NULL.</td>
+</tr>
+<tr><td>
+<pre class="screen">nyc_zone_sh_ptr-&gt;has_dst();
+// true
+phx_zone_sh_ptr-&gt;has_dst();
+// false</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">dst_local_start_time(...)
+ Return Type:
+ ptime
+ Parameter:
+ greg_year</pre></td>
+<td>The date and time daylight savings time begins in given year. Returns not_a_date_time if this zone has no daylight savings.</td>
+</tr>
+<tr><td><pre class="screen">nyc_ptr-&gt;dst_local_start_time(2004);
+// 2004-Apr-04 02:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">dst_local_end_time(...)
+ Return Type:
+ ptime
+ Parameter:
+ greg_year</pre></td>
+<td>The date and time daylight savings time ends in given year. Returns not_a_date_time if this zone has no daylight savings.</td>
+</tr>
+<tr><td><pre class="screen">nyc_ptr-&gt;dst_local_end_time(2004);
+// 2004-Oct-31 02:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration base_utc_offset()</pre></td>
+<td>The amount of time offset from UTC (typically in hours).</td>
+</tr>
+<tr><td><pre class="screen">nyc_ptr-&gt;base_utc_offset();
+// -05:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration dst_offset()</pre></td>
+<td>The amount of time shifted during daylight savings.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;dst_offset();
+// 01:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_posix_string()</pre></td>
+<td>Returns a posix time zone string representation of this time_zone object. Depending on how the time_zone object was created, the date-spec format of the string will be in either 'M' notation or 'n' notation. Every possible date-spec that can be represented in 'J' notation can also be represented in 'n' notation. The reverse is not true so only 'n' notation is used for these types of date-specs. For a detailed description of a posix time zone string see <a class="link" href="local_time.html#date_time.local_time.posix_time_zone" title="Posix Time Zone">posix_time_zone</a>.</td>
+</tr>
+<tr><td><pre class="screen">nyc_ptr-&gt;to_posix_string();
+// "EST-05EDT+01,M4.1.0/02:00,M10.5.0/02:00"
+phx_ptr-&gt;to_posix_string();
+// "MST-07"
+ </pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="custom_time_zone_dependents"></a><h4>
+<a name="id1301631"></a>Dependent Types</h4>
+<a class="link" href="local_time.html#time_zone_names">Time Zone Names</a> --
+ <a class="link" href="local_time.html#dst_adjustment_offsets">Dst Adjustment Offsets</a> --
+ <a class="link" href="local_time.html#date_time.local_time.dst_calc_rules">Daylight Savings Calc Rules</a><a name="time_zone_names"></a><h4>
+<a name="id1301664"></a>Time Zone Names</h4>
+<p>
+ The time_zone_names_base type is an immutable template class of four strings. One each for the name and abbreviation in standard time and daylight savings time. The time_zone_names type is a typedef of time_zone_names_base&lt;char&gt;.
+ </p>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_zone_names(...)
+ Parameters:
+ string std_name
+ string std_abbrev
+ string dst_name
+ string dst_abbrev</pre></td>
+<td>The only constructor, all four strings must be provided.</td>
+</tr>
+<tr><td>
+<pre class="screen">string sn("Eastern Standard Time");
+string sa("EST");
+string dn("Eastern Daylight Time");
+string da("EDT");
+time_zone_names nyc_names(sn, sa,
+ dn, da);</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string std_zone_name()</pre></td>
+<td>Returns the standard zone name</td>
+</tr>
+<tr><td><pre class="screen">nyc_names.std_zone_name();
+// "Eastern Standard Time"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string std_zone_abbrev()</pre></td>
+<td>Returns the standard zone abbreviation</td>
+</tr>
+<tr><td><pre class="screen">nyc_names.std_zone_abbrev();
+// "EST"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string dst_zone_name()</pre></td>
+<td>Returns the daylight savings zone name</td>
+</tr>
+<tr><td><pre class="screen">nyc_names.std_zone_name();
+// "Eastern Daylight Time"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string dst_zone_abbrev()</pre></td>
+<td>Returns the daylight savings zone abbreviation</td>
+</tr>
+<tr><td><pre class="screen">nyc_names.std_zone_abbrev();
+// "EDT"</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="dst_adjustment_offsets"></a><h4>
+<a name="id1301672"></a>Dst Adjustment Offsets</h4>
+<p>
+ The dst_adjustment_offsets type is a collection of three <a class="link" href="posix_time.html#date_time.posix_time.time_duration" title="Time Duration">time_duration</a> objects.
+ </p>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">dst_adjustment_offsets(...)
+ Parameters:
+ time_duration dst_adjust
+ time_duration start_offset
+ time_duration end_offset</pre></td>
+<td>The first time_duration is the daylight savings adjustment. The second is the time which daylight savings starts on the start day. The third is the time daylight savings ends on the ending day.</td>
+</tr>
+<tr><td><pre class="screen">
+dst_adjustment_offsets(hours(1),
+ hours(2),
+ hours(2));</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="date_time.local_time.dst_calc_rules"></a><h4>
+<a name="id1301972"></a>Daylight Savings Calc Rules</h4>
+<p>
+ Daylight savings calc rules, named dst_calc_rules, are a series of objects that group appropriate <a class="link" href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">date_generators</a> together to form rule sets. The individual rules objects are used via dst_calc_rule_ptr.
+ </p>
+<p>
+ For a complete example of all five dst_calc_rule types, see: <a class="link" href="examples.html#date_time.examples.calc_rules" title="Daylight Savings Calc Rules">calc_rules example</a>.
+ </p>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">partial_date_dst_rule(...)
+ Parameters:
+ start_rule
+ end_rule</pre></td>
+<td>Both the start and end rules are of type gregorian::partial_date.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">first_last_dst_rule(...)
+ Parameters:
+ start_rule
+ end_rule</pre></td>
+<td>The DST start rule is of type gregorian::first_day_of_the_week_in_month and the end rule is of type gregorian::last_day_of_the_week_in_month.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">last_last_dst_rule(...)
+ Parameters:
+ start_rule
+ end_rule</pre></td>
+<td>Both the start and end rules are of type gregorian::last_day_of_the_week_in_month.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">nth_last_dst_rule(...)
+ Parameters:
+ start_rule
+ end_rule</pre></td>
+<td>The DST start rule is of type gregorian::nth_day_of_the_week_in_month and the end rule is of type gregorian::last_day_of_the_week_in_month.</td>
+</tr>
+<tr>
+<td valign="top">
+<pre class="screen">nth_kday_dst_rule(...)
+ Parameters:
+ start_rule
+ end_rule)
+(see note* below)</pre>
+ </td>
+<td>Both rules are of type gregorian::nth_day_of_the_week_in_month.</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<p>
+ * Note: The name "nth_kday_dst_rule" is a bit cryptic. Therefore, a more descriptive name, "nth_day_of_the_week_in_month_dst_rule", is also provided.
+ </p>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.local_time.local_date_time"></a>Local Date Time</h3></div></div></div>
+<a class="link" href="local_time.html#local_date_time_intro">Introduction</a> --
+ <a class="link" href="local_time.html#local_date_time_header">Header</a> --
+ <a class="link" href="local_time.html#local_date_time_clock_constr">Construct From Clock</a> --
+ <a class="link" href="local_time.html#local_date_time_constr">Construction</a> --
+ <a class="link" href="local_time.html#local_date_time_accessors">Accessors</a> --
+ <a class="link" href="local_time.html#local_date_time_operators">Operators</a> --
+ <a class="link" href="local_time.html#local_date_time_tm_func">Struct tm Functions</a><a name="local_date_time_intro"></a><h4>
+<a name="id1302210"></a>Introduction</h4>
+<p>
+ A local_date_time object is a point in time and an associated time zone. The time is represented internally as UTC.
+ </p>
+<a name="local_date_time_header"></a><h4>
+<a name="id1302227"></a>Header</h4>
+<p>
+ The inclusion of a single header will bring in all boost::local_time types,
+functions, and IO operators.
+ </p>
+<pre class="programlisting">
+ #include "boost/date_time/local_time/local_time.hpp"
+ </pre>
+<p>
+ </p>
+<a name="local_date_time_clock_constr"></a><h4>
+<a name="id1302251"></a>Construct From Clock</h4>
+<p>
+ Creation of a local_date_time object from clock is possible with either second, or sub second resolution.
+ </p>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Syntax</th>
+<th>Example</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">local_microsec_clock(...)
+ Return Type:
+ local_date_time
+ Parameter:
+ time_zone_ptr</pre></td>
+<td>
+<pre class="screen">time_zone_ptr zone(
+ new posix_time_zone("MST-07")
+);
+local_date_time ldt =
+ local_microsec_clock::local_time(
+ zone);</pre>
+ </td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">local_sec_clock(...)
+ Return Type:
+ local_date_time
+ Parameter:
+ time_zone_ptr</pre></td>
+<td>
+<pre class="screen">time_zone_ptr zone(
+ new posix_time_zone("MST-07")
+);
+local_date_time ldt =
+ local_sec_clock::local_time(zone);</pre>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="local_date_time_constr"></a><h4>
+<a name="id1302344"></a>Construction</h4>
+<p>
+ Construction of a local_date_time object can be done with a ptime and a time_zone_ptr where the ptime represents UTC time. Construction with a wall-clock representation takes the form of a date, a time_duration, a time_zone_ptr, and a fourth parameter that addresses the following complication.
+ </p>
+<p>
+ Construction from a wall-clock rep may result in differing shifts for a particular time zone, depending on daylight savings rules for that zone. This means it is also possible to create a local_date_time with a non-existent, or duplicated, UTC representation. These cases occur during the forward shift in time that is the transition into daylight savings and during the backward shift that is the transition out of daylight savings. The user has two options for handling these cases: a bool flag that states if the time is daylight savings, or an enum that states what to do when either of these cases are encountered.
+ </p>
+<p>
+ The bool flag is ignored when the given time_zone has no daylight savings specification. When the daylight savings status of a given time label is calculated and it does not match the flag, a <code class="computeroutput">local_time::dst_not_valid</code> exception is thrown. If a time label is invalid (does not exist), a <code class="computeroutput">local_time::time_label_invalid</code> exception is thrown.
+ </p>
+<p>
+ There are two elements in the <code class="computeroutput">local_date_time::DST_CALC_OPTIONS</code> enum: <code class="computeroutput">EXCEPTION_ON_ERROR</code> and <code class="computeroutput">NOT_DATE_TIME_ON_ERROR</code>. The possible exceptions thrown are a <code class="computeroutput">local_time::ambiguous_result</code> or a <code class="computeroutput">local_time::time_label_invalid</code>. The <code class="computeroutput">NOT_DATE_TIME_ON_ERROR</code> sets the time value to the special value <code class="computeroutput">local_time::not_a_date_time</code> in the event of either a invalid or an ambiguous time label.
+ </p>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_date_time(...)
+ Parameters:
+ posix_time::ptime
+ time_zone_ptr</pre></td>
+<td>The given time is expected to be UTC. Therefore, the given time will be adjusted according to the offset described in the time zone.</td>
+</tr>
+<tr><td>
+<pre class="screen">
+// 3am, 2004-Nov-05 local time
+ptime pt(date(2004,Nov,5),
+ hours(10));
+time_zone_ptr zone(
+ new posix_time_zone("MST-07"));
+local_date_time az(pt, zone);</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_date_time(...)
+ Parameters:
+ date
+ time_duration
+ time_zone_ptr
+ bool</pre></td>
+<td>The passed time information understood to be in the passed tz. The DST flag must be passed to indicate whether the time is in daylight savings or not. May throw a <code class="computeroutput">dst_not_valid</code> or <code class="computeroutput">time_label_invalid</code> exception.</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2004,Nov,5);
+time_duration td(5,0,0,0);
+string z("PST-8PDT,M4.1.0,M10.1.0")
+time_zone_ptr zone(
+ new posix_time_zone(z));
+local_date_time nyc(d, td,
+ zone, false);</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_date_time(...)
+ Parameters:
+ date
+ time_duration
+ time_zone_ptr
+ DST_CALC_OPTIONS</pre></td>
+<td>The passed time information understood to be in the passed tz. The DST flag is calculated according to the specified rule. May throw a <code class="computeroutput">ambiguous_result</code> or <code class="computeroutput">time_label_invalid</code> exception.</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2004,Nov,5);
+time_duration td(5,0,0,0);
+string z("PST-8PDT,M4.1.0,M10.1.0")
+time_zone_ptr zone(
+ new posix_time_zone(z));
+local_date_time nyc(d, td, zone,
+ NOT_DATE_TIME_ON_ERROR);</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_date_time(local_date_time);</pre></td>
+<td>Copy Constructor.</td>
+</tr>
+<tr><td><pre class="screen">local_date_time az_2(az);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_date_time(...)
+ Parameters:
+ special_values
+ time_zone_ptr</pre></td>
+<td>Special Values constructor.</td>
+</tr>
+<tr><td>
+<pre class="screen">time_zone_ptr zone(
+ new posix_time_zone("MST-07")
+);
+local_date_time nadt(not_a_date_time,
+ zone);
+// default NULL time_zone_ptr
+local_date_time nadt(pos_infin);</pre>
+ </td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="local_date_time_accessors"></a><h4>
+<a name="id1302663"></a>Accessors</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_zone_ptr zone()</pre></td>
+<td>Returns associated time_zone object via a time_zone_ptr</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_dst()</pre></td>
+<td>Determines if time value is in DST for associated zone.</td>
+</tr>
+<tr><td>&#160;</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime utc_time()</pre></td>
+<td>Converts the local time value to a UTC value.</td>
+</tr>
+<tr><td>
+<pre class="screen">ptime pt(date(2004,Nov,5),
+ hours(10));
+time_zone_ptr zone(
+ new posix_time_zone("MST-07"));
+local_date_time az(pt, zone);
+az.utc_time(); // 10am 2004-Nov-5</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime local_time()</pre></td>
+<td>Returns the local time for this object (Wall-clock).</td>
+</tr>
+<tr><td><pre class="screen">ptime pt(date(2004,Nov,5),
+ hours(10));
+time_zone_ptr zone(
+ new posix_time_zone("MST-07"));
+local_date_time az(pt, zone);
+az.utc_time(); // 10am 2004-Nov-5
+az.local_time(); // 3am 2004-Nov-5</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_time_in(...)
+ Return Type:
+ local_date_time
+ Parameters:
+ time_zone_ptr
+ time_duration</pre></td>
+<td>Returns a local_date_time representing the same UTC time as calling object, plus optional time_duration, with given time zone.</td>
+</tr>
+<tr><td>
+<pre class="screen">local_date_time nyc = az.local_time_in(nyc_zone);
+// nyc == 7am 2004-Nov-5</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_infinity() const</pre></td>
+<td>Returns true if local_date_time is either positive or negative infinity</td>
+</tr>
+<tr><td><pre class="screen">local_date_time ldt(pos_infin);
+ldt.is_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_neg_infinity() const</pre></td>
+<td>Returns true if local_date_time is negative infinity</td>
+</tr>
+<tr><td><pre class="screen">local_date_time ldt(neg_infin);
+ldt.is_neg_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_pos_infinity() const</pre></td>
+<td>Returns true if local_date_time is positive infinity</td>
+</tr>
+<tr><td><pre class="screen">local_date_time ldt(neg_infin);
+ldt.is_pos_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_not_a_date_time() const</pre></td>
+<td>Returns true if value is not a date</td>
+</tr>
+<tr><td><pre class="screen">local_date_time ldt(not_a_date_time);
+ldt.is_not_a_date_time(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_special() const</pre></td>
+<td>Returns true if local_date_time is any <code class="computeroutput">special_value</code>
+</td>
+</tr>
+<tr><td><pre class="screen">local_date_time ldt(pos_infin);
+local_date_time ldt2(not_a_date_time);
+time_zone_ptr
+ mst(new posix_time_zone("MST-07"));
+local_date_time
+ ldt3(local_sec_clock::local_time(mst));
+ldt.is_special(); // --&gt; true
+ldt2.is_special(); // --&gt; true
+ldt3.is_special(); // --&gt; false</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="local_date_time_operators"></a><h4>
+<a name="id1303001"></a>Operators</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;&lt;</pre></td>
+<td>Output streaming operator. This operator is part of the v1.33 IO addition to date_time. For complete details on this feature see <a class="link" href="date_time_io.html" title="Date Time Input/Output">Date Time IO</a>. The default output is shown in this example.</td>
+</tr>
+<tr><td><pre class="screen">
+time_zone_ptr zone(new posix_time_zone("MST-07");
+local_date_time ldt(date(2005,Jul,4),
+ hours(20),
+ false);
+std::cout &lt;&lt; ldt &lt;&lt; std::endl;
+// "2005-Jul-04 20:00:00 MST"
+ </pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&gt;&gt;</pre></td>
+<td>Input streaming operator. This operator is part of the v1.33 IO addition to date_time. For complete details on this feature see <a class="link" href="date_time_io.html" title="Date Time Input/Output">Date Time IO</a>. At this time, <code class="computeroutput">local_date_time</code> objects can only be streamed in with a Posix Time Zone string. A complete description of a Posix Time Zone string can be found in the documentation for the <a class="link" href="local_time.html#posix_time_zone_intro">posix_time_zone</a> class.</td>
+</tr>
+<tr><td><pre class="screen">stringstream ss;
+ss.str("2005-Jul-04 20:00:00 MST-07");
+ss &gt;&gt; ldt;
+ </pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator==, operator!=,
+operator&gt;, operator&lt;,
+operator&gt;=, operator&lt;=</pre></td>
+<td>A full complement of comparison operators</td>
+</tr>
+<tr><td><pre class="screen">ldt1 == ldt2, etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator+, operator+=,
+operator-, operator-=</pre></td>
+<td>Addition, subtraction, and shortcut operators for <code class="computeroutput">local_date_time</code> and date duration types. These include: <code class="computeroutput">days</code>, <code class="computeroutput">months</code>, and <code class="computeroutput">years</code>.</td>
+</tr>
+<tr><td><pre class="screen">ldt + days(5), etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator+, operator+=,
+operator-, operator-=</pre></td>
+<td>Addition, subtraction, and shortcut operators for <code class="computeroutput">local_date_time</code> and <code class="computeroutput">time_duration</code>.</td>
+</tr>
+<tr><td><pre class="screen">ldt + hours(5), etc</pre></td></tr>
+</tbody>
+</table></div>
+<a name="local_date_time_tm_func"></a><h4>
+<a name="id1303287"></a>Struct tm Functions</h4>
+<p>Function for converting a <code class="computeroutput">local_date_time</code> object to a <code class="computeroutput">tm</code> struct is provided.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">tm to_tm(local_date_time)</pre></td>
+<td>A function for converting a <code class="computeroutput">local_date_time</code> object to a <code class="computeroutput">tm</code> struct.</td>
+</tr>
+<tr><td>
+<pre class="screen">
+// 6am, 2005-Jul-05 local time
+std::string z("EST-05EDT,M4.1.0,M10.1.0");
+ptime pt(date(2005,Jul,5),
+ hours(10));
+time_zone_ptr zone( new posix_time_zone(z));
+local_date_time ldt(pt, zone);
+tm ldt_tm = to_tm(ldt);
+/* tm_year =&gt; 105
+ tm_mon =&gt; 6
+ tm_mday =&gt; 5
+ tm_wday =&gt; 2 (Tuesday)
+ tm_yday =&gt; 185
+ tm_hour =&gt; 6
+ tm_min =&gt; 0
+ tm_sec =&gt; 0
+ tm_isddst =&gt; 1 */</pre>
+ </td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.local_time.local_time_period"></a>Local Time Period</h3></div></div></div>
+<a class="link" href="local_time.html#local_time_period_intro">Introduction</a> --
+ <a class="link" href="local_time.html#local_time_period_header">Header</a> --
+ <a class="link" href="local_time.html#local_time_period_constr">Construction</a> --
+ <a class="link" href="local_time.html#local_time_period_accessors">Accessors</a> --
+ <a class="link" href="local_time.html#local_time_period_operators">Operators</a><a name="local_time_period_intro"></a><h4>
+<a name="id1303454"></a>Introduction</h4>
+<p>
+ The class <code class="computeroutput">boost::local_time::local_time_period</code> provides direct representation for ranges between two local times. Periods provide the ability to simplify some types of calculations by simplifying the conditional logic of the program.
+ </p>
+<p>
+ A period that is created with beginning and end points being equal, or with a duration of zero, is known as a zero length period. Zero length periods are considered invalid (it is perfectly legal to construct an invalid period). For these periods, the <code class="computeroutput">last</code> point will always be one unit less that the <code class="computeroutput">begin</code> point.
+ </p>
+<a name="local_time_period_header"></a><h4>
+<a name="id1303498"></a>Header</h4>
+<p>
+ </p>
+<pre class="programlisting">#include "boost/date_time/local_time/local_time.hpp" //include all types plus i/o
+or
+#include "boost/date_time/local_time/local_time_types.hpp" //no i/o just types</pre>
+<p>
+ </p>
+<a name="local_time_period_constr"></a><h4>
+<a name="id1303522"></a>Construction</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_time_period(...)
+ Parameters:
+ local_date_time beginning
+ local_date_time end</pre></td>
+<td> Create a period as [begin, end). If end is &lt;= begin then the period will be defined as invalid.</td>
+</tr>
+<tr><td>
+<pre class="screen">time_zone_ptr
+ zone(new posix_time_zone("MST-07"));
+local_date_time
+ beg(ptime(date(2005,Jan,1),hours(0)), zone);
+local_date_time
+ end(ptime(date(2005,Feb,1),hours(0)), zone);
+// period for the entire month of Jan 2005
+local_time_period ltp(beg, end);</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_time_period(...)
+ Parameters:
+ local_date_time beginning
+ time_duration length</pre></td>
+<td>Create a period as [begin, begin+len) where end would be begin+len. If len is &lt;= zero then the period will be defined as invalid.</td>
+</tr>
+<tr><td>
+<pre class="screen">time_zone_ptr
+ zone(new posix_time_zone("MST-07"));
+local_date_time
+ beg(ptime(date(2005,Jan,1),hours(0)), zone);
+// period for the whole day of 2005-Jan-01
+local_time_period ltp(beg, hours(24));</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_time_period(local_time_period rhs)</pre></td>
+<td>Copy constructor</td>
+</tr>
+<tr><td><pre class="screen">local_time_period ltp1(ltp);</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="local_time_period_accessors"></a><h4>
+<a name="id1303675"></a>Accessors</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_date_time begin()</pre></td>
+<td>Return first local_date_time of the period.</td>
+</tr>
+<tr><td>
+<pre class="screen">time_zone_ptr
+ zone(new posix_time_zone("MST-07"));
+local_date_time
+ ldt((ptime(date(2005,Jan,1)),hours(0)), zone);
+local_time_period ltp(ldt, hours(2));
+ltp.begin(); // =&gt; 2005-Jan-01 00:00:00</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_date_time last()</pre></td>
+<td>Return last local_date_time in the period</td>
+</tr>
+<tr><td>
+<pre class="screen">time_zone_ptr
+ zone(new posix_time_zone("MST-07"));
+local_date_time
+ ldt((ptime(date(2005,Jan,1),hours(0))), zone);
+local_time_period ltp(ldt, hours(2));
+ltp.last(); // =&gt; 2005-Jan-01 01:59:59.999999999</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_date_time end()</pre></td>
+<td>Return one past the last in period</td>
+</tr>
+<tr><td>
+<pre class="screen">time_zone_ptr
+ zone(new posix_time_zone("MST-07"));
+local_date_time
+ ldt((ptime(date(2005,Jan,1),hours(0))), zone);
+local_time_period ltp(ldt, hours(2));
+ltp.end(); // =&gt; 2005-Jan-01 02:00:00</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration length()</pre></td>
+<td>Return the length of the local_time period.</td>
+</tr>
+<tr><td>
+<pre class="screen">time_zone_ptr
+ zone(new posix_time_zone("MST-07"));
+local_date_time
+ ldt((ptime(date(2005,Jan,1),hours(0))), zone);
+local_time_period ltp(ldt, hours(2));
+ltp.length(); // =&gt; 02:00:00</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_null()</pre></td>
+<td>True if period is not well formed. eg: end less than or equal to begin.</td>
+</tr>
+<tr><td>
+<pre class="screen">time_zone_ptr
+ zone(new posix_time_zone("MST-07"));
+local_date_time
+ beg((ptime(date(2005,Feb,1),hours(0))), zone);
+local_date_time
+ end((ptime(date(2005,Jan,1),hours(0))), zone);
+local_time_period ltp(beg, end);
+ltp.is_null(); // =&gt; true</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool contains(local_date_time)</pre></td>
+<td>True if local_date_time is within the period. Zero length periods cannot contain any points</td>
+</tr>
+<tr><td><pre class="screen">time_zone_ptr
+ zone(new posix_time_zone("MST-07"));
+local_date_time
+ beg((ptime(date(2005,Jan,1),hours(0))), zone);
+local_date_time
+ end((ptime(date(2005,Feb,1),hours(0))), zone);
+local_time_period jan_mst(beg, end);
+
+local_date_time
+ldt((ptime(date(2005,Jan,15),hours(12))), zone);
+jan_mst.contains(ldt); // =&gt; true
+
+local_time_period zero(beg, beg);
+zero.contains(beg); // false</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool contains(local_time_period)</pre></td>
+<td>True if period is within the period</td>
+</tr>
+<tr><td><pre class="screen">// using jan_mst period from previous example
+
+local_date_time
+ beg((ptime(date(2005,Jan,7),hours(0))), zone);
+local_time_period ltp(beg, hours(24));
+
+jan_mst.contains(ltp); // =&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool intersects(local_time_period)</pre></td>
+<td> True if periods overlap</td>
+</tr>
+<tr><td><pre class="screen">// using jan_mst period from previous example
+
+local_date_time
+ beg((ptime(date(2005,Jan,7),hours(0))), zone);
+local_date_time
+ end((ptime(date(2005,Feb,7),hours(0))), zone);
+local_time_period ltp(beg, end);
+
+jan_mst.intersects(ltp); // =&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_time_period intersection(local_time_period)</pre></td>
+<td>Calculate the intersection of 2 periods. Null if no intersection.</td>
+</tr>
+<tr><td><pre class="screen">// using jan_mst period from previous example
+
+local_date_time
+ beg((ptime(date(2005,Jan,7),hours(0))), zone);
+local_date_time
+ end((ptime(date(2005,Feb,7),hours(0))), zone);
+local_time_period ltp(beg, end);
+
+local_time_period res(jan_mst.intersection(ltp));
+// res =&gt; 2005-Jan-07 00:00:00 through
+// 2005-Jan-31 23:59:59.999999999 (inclusive)</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_time_period merge(local_time_period)</pre></td>
+<td>Returns union of two periods. Null if no intersection.</td>
+</tr>
+<tr><td><pre class="screen">// using jan_mst period from previous example
+
+local_date_time
+ beg((ptime(date(2005,Jan,7),hours(0))), zone);
+local_date_time
+ end((ptime(date(2005,Feb,7),hours(0))), zone);
+local_time_period ltp(beg, end);
+
+local_time_period res(jan_mst.merge(ltp));
+// res =&gt; 2005-Jan-07 00:00:00 through
+// 2005-Feb-06 23:59:59.999999999 (inclusive)</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_time_period span(local_time_period)</pre></td>
+<td>Combines two periods and any gap between them such that begin = min(p1.begin, p2.begin) and end = max(p1.end , p2.end).</td>
+</tr>
+<tr><td><pre class="screen">// using jan_mst period from previous example
+
+local_date_time
+ beg((ptime(date(2005,Mar,1),hours(0))), zone);
+local_date_time
+ end((ptime(date(2005,Apr,1),hours(0))), zone);
+local_time_period mar_mst(beg, end);
+
+local_time_period res(jan_mst.span(mar_mst));
+// res =&gt; 2005-Jan-01 00:00:00 through
+// 2005-Mar-31 23:59:59.999999999 (inclusive)</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void shift(time_duration)</pre></td>
+<td>Add duration to both begin and end.</td>
+</tr>
+<tr><td><pre class="screen">local_date_time
+ beg((ptime(date(2005,Mar,1),hours(0))), zone);
+local_date_time
+ end((ptime(date(2005,Apr,1),hours(0))), zone);
+local_time_period mar_mst(beg, end);
+
+mar_mst.shift(hours(48));
+// mar_mst =&gt; 2005-Mar-03 00:00:00 through
+// 2005-Apr-02 23:59:59.999999999 (inclusive)</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="local_time_period_operators"></a><h4>
+<a name="id1304104"></a>Operators</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator==, operator!=</pre></td>
+<td>Equality operators. Periods are equal if ltp1.begin == ltp2.begin &amp;&amp; ltp1.last == ltp2.last</td>
+</tr>
+<tr><td><pre class="screen">if (ltp1 == ltp2) {...</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;</pre></td>
+<td>Ordering with no overlap. True if ltp1.end() less than ltp2.begin()</td>
+</tr>
+<tr><td><pre class="screen">if (ltp1 &lt; ltp2) {...</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&gt;</pre></td>
+<td>Ordering with no overlap. True if ltp1.begin() greater than ltp2.end()</td>
+</tr>
+<tr><td><pre class="screen">if (ltp1 &gt; ltp2) {... etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;=, operator&gt;=</pre></td>
+<td>Defined in terms of the other operators.</td>
+</tr>
+<tr><td>&#160;</td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2005 CrystalClear Software, Inc<p>Subject to the Boost Software License, Version 1.0. (See accompanying file
+ <code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="posix_time.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="date_time_io.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_time/posix_time.html b/doc/html/date_time/posix_time.html
new file mode 100755
index 0000000000..ce208c0446
--- /dev/null
+++ b/doc/html/date_time/posix_time.html
@@ -0,0 +1,1523 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Posix Time</title>
+<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
+<link rel="up" href="../date_time.html" title="Chapter&#160;7.&#160;Boost.Date_Time">
+<link rel="prev" href="gregorian.html" title="Gregorian">
+<link rel="next" href="local_time.html" title="Local Time">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.html">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
+<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="gregorian.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="local_time.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="date_time.posix_time"></a>Posix Time</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="posix_time.html#date_time.posix_time.ptime_class">Ptime</a></span></dt>
+<dt><span class="section"><a href="posix_time.html#date_time.posix_time.time_duration">Time Duration</a></span></dt>
+<dt><span class="section"><a href="posix_time.html#date_time.posix_time.time_period">Time Period</a></span></dt>
+<dt><span class="section"><a href="posix_time.html#date_time.posix_time.time_iterators">Time Iterators</a></span></dt>
+</dl></div>
+<h3>
+<a name="id1293590"></a>Posix Time System</h3>
+<p>
+ <a class="link" href="posix_time.html#posix_intro">Introduction</a> --
+ <a class="link" href="posix_time.html#posix_ex">Usage Examples</a>
+ </p>
+<a name="posix_intro"></a><h4>
+<a name="id1293622"></a>Introduction</h4>
+<p>
+ Defines a non-adjusted time system with nano-second/micro-second resolution and stable calculation properties. The nano-second resolution option uses 96 bits of underlying storage for each ptime while the micro-second resolution uses 64 bits per ptime (see <a class="link" href="details.html#date_time.buildinfo" title="Build-Compiler Information">Build Options</a> for details). This time system uses the Gregorian calendar to implement the date portion of the time representation.
+ </p>
+<a name="posix_ex"></a><h4>
+<a name="id1293651"></a>Usage Examples</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Example</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a class="link" href="examples.html#date_time.examples.time_math" title="Time Math">Time Math</a></td>
+<td>A few simple calculations using ptime and time_durations.</td>
+</tr>
+<tr>
+<td><a class="link" href="examples.html#date_time.examples.print_hours" title="Print Hours">Print Hours</a></td>
+<td>Retrieve time from clock, use a time_iterator.</td>
+</tr>
+<tr>
+<td><a class="link" href="examples.html#date_time.examples.local_utc_conversion" title="Local to UTC Conversion">Local to UTC Conversion</a></td>
+<td>Demonstrates a couple different ways to convert a local to UTC time including daylight savings rules.</td>
+</tr>
+<tr>
+<td><a class="link" href="examples.html#date_time.examples.time_periods" title="Time Periods">Time Periods</a></td>
+<td>Some simple examples of intersection and display of time periods.</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.posix_time.ptime_class"></a>Ptime</h3></div></div></div>
+<a class="link" href="posix_time.html#ptime_intro">Introduction</a> --
+ <a class="link" href="posix_time.html#ptime_header">Header</a> --
+ <a class="link" href="posix_time.html#ptime_constr">Construction</a> --
+ <a class="link" href="posix_time.html#ptime_from_string">Construct from String</a> --
+ <a class="link" href="posix_time.html#ptime_from_clock">Construct from Clock</a> --
+ <a class="link" href="posix_time.html#ptime_from_funcs">Construct using Conversion functions</a> --
+ <a class="link" href="posix_time.html#ptime_accessors">Accessors</a> --
+ <a class="link" href="posix_time.html#ptime_to_string">Conversion To String</a> --
+ <a class="link" href="posix_time.html#ptime_operators">Operators</a> --
+ <a class="link" href="posix_time.html#ptime_struct_tm">Struct tm, time_t, and FILETIME Functions</a><a name="ptime_intro"></a><h4>
+<a name="id1293859"></a>Introduction</h4>
+<p>
+ The class boost::posix_time::ptime is the primary interface for time point manipulation. In general, the ptime class is immutable once constructed although it does allow assignment.
+ </p>
+<p>
+ Class ptime is dependent on <a class="link" href="gregorian.html#date_time.gregorian.date_class" title="Date">gregorian::date</a> for the interface to the date portion of a time point.
+ </p>
+<p>
+ Other techniques for creating times include <a class="link" href="posix_time.html#date_time.posix_time.time_iterators" title="Time Iterators">time iterators</a>.
+ </p>
+<a name="ptime_header"></a><h4>
+<a name="id1293902"></a>Header</h4>
+<p>
+ </p>
+<pre class="programlisting">#include "boost/date_time/posix_time/posix_time.hpp" //include all types plus i/o
+or
+#include "boost/date_time/posix_time/posix_time_types.hpp" //no i/o just types</pre>
+<p>
+ </p>
+<a name="ptime_constr"></a><h4>
+<a name="id1293925"></a>Construction</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime(date,time_duration)</pre></td>
+<td>Construct from a date and offset</td>
+</tr>
+<tr><td>
+<pre class="screen">ptime t1(date(2002,Jan,10),
+ time_duration(1,2,3));
+ptime t2(date(2002,Jan,10),
+ hours(1)+nanosec(5));</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime(ptime)</pre></td>
+<td>Copy constructor</td>
+</tr>
+<tr><td><pre class="screen">ptime t3(t1)</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime(special_values sv)</pre></td>
+<td>Constructor for infinities, not-a-date-time, max_date_time, and min_date_time</td>
+</tr>
+<tr><td><pre class="screen">ptime d1(neg_infin);
+ptime d2(pos_infin);
+ptime d3(not_a_date_time);
+ptime d4(max_date_time);
+ptime d5(min_date_time);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime;</pre></td>
+<td>Default constructor. Creates a ptime object initialized to not_a_date_time. NOTE: this constructor can be disabled by defining DATE_TIME_NO_DEFAULT_CONSTRUCTOR (see compiler_config.hpp)</td>
+</tr>
+<tr><td><pre class="screen">ptime p; // p =&gt; not_a_date_time</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="ptime_from_string"></a><h4>
+<a name="id1294098"></a>Construct from String</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime time_from_string(std::string)</pre></td>
+<td>From delimited string. NOTE: Excess digits in fractional seconds will be dropped. Ex: "1:02:03.123456999" =&gt; 1:02:03.123456. This behavior is affected by the precision the library is compiled with (see <a class="link" href="details.html#date_time.buildinfo" title="Build-Compiler Information">Build-Compiler Information</a>.</td>
+</tr>
+<tr><td><pre class="screen">std::string ts("2002-01-20 23:59:59.000");
+ptime t(time_from_string(ts))</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime from_iso_string(std::string)</pre></td>
+<td>From non delimited iso form string.</td>
+</tr>
+<tr><td><pre class="screen">std::string ts("20020131T235959");
+ptime t(from_iso_string(ts))</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="ptime_from_clock"></a><h4>
+<a name="id1294217"></a>Construct from Clock</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime second_clock::local_time()</pre></td>
+<td>Get the local time, second level resolution, based on the time zone settings of the computer.</td>
+</tr>
+<tr><td><pre class="screen">ptime t(second_clock::local_time());</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime second_clock::universal_time()</pre></td>
+<td>Get the UTC time.</td>
+</tr>
+<tr><td><pre class="screen">ptime t(second_clock::universal_time())</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime microsec_clock::local_time()</pre></td>
+<td>Get the local time using a sub second resolution clock. On Unix systems this is implemented using GetTimeOfDay. On most Win32 platforms it is implemented using ftime. Win32 systems often do not achieve microsecond resolution via this API. If higher resolution is critical to your application test your platform to see the achieved resolution.</td>
+</tr>
+<tr><td><pre class="screen">ptime t(microsec_clock::local_time());</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime microsec_clock::universal_time()</pre></td>
+<td>Get the UTC time using a sub second resolution clock. On Unix systems this is implemented using GetTimeOfDay. On most Win32 platforms it is implemented using ftime. Win32 systems often do not achieve microsecond resolution via this API. If higher resolution is critical to your application test your platform to see the achieved resolution.</td>
+</tr>
+<tr><td><pre class="screen">ptime t(microsec_clock::universal_time());</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="ptime_from_funcs"></a><h4>
+<a name="id1294394"></a>Construct using Conversion Functions</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime from_time_t(time_t t);</pre></td>
+<td>Converts a time_t into a ptime.</td>
+</tr>
+<tr><td><pre class="screen">ptime t = from_time_t(tt);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime from_ftime&lt;ptime&gt;(FILETIME ft);</pre></td>
+<td>Creates a ptime object from a FILETIME structure.</td>
+</tr>
+<tr><td><pre class="screen">ptime t = from_ftime&lt;ptime&gt;(ft);</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="ptime_accessors"></a><h4>
+<a name="id1294504"></a>Accessors</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date date()</pre></td>
+<td>Get the date part of a time.</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,10);
+ptime t(d, hour(1));
+t.date() --&gt; 2002-Jan-10;</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration time_of_day()</pre></td>
+<td>Get the time offset in the day.</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,10);
+ptime t(d, hour(1));
+t.time_of_day() --&gt; 01:00:00;</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_infinity() const</pre></td>
+<td>Returns true if ptime is either positive or negative infinity</td>
+</tr>
+<tr><td><pre class="screen">ptime pt(pos_infin);
+pt.is_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_neg_infinity() const</pre></td>
+<td>Returns true if ptime is negative infinity</td>
+</tr>
+<tr><td><pre class="screen">ptime pt(neg_infin);
+pt.is_neg_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_pos_infinity() const</pre></td>
+<td>Returns true if ptime is positive infinity</td>
+</tr>
+<tr><td><pre class="screen">ptime pt(neg_infin);
+pt.is_pos_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_not_a_date_time() const</pre></td>
+<td>Returns true if value is not a ptime</td>
+</tr>
+<tr><td><pre class="screen">ptime pt(not_a_date_time);
+pt.is_not_a_date_time(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_special() const</pre></td>
+<td>Returns true if ptime is any <code class="computeroutput">special_value</code>
+</td>
+</tr>
+<tr><td><pre class="screen">ptime pt(pos_infin);
+ptime pt2(not_a_date_time);
+ptime pt3(date(2005,Mar,1), hours(10));
+pt.is_special(); // --&gt; true
+pt2.is_special(); // --&gt; true
+pt3.is_special(); // --&gt; false</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="ptime_to_string"></a><h4>
+<a name="id1294754"></a>Conversion to String</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_simple_string(ptime)</pre></td>
+<td>To <code class="computeroutput">YYYY-mmm-DD HH:MM:SS.fffffffff</code> string where <code class="computeroutput">mmm</code> 3 char month name. Fractional seconds only included if non-zero.</td>
+</tr>
+<tr><td><pre class="screen">2002-Jan-01 10:00:01.123456789</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_iso_string(ptime)</pre></td>
+<td>Convert to form <code class="computeroutput">YYYYMMDDTHHMMSS,fffffffff</code> where <code class="computeroutput">T</code> is the date-time separator</td>
+</tr>
+<tr><td><pre class="screen">20020131T100001,123456789</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_iso_extended_string(ptime)</pre></td>
+<td>Convert to form <code class="computeroutput">YYYY-MM-DDTHH:MM:SS,fffffffff</code> where <code class="computeroutput">T</code> is the date-time separator</td>
+</tr>
+<tr><td><pre class="screen">2002-01-31T10:00:01,123456789</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="ptime_operators"></a><h4>
+<a name="id1294940"></a>Operators</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;&lt;, operator&gt;&gt;</pre></td>
+<td>Streaming operators. <span class="strong"><strong>Note:</strong></span> As of version 1.33, streaming operations have been greatly improved. See <a class="link" href="date_time_io.html" title="Date Time Input/Output">Date Time IO System</a> for more details (including exceptions and error conditions).</td>
+</tr>
+<tr><td>
+<pre class="screen">ptime pt(not_a_date_time);
+stringstream ss("2002-Jan-01 14:23:11");
+ss &gt;&gt; pt;
+std::cout &lt;&lt; pt; // "2002-Jan-01 14:23:11"
+ </pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top">
+<pre class="screen">operator==, operator!=,
+operator&gt;, operator&lt;,
+operator&gt;=, operator&lt;=</pre>
+ </td>
+<td>A full complement of comparison operators</td>
+</tr>
+<tr><td><pre class="screen">t1 == t2, etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime operator+(days)</pre></td>
+<td>Return a ptime adding a day offset</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,1);
+ptime t(d,minutes(5));
+days dd(1);
+ptime t2 = t + dd;</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime operator-(days)</pre></td>
+<td>Return a ptime subtracting a day offset</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,1);
+ptime t(d,minutes(5));
+days dd(1);
+ptime t2 = t - dd;</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime operator+(time_duration)</pre></td>
+<td>Return a ptime adding a time duration</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,1);
+ptime t(d,minutes(5));
+ptime t2 = t + hours(1) + minutes(2);</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime operator-(time_duration)</pre></td>
+<td>Return a ptime subtracting a time duration</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,1);
+ptime t(d,minutes(5));
+ptime t2 = t - minutes(2);</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration operator-(ptime)</pre></td>
+<td>Take the difference between two times.</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,1);
+ptime t1(d,minutes(5));
+ptime t2(d,seconds(5));
+time_duration t3 = t2 - t1;//negative result</pre>
+ </td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="ptime_struct_tm"></a><h4>
+<a name="id1295219"></a>Struct tm, time_t, and FILETIME Functions</h4>
+<p>Functions for converting posix_time objects to, and from, <code class="computeroutput">tm</code> structs are provided as well as conversion from <code class="computeroutput">time_t</code> and <code class="computeroutput">FILETIME</code>.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">tm to_tm(ptime)</pre></td>
+<td>A function for converting a <code class="computeroutput">ptime</code> object to a <code class="computeroutput">tm</code> struct. The <code class="computeroutput">tm_isdst</code> field is set to -1.</td>
+</tr>
+<tr><td>
+<pre class="screen">ptime pt(date(2005,Jan,1), time_duration(1,2,3));
+tm pt_tm = to_tm(pt);
+/* tm_year =&gt; 105
+ tm_mon =&gt; 0
+ tm_mday =&gt; 1
+ tm_wday =&gt; 6 (Saturday)
+ tm_yday =&gt; 0
+ tm_hour =&gt; 1
+ tm_min =&gt; 2
+ tm_sec =&gt; 3
+ tm_isddst =&gt; -1 */</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date date_from_tm(tm datetm)</pre></td>
+<td>A function for converting a <code class="computeroutput">tm</code> struct to a <code class="computeroutput">date</code> object. The fields: <code class="computeroutput">tm_wday </code>, <code class="computeroutput">tm_yday </code>, and <code class="computeroutput">tm_isdst</code> are ignored.</td>
+</tr>
+<tr><td>
+<pre class="screen">tm pt_tm;
+pt_tm.tm_year = 105;
+pt_tm.tm_mon = 0;
+pt_tm.tm_mday = 1;
+pt_tm.tm_hour = 1;
+pt_tm.tm_min = 2;
+pt_tm.tm_sec = 3;
+ptime pt = ptime_from_tm(pt_tm);
+// pt =&gt; 2005-Jan-01 01:02:03</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">tm to_tm(time_duration)</pre></td>
+<td>A function for converting a <code class="computeroutput">time_duration</code> object to a <code class="computeroutput">tm</code> struct. The fields: <code class="computeroutput">tm_year</code>, <code class="computeroutput">tm_mon</code>, <code class="computeroutput">tm_mday</code>, <code class="computeroutput">tm_wday</code>, <code class="computeroutput">tm_yday</code> are set to zero. The <code class="computeroutput">tm_isdst</code> field is set to -1.</td>
+</tr>
+<tr><td>
+<pre class="screen">time_duration td(1,2,3);
+tm td_tm = to_tm(td);
+/* tm_year =&gt; 0
+ tm_mon =&gt; 0
+ tm_mday =&gt; 0
+ tm_wday =&gt; 0
+ tm_yday =&gt; 0
+ tm_hour =&gt; 1
+ tm_min =&gt; 2
+ tm_sec =&gt; 3
+ tm_isddst =&gt; -1 */</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime from_time_t(std::time_t)</pre></td>
+<td>Creates a <code class="computeroutput">ptime</code> from the time_t parameter. The seconds held in the time_t are added to a time point of 1970-Jan-01.</td>
+</tr>
+<tr><td><pre class="screen">ptime pt(not_a_date_time);
+std::time_t t;
+t = 1118158776;
+pt = from_time_t(t);
+// pt =&gt; 2005-Jun-07 15:39:36</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime from_ftime&lt;ptime&gt;(FILETIME)</pre></td>
+<td>A template function that constructs a <code class="computeroutput">ptime</code> from a FILETIME struct.</td>
+</tr>
+<tr><td><pre class="screen">FILETIME ft;
+ft.dwHighDateTime = 29715317;
+ft.dwLowDateTime = 3865122988UL;
+ptime pt = from_ftime&lt;ptime&gt;(ft);
+// pt =&gt; 2005-Jun-07 15:30:57.039582000</pre></td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.posix_time.time_duration"></a>Time Duration</h3></div></div></div>
+<a class="link" href="posix_time.html#time_duration_intro">Introduction</a> --
+ <a class="link" href="posix_time.html#time_duration_header">Header</a> --
+ <a class="link" href="posix_time.html#time_duration_constr">Construction</a> --
+ <a class="link" href="posix_time.html#time_duration_count_constr">Count Based Construction</a> --
+ <a class="link" href="posix_time.html#time_duration_from_string">Construct from String</a> --
+ <a class="link" href="posix_time.html#time_duration_accessors">Accessors</a> --
+ <a class="link" href="posix_time.html#time_duration_to_string">Conversion To String</a> --
+ <a class="link" href="posix_time.html#time_duration_operators">Operators</a> --
+ <a class="link" href="posix_time.html#time_duration_struct_tm">Struct tm Functions</a><a name="time_duration_intro"></a><h4>
+<a name="id1295654"></a>Introduction</h4>
+<p>
+ The class boost::posix_time::time_duration the base type responsible for representing a length of time. A duration can be either positive or negative. The general time_duration class provides a constructor that takes a count of the number of hours, minutes, seconds, and fractional seconds count as shown in the code fragment below. The resolution of the time_duration is configure able at compile time. See <a class="link" href="details.html#date_time.buildinfo" title="Build-Compiler Information">Build-Compiler Information</a> for more information.
+ </p>
+<p>
+ </p>
+<pre class="programlisting">using namespace boost::posix_time;
+time_duration td(1,2,3,4); //01:02:03.000000004 when resolution is nano seconds
+time_duration td(1,2,3,4); //01:02:03.000004 when resolution is micro seconds</pre>
+<p>
+ </p>
+<p>
+ Several small helper classes that derive from a base time_duration, as shown below, to adjust for different resolutions. These classes can shorten code and make the intent clearer.
+ </p>
+<img src="../../../libs/date_time/doc/time_duration_inherit.png"><p>
+ As an example:
+ </p>
+<pre class="programlisting">using namespace boost::posix_time;
+
+time_duration td = hours(1) + seconds(10); //01:00:01
+td = hours(1) + nanoseconds(5); //01:00:00.000000005</pre>
+<p>
+ Note that the existence of the higher resolution classes (eg: nanoseconds) depends on the installation of the library. See <a class="link" href="details.html#date_time.buildinfo" title="Build-Compiler Information">Build-Compiler Information</a> for more information.
+ </p>
+<p>
+ Another way to handle this is to utilize the ticks_per_second() method of time_duration to
+ write code that is portable no matter how the library is compiled. The general equation
+ for calculating a resolution independent count is as follows:
+
+ </p>
+<pre class="programlisting">
+count*(time_duration_ticks_per_second / count_ticks_per_second)
+ </pre>
+<p>
+
+ For example, let's suppose we want to construct using a count that represents tenths
+ of a second. That is, each tick is 0.1 second.
+ </p>
+<pre class="programlisting">
+int number_of_tenths = 5;
+//create a resolution independent count -- divide by 10 since there are
+//10 tenths in a second.
+int count = number_of_tenths*(time_duration::ticks_per_second()/10);
+time_duration td(1,2,3,count); //01:02:03.5 //no matter the resolution settings
+ </pre>
+<p>
+ </p>
+<a name="time_duration_header"></a><h4>
+<a name="id1295756"></a>Header</h4>
+<p>
+ </p>
+<pre class="programlisting">#include "boost/date_time/posix_time/posix_time.hpp" //include all types plus i/o
+or
+#include "boost/date_time/posix_time/posix_time_types.hpp" //no i/o just types</pre>
+<p>
+ </p>
+<a name="time_duration_constr"></a><h4>
+<a name="id1295780"></a>Construction</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration(hours,
+ minutes,
+ seconds,
+ fractional_seconds)</pre></td>
+<td>Construct a duration from the counts. The fractional_second parameter is a number of units and is therefore affected by the resolution the application is compiled with (see <a class="link" href="details.html#compile_options">Build-Compiler Information</a>). If the fractional_seconds argument exceeds the limit of the compiled precision, the excess value will be "carried over" into the seconds field. See above for techniques to creating a resolution independent count.</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(1,2,3,9);
+//1 hr 2 min 3 sec 9 nanoseconds
+time_duration td2(1,2,3,123456789);
+time_duration td3(1,2,3,1000);
+// with microsecond resolution (6 digits)
+// td2 =&gt; "01:04:06.456789"
+// td3 =&gt; "01:02:03.001000"
+// with nanosecond resolution (9 digits)
+// td2 =&gt; "01:02:03.123456789"
+// td3 =&gt; "01:02:03.000001000"</pre></td></tr>
+<tr>
+<td valign="top"><pre class="screen">time_duration(special_value sv)</pre></td>
+<td>Special values constructor. <span class="strong"><strong>Important note</strong></span>: When a time_duration is a special value, either by construction or other means, the following accessor functions will give unpredictable results: <pre class="screen">hours(), minutes(), seconds(), ticks(),
+fractional_seconds(), total_nanoseconds(),
+total_microseconds(), total_milliseconds(),
+total_seconds()</pre>The remaining accessor functions will work as expected.</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="time_duration_count_constr"></a><h4>
+<a name="id1295863"></a>Count Based Construction</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">hours(long)</pre></td>
+<td>Number of hours</td>
+</tr>
+<tr><td><pre class="screen">time_duration td = hours(3);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">minutes(long)</pre></td>
+<td>Number of minutes</td>
+</tr>
+<tr><td><pre class="screen">time_duration td = minutes(3);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">seconds(long)</pre></td>
+<td> Number of seconds</td>
+</tr>
+<tr><td><pre class="screen">time_duration td = seconds(3);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">milliseconds(long)</pre></td>
+<td>Number of milliseconds.</td>
+</tr>
+<tr><td><pre class="screen">time_duration td = milliseconds(3);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">microseconds(long)</pre></td>
+<td>Number of microseconds.</td>
+</tr>
+<tr><td><pre class="screen">time_duration td = microseconds(3);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">nanoseconds(long)</pre></td>
+<td>Number of nanoseconds.</td>
+</tr>
+<tr><td><pre class="screen">time_duration td = nanoseconds(3);</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="time_duration_from_string"></a><h4>
+<a name="id1296132"></a>Construct from String</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration duration_from_string(std::string)</pre></td>
+<td>From delimited string. NOTE: Excess digits in fractional seconds will be dropped. Ex: "1:02:03.123456999" =&gt; 1:02:03.123456. This behavior is affected by the precision the library is compiled with (see <a class="link" href="details.html#date_time.buildinfo" title="Build-Compiler Information">Build-Compiler Information</a>.</td>
+</tr>
+<tr><td>
+<pre class="screen">std::string ts("23:59:59.000");
+time_duration td(duration_from_string(ts));</pre>
+ </td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="time_duration_accessors"></a><h4>
+<a name="id1296225"></a>Accessors</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long hours()</pre></td>
+<td>Get the number of normalized hours (will give unpredictable results if calling <code class="computeroutput">time_duration</code> is a <code class="computeroutput">special_value</code>).</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(1,2,3);
+time_duration neg_td(-1,2,3);
+td.hours(); // --&gt; 1
+neg_td.hours(); // --&gt; -1</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long minutes()</pre></td>
+<td>Get the number of minutes normalized +/-(0..59) (will give unpredictable results if calling <code class="computeroutput">time_duration</code> is a <code class="computeroutput">special_value</code>).</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(1,2,3);
+time_duration neg_td(-1,2,3);
+td.minutes(); // --&gt; 2
+neg_td.minutes(); // --&gt; -2</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long seconds()</pre></td>
+<td>Get the normalized number of second +/-(0..59) (will give unpredictable results if calling <code class="computeroutput">time_duration</code> is a <code class="computeroutput">special_value</code>).</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(1,2,3);
+time_duration neg_td(-1,2,3);
+td.seconds(); // --&gt; 3
+neg_td.seconds(); // --&gt; -3</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long total_seconds()</pre></td>
+<td>Get the total number of seconds truncating any fractional seconds (will give unpredictable results if calling <code class="computeroutput">time_duration</code> is a <code class="computeroutput">special_value</code>).</td>
+</tr>
+<tr><td>
+<pre class="screen">time_duration td(1,2,3,10);
+td.total_seconds();
+// --&gt; (1*3600) + (2*60) + 3 == 3723</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long total_milliseconds()</pre></td>
+<td>Get the total number of milliseconds truncating any remaining digits (will give unpredictable results if calling <code class="computeroutput">time_duration</code> is a <code class="computeroutput">special_value</code>).</td>
+</tr>
+<tr><td>
+<pre class="screen">time_duration td(1,2,3,123456789);
+td.total_milliseconds();
+// HMS --&gt; (1*3600) + (2*60) + 3 == 3723 seconds
+// milliseconds is 3 decimal places
+// (3723 * 1000) + 123 == 3723123</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long total_microseconds()</pre></td>
+<td>Get the total number of microseconds truncating any remaining digits (will give unpredictable results if calling <code class="computeroutput">time_duration</code> is a <code class="computeroutput">special_value</code>).</td>
+</tr>
+<tr><td>
+<pre class="screen">time_duration td(1,2,3,123456789);
+td.total_microseconds();
+// HMS --&gt; (1*3600) + (2*60) + 3 == 3723 seconds
+// microseconds is 6 decimal places
+// (3723 * 1000000) + 123456 == 3723123456</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long total_nanoseconds()</pre></td>
+<td>Get the total number of nanoseconds truncating any remaining digits (will give unpredictable results if calling <code class="computeroutput">time_duration</code> is a <code class="computeroutput">special_value</code>).</td>
+</tr>
+<tr><td>
+<pre class="screen">time_duration td(1,2,3,123456789);
+td.total_nanoseconds();
+// HMS --&gt; (1*3600) + (2*60) + 3 == 3723 seconds
+// nanoseconds is 9 decimal places
+// (3723 * 1000000000) + 123456789
+// == 3723123456789</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long fractional_seconds()</pre></td>
+<td>Get the number of fractional seconds (will give unpredictable results if calling <code class="computeroutput">time_duration</code> is a <code class="computeroutput">special_value</code>).</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(1,2,3, 1000);
+td.fractional_seconds(); // --&gt; 1000</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_negative()</pre></td>
+<td>True if duration is negative.</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(-1,0,0);
+td.is_negative(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration invert_sign()</pre></td>
+<td>Generate a new duration with the sign inverted/</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(-1,0,0);
+td.invert_sign(); // --&gt; 01:00:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_time::time_resolutions resolution()</pre></td>
+<td>Describes the resolution capability of the time_duration class. time_resolutions is an enum of resolution possibilities ranging from seconds to nanoseconds.</td>
+</tr>
+<tr><td><pre class="screen">time_duration::resolution() --&gt; nano</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration::num_fractional_digits()</pre></td>
+<td>Returns an unsigned short holding the number of fractional digits the time resolution has.</td>
+</tr>
+<tr><td><pre class="screen">unsigned short secs;
+secs = time_duration::num_fractional_digits();
+// 9 for nano, 6 for micro, etc.</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration::ticks_per_second()</pre></td>
+<td>Return the number of ticks in a second. For example, if the duration supports nanoseconds then the returned result will be 1,000,000,000 (1e+9).</td>
+</tr>
+<tr><td><pre class="screen">std::cout &lt;&lt; time_duration::ticks_per_second();</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">boost::int64_t ticks()</pre></td>
+<td>Return the raw count of the duration type (will give unpredictable results if calling <code class="computeroutput">time_duration</code> is a <code class="computeroutput">special_value</code>).</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(0,0,0, 1000);
+td.ticks() // --&gt; 1000</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration unit()</pre></td>
+<td>Return smallest possible unit of duration type (1 nanosecond).</td>
+</tr>
+<tr><td><pre class="screen">time_duration::unit() --&gt; time_duration(0,0,0,1)</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_neg_infinity() const</pre></td>
+<td>Returns true if time_duration is negative infinity</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(neg_infin);
+td.is_neg_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_pos_infinity() const</pre></td>
+<td>Returns true if time_duration is positive infinity</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(neg_infin);
+td.is_pos_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_not_a_date_time() const</pre></td>
+<td>Returns true if value is not a time</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(not_a_date_time);
+td.is_not_a_date_time(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_special() const</pre></td>
+<td>Returns true if time_duration is any <code class="computeroutput">special_value</code>
+</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(pos_infin);
+time_duration td2(not_a_date_time);
+time_duration td3(2,5,10);
+td.is_special(); // --&gt; true
+td2.is_special(); // --&gt; true
+td3.is_special(); // --&gt; false</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="time_duration_to_string"></a><h4>
+<a name="id1296945"></a>Conversion To String</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_simple_string(time_duration)</pre></td>
+<td>To <code class="computeroutput">HH:MM:SS.fffffffff</code> were <code class="computeroutput">fff</code> is fractional seconds that are only included if non-zero.</td>
+</tr>
+<tr><td><pre class="screen">10:00:01.123456789</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_iso_string(time_duration)</pre></td>
+<td>Convert to form <code class="computeroutput">HHMMSS,fffffffff</code>.</td>
+</tr>
+<tr><td><pre class="screen">100001,123456789</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="time_duration_operators"></a><h4>
+<a name="id1297086"></a>Operators</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;&lt;, operator&gt;&gt;</pre></td>
+<td>Streaming operators. <span class="strong"><strong>Note:</strong></span> As of version 1.33, streaming operations have been greatly improved. See <a class="link" href="date_time_io.html" title="Date Time Input/Output">Date Time IO System</a> for more details (including exceptions and error conditions).</td>
+</tr>
+<tr><td>
+<pre class="screen">time_duration td(0,0,0);
+stringstream ss("14:23:11.345678");
+ss &gt;&gt; td;
+std::cout &lt;&lt; td; // "14:23:11.345678"
+ </pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top">
+<pre class="screen">operator==, operator!=,
+operator&gt;, operator&lt;,
+operator&gt;=, operator&lt;=</pre>
+ </td>
+<td>A full complement of comparison operators</td>
+</tr>
+<tr><td><pre class="screen">dd1 == dd2, etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration operator+(time_duration)</pre></td>
+<td>Add durations.</td>
+</tr>
+<tr><td>
+<pre class="screen">time_duration td1(hours(1)+minutes(2));
+time_duration td2(seconds(10));
+time_duration td3 = td1 + td2;</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration operator-(time_duration)</pre></td>
+<td>Subtract durations.</td>
+</tr>
+<tr><td>
+<pre class="screen">time_duration td1(hours(1)+nanoseconds(2));
+time_duration td2 = td1 - minutes(1);</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration operator/(int)</pre></td>
+<td>Divide the length of a duration by an integer value. Discards any remainder.</td>
+</tr>
+<tr><td>
+<pre class="screen">hours(3)/2 == time_duration(1,30,0);
+nanosecond(3)/2 == nanosecond(1);</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration operator*(int)</pre></td>
+<td>Multiply the length of a duration by an integer value.</td>
+</tr>
+<tr><td><pre class="screen">hours(3)*2 == hours(6);</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="time_duration_struct_tm"></a><h4>
+<a name="id1297334"></a>Struct tm, time_t, and FILETIME Functions</h4>
+<p>Function for converting a time_duration to a <code class="computeroutput">tm</code> struct is provided.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">tm to_tm(time_duration)</pre></td>
+<td>A function for converting a <code class="computeroutput">time_duration</code> object to a <code class="computeroutput">tm</code> struct. The fields: <code class="computeroutput">tm_year</code>, <code class="computeroutput">tm_mon</code>, <code class="computeroutput">tm_mday</code>, <code class="computeroutput">tm_wday</code>, <code class="computeroutput">tm_yday</code> are set to zero. The <code class="computeroutput">tm_isdst</code> field is set to -1.</td>
+</tr>
+<tr><td>
+<pre class="screen">time_duration td(1,2,3);
+tm td_tm = to_tm(td);
+/* tm_year =&gt; 0
+ tm_mon =&gt; 0
+ tm_mday =&gt; 0
+ tm_wday =&gt; 0
+ tm_yday =&gt; 0
+ tm_hour =&gt; 1
+ tm_min =&gt; 2
+ tm_sec =&gt; 3
+ tm_isddst =&gt; -1 */</pre>
+ </td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.posix_time.time_period"></a>Time Period</h3></div></div></div>
+<a class="link" href="posix_time.html#time_period_intro">Introduction</a> --
+ <a class="link" href="posix_time.html#time_period_header">Header</a> --
+ <a class="link" href="posix_time.html#time_period_constr">Construction</a> --
+ <a class="link" href="posix_time.html#time_period_mutators">Mutators</a> --
+ <a class="link" href="posix_time.html#time_period_accessors">Accessors</a> --
+ <a class="link" href="posix_time.html#time_period_to_string">Conversion To String</a> --
+ <a class="link" href="posix_time.html#time_period_operators">Operators</a><a name="time_period_intro"></a><h4>
+<a name="id1297546"></a>Introduction</h4>
+<p>
+ The class boost::posix_time::time_period provides direct representation for ranges between two times. Periods provide the ability to simplify some types of calculations by simplifying the conditional logic of the program.
+ </p>
+<p>
+ A period that is created with beginning and end points being equal, or with a duration of zero, is known as a zero length period. Zero length periods are considered invalid (it is perfectly legal to construct an invalid period). For these periods, the <code class="computeroutput">last</code> point will always be one unit less that the <code class="computeroutput">begin</code> point.
+ </p>
+<p>
+ The <a class="link" href="examples.html#date_time.examples.time_periods" title="Time Periods">time periods example</a> provides an example of using time periods.
+ </p>
+<a name="time_period_header"></a><h4>
+<a name="id1297597"></a>Header</h4>
+<p>
+ </p>
+<pre class="programlisting">#include "boost/date_time/posix_time/posix_time.hpp" //include all types plus i/o
+or
+#include "boost/date_time/posix_time/posix_time_types.hpp" //no i/o just types</pre>
+<p>
+ </p>
+<a name="time_period_constr"></a><h4>
+<a name="id1297620"></a>Construction</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_period(ptime,
+ ptime)</pre></td>
+<td> Create a period as [begin, end). If end is &lt;= begin then the period will be defined as invalid.</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,01);
+ptime t1(d, seconds(10)); //10 sec after midnight
+ptime t2(d, hours(10)); //10 hours after midnight
+time_period tp(t1, t2);</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_period(ptime,
+ time_duration)</pre></td>
+<td> Create a period as [begin, begin+len) where end would be begin+len. If len is &lt;= zero then the period will be defined as invalid.</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,01);
+ptime t(d, seconds(10)); //10 sec after midnight
+time_period tp(t, hours(3));</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_period(time_period rhs)</pre></td>
+<td> Copy constructor</td>
+</tr>
+<tr><td><pre class="screen">time_period tp1(tp);</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="time_period_mutators"></a><h4>
+<a name="id1297768"></a>Mutators</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_period shift(time_duration)</pre></td>
+<td>Add duration to both begin and end.</td>
+</tr>
+<tr><td>
+ <pre class="screen">
+time_period tp(ptime(date(2005,Jan,1),hours(1)), hours(2));
+tp.shift(minutes(5));
+// tp == 2005-Jan-01 01:05:00 to 2005-Jan-01 03:05:00
+ </pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_period expand(days)</pre></td>
+<td>Subtract duration from begin and add duration to end.</td>
+</tr>
+<tr><td>
+ <pre class="screen">
+time_period tp(ptime(date(2005,Jan,1),hours(1)), hours(2));
+tp.expand(minutes(5));
+// tp == 2005-Jan-01 00:55:00 to 2005-Jan-01 03:05:00
+ </pre>
+ </td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="time_period_accessors"></a><h4>
+<a name="id1297884"></a>Accessors</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime begin()</pre></td>
+<td>Return first time of period.</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,01);
+ptime t1(d, seconds(10)); //10 sec after midnight
+ptime t2(d, hours(10)); //10 hours after midnight
+time_period tp(t1, t2);
+tp.begin(); // --&gt; 2002-Jan-01 00:00:10</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime last()</pre></td>
+<td>Return last time in the period</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,01);
+ptime t1(d, seconds(10)); //10 sec after midnight
+ptime t2(d, hours(10)); //10 hours after midnight
+time_period tp(t1, t2);
+tp.last();// --&gt; 2002-Jan-01 09:59:59.999999999</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime end()</pre></td>
+<td> Return one past the last in period</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,01);
+ptime t1(d, seconds(10)); //10 sec after midnight
+ptime t2(d, hours(10)); //10 hours after midnight
+time_period tp(t1, t2);
+tp.last(); // --&gt; 2002-Jan-01 10:00:00</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration length()</pre></td>
+<td>Return the length of the time period.</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,01);
+ptime t1(d); //midnight
+time_period tp(t1, hours(1));
+tp.length() --&gt; 1 hour</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_null()</pre></td>
+<td>True if period is not well formed. eg: end is less than or equal to begin.</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,01);
+ptime t1(d, hours(12)); // noon on Jan 1st
+ptime t2(d, hours(9)); // 9am on Jan 1st
+time_period tp(t1, t2);
+tp.is_null(); // true</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool contains(ptime)</pre></td>
+<td>True if ptime is within the period. Zero length periods cannot contain any points.</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,01);
+ptime t1(d, seconds(10)); //10 sec after midnight
+ptime t2(d, hours(10)); //10 hours after midnight
+ptime t3(d, hours(2)); //2 hours after midnight
+time_period tp(t1, t2);
+tp.contains(t3); // true
+time_period tp2(t1, t1);
+tp2.contains(t1); // false</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool contains(time_period)</pre></td>
+<td>True if period is within the period</td>
+</tr>
+<tr><td>
+<pre class="screen">time_period tp1(ptime(d,hours(1)),
+ ptime(d,hours(12)));
+time_period tp2(ptime(d,hours(2)),
+ ptime(d,hours(4)));
+tp1.contains(tp2); // --&gt; true
+tp2.contains(tp1); // --&gt; false</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool intersects(time_period)</pre></td>
+<td> True if periods overlap</td>
+</tr>
+<tr><td>
+<pre class="screen">time_period tp1(ptime(d,hours(1)),
+ ptime(d,hours(12)));
+time_period tp2(ptime(d,hours(2)),
+ ptime(d,hours(4)));
+tp2.intersects(tp1); // --&gt; true</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_period intersection(time_period)</pre></td>
+<td>Calculate the intersection of 2 periods. Null if no intersection.</td>
+</tr>
+<tr><td>&#160;</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_period merge(time_period)</pre></td>
+<td>Returns union of two periods. Null if no intersection.</td>
+</tr>
+<tr><td>&#160;</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_period span(time_period)</pre></td>
+<td>Combines two periods and any gap between them such that begin = min(p1.begin, p2.begin) and end = max(p1.end , p2.end).</td>
+</tr>
+<tr><td>&#160;</td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="time_period_to_string"></a><h4>
+<a name="id1298150"></a>Conversion To String</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string
+ to_simple_string(time_period dp)</pre></td>
+<td>To <code class="computeroutput">[YYYY-mmm-DD hh:mm:ss.fffffffff/YYYY-mmm-DD hh:mm:ss.fffffffff]</code> string where <code class="computeroutput">mmm</code> is 3 char month name.</td>
+</tr>
+<tr><td><pre class="screen">[2002-Jan-01 01:25:10.000000001/
+ 2002-Jan-31 01:25:10.123456789]
+// string occupies one line</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="time_period_operators"></a><h4>
+<a name="id1298369"></a>Operators</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;&lt;</pre></td>
+<td>Output streaming operator for time duration. Uses facet to output [date time_of_day/date time_of_day]. The default is format is <code class="computeroutput">[YYYY-mmm-DD hh:mm:ss.fffffffff/YYYY-mmm-DD hh:mm:ss.fffffffff]</code> string where <code class="computeroutput">mmm</code> is 3 char month name and the fractional seconds are left out when zero.</td>
+</tr>
+<tr><td><pre class="screen">[2002-Jan-01 01:25:10.000000001/ \
+ 2002-Jan-31 01:25:10.123456789]</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&gt;&gt;</pre></td>
+<td>Input streaming operator for time duration. Uses facet to read [date time_of_day/date time_of_day]. The default is format is <code class="computeroutput">[YYYY-mmm-DD hh:mm:ss.fffffffff/YYYY-mmm-DD hh:mm:ss.fffffffff]</code> string where <code class="computeroutput">mmm</code> is 3 char month name and the fractional seconds are left out when zero.</td>
+</tr>
+<tr><td><pre class="screen">[2002-Jan-01 01:25:10.000000001/ \
+ 2002-Jan-31 01:25:10.123456789]</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator==, operator!=</pre></td>
+<td>Equality operators. Periods are equal if p1.begin == p2.begin &amp;&amp; p1.last == p2.last</td>
+</tr>
+<tr><td><pre class="screen">if (tp1 == tp2) {...</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;</pre></td>
+<td>Ordering with no overlap. True if tp1.end() less than tp2.begin()</td>
+</tr>
+<tr><td><pre class="screen">if (tp1 &lt; tp2) {...</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&gt;</pre></td>
+<td>Ordering with no overlap. True if tp1.begin() greater than tp2.end()</td>
+</tr>
+<tr><td><pre class="screen">if (tp1 &gt; tp2) {... etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;=, operator&gt;=</pre></td>
+<td>Defined in terms of the other operators.</td>
+</tr>
+<tr><td>&#160;</td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.posix_time.time_iterators"></a>Time Iterators</h3></div></div></div>
+<a class="link" href="posix_time.html#time_iter_intro">Introduction</a> --
+ <a class="link" href="posix_time.html#time_iter_header">Header</a> --
+ <a class="link" href="posix_time.html#time_iter_overview">Overview</a> --
+ <a class="link" href="posix_time.html#time_iter_operators">Operators</a><a name="time_iter_intro"></a><h4>
+<a name="id1298664"></a>Introduction</h4>
+<p>
+ Time iterators provide a mechanism for iteration through times. Time iterators are similar to <a href="http://www.sgi.com/tech/stl/BidirectionalIterator.html" target="_top">Bidirectional Iterators</a>. However, time_iterators are different than standard iterators in that there is no underlying sequence, just a calculation function. In addition, time_iterators are directly comparable against instances of <a class="link" href="posix_time.html#date_time.posix_time.ptime_class" title="Ptime">class ptime</a>. Thus a second iterator for the end point of the iteration is not required, but rather a point in time can be used directly. For example, the following code iterates using a 15 minute iteration interval. The <a class="link" href="examples.html#date_time.examples.print_hours" title="Print Hours">print hours</a> example also illustrates the use of the time_iterator.
+ </p>
+<p>
+ </p>
+<pre class="programlisting">
+
+ #include "boost/date_time/posix_time/posix_time.hpp"
+ #include &lt;iostream&gt;
+
+
+ int
+ main()
+ {
+ using namespace boost::gregorian;
+ using namespace boost::posix_time;
+ date d(2000,Jan,20);
+ ptime start(d);
+ ptime end = start + hours(1);
+ time_iterator titr(start,minutes(15)); //increment by 15 minutes
+ //produces 00:00:00, 00:15:00, 00:30:00, 00:45:00
+ while (titr &lt; end) {
+ std::cout &lt;&lt; to_simple_string(*titr) &lt;&lt; std::endl;
+ ++titr;
+ }
+ std::cout &lt;&lt; "Now backward" &lt;&lt; std::endl;
+ //produces 01:00:00, 00:45:00, 00:30:00, 00:15:00
+ while (titr &gt; start) {
+ std::cout &lt;&lt; to_simple_string(*titr) &lt;&lt; std::endl;
+ --titr;
+ }
+ }
+
+ </pre>
+<p>
+ </p>
+<a name="time_iter_header"></a><h4>
+<a name="id1298714"></a>Header</h4>
+<p>
+ </p>
+<pre class="programlisting">#include "boost/date_time/posix_time/posix_time.hpp" //include all types plus i/o
+or
+#include "boost/date_time/posix_time/posix_time_types.hpp" //no i/o just types</pre>
+<p>
+ </p>
+<a name="time_iter_overview"></a><h4>
+<a name="id1298744"></a>Overview</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Class</th>
+<th>Description</th>
+</tr>
+<tr><th>Construction Parameters</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_iterator</pre></td>
+<td>Iterate incrementing by the specified duration.</td>
+</tr>
+<tr><td><pre class="screen">ptime start_time, time_duration increment</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+<a name="time_iter_operators"></a><h4>
+<a name="id1298824"></a>Operators</h4>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top">
+<pre class="screen">operator==(const ptime&amp; rhs),
+operator!=(const ptime&amp; rhs),
+operator&gt;, operator&lt;,
+operator&gt;=, operator&lt;=</pre>
+ </td>
+<td>A full complement of comparison operators</td>
+</tr>
+<tr><td>
+<pre class="screen">date d(2002,Jan,1);
+ptime start_time(d, hours(1));
+//increment by 10 minutes
+time_iterator titr(start_time, minutes(10));
+ptime end_time = start_time + hours(2);
+if (titr == end_time) // false
+if (titr != end_time) // true
+if (titr &gt;= end_time) // false
+if (titr &lt;= end_time) // true</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">prefix increment</pre></td>
+<td>Increment the iterator by the specified duration.</td>
+</tr>
+<tr><td>
+<pre class="screen">//increment by 10 milli seconds
+time_iterator titr(start_time, milliseconds(10));
+++titr; // == start_time + 10 milliseconds</pre>
+ </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">prefix decrement</pre></td>
+<td>Decrement the iterator by the specified time duration.</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(1,2,3);
+time_iterator titr(start_time, td);
+--titr; // == start_time - 01:02:03</pre></td></tr>
+</tbody>
+</table></div>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2005 CrystalClear Software, Inc<p>Subject to the Boost Software License, Version 1.0. (See accompanying file
+ <code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="gregorian.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="local_time.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_time/serialization.html b/doc/html/date_time/serialization.html
new file mode 100755
index 0000000000..ee61ce4fa9
--- /dev/null
+++ b/doc/html/date_time/serialization.html
@@ -0,0 +1,149 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Serialization</title>
+<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
+<link rel="up" href="../date_time.html" title="Chapter&#160;7.&#160;Boost.Date_Time">
+<link rel="prev" href="date_time_io.html" title="Date Time Input/Output">
+<link rel="next" href="details.html" title="Details">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.html">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
+<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_time_io.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="details.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="date_time.serialization"></a>Serialization</h2></div></div></div>
+<p>
+ The boost::date_time library is compatible with the boost::serialization library's text and xml archives. The list of classes that are serializable are:
+ </p>
+<h4>
+<a name="id1313328"></a>boost::gregorian</h4>
+<div class="informaltable"><table class="table" width="100%">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><a class="link" href="gregorian.html#date_time.gregorian.date_class" title="Date">date</a></td>
+<td><a class="link" href="gregorian.html#date_time.gregorian.date_duration" title="Date Duration (aka Days)">date_duration</a></td>
+<td><a class="link" href="gregorian.html#date_time.gregorian.date_period" title="Date Period">date_period</a></td>
+</tr>
+<tr>
+<td><a class="link" href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">partial_date</a></td>
+<td><a class="link" href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">nth_day_of_week_in_month</a></td>
+<td><a class="link" href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">first_day_of_week_in_month</a></td>
+</tr>
+<tr>
+<td><a class="link" href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">last_day_of_week_in_month</a></td>
+<td><a class="link" href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">first_day_of_week_before</a></td>
+<td><a class="link" href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">first_day_of_week_after</a></td>
+</tr>
+<tr>
+<td>greg_month</td>
+<td>greg_day</td>
+<td>greg_weekday</td>
+</tr>
+</tbody>
+</table></div>
+<h4>
+<a name="id1313454"></a>boost::posix_time</h4>
+<div class="informaltable"><table class="table" width="100%">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<tbody><tr>
+<td><a class="link" href="posix_time.html#date_time.posix_time.ptime_class" title="Ptime">ptime</a></td>
+<td><a class="link" href="posix_time.html#date_time.posix_time.time_duration" title="Time Duration">time_duration</a></td>
+<td><a class="link" href="posix_time.html#date_time.posix_time.time_period" title="Time Period">time_period</a></td>
+</tr></tbody>
+</table></div>
+<p>
+ No extra steps are required to build the date_time library for serialization use.
+ </p>
+<p>NOTE: due to a change in the serialization library interface, it is now required that all streamable objects be const prior to writing to the archive. The following template function will allow for this (and is used in the date_time tests). At this time no special steps are necessary to read from an archive.
+ </p>
+<pre class="programlisting">
+ template&lt;class archive_type, class temporal_type&gt;
+ void save_to(archive_type&amp; ar, const temporal_type&amp; tt)
+ {
+ ar &lt;&lt; tt;
+ }
+ </pre>
+<p>
+ </p>
+<p>
+ Example text_archive usage:
+ </p>
+<pre class="programlisting">
+ using namespace boost::posix_time;
+ using namespace boost::gregorian;
+ ptime pt(date(2002, Feb, 14)), hours(10)), pt2(not_a_date_time);
+ std::ofstream ofs("tmp_file");
+ archive::test_oarchive oa(ofs);
+ save_to(oa, pt); // NOTE: no macro
+ ofs.close();
+ std::ifstream ifs("tmp_file");
+ archive::text_iarchive ia(ifs);
+ ia &gt;&gt; pt2; // NOTE: no macro
+ ifs.close();
+ pt == pt2; // true</pre>
+<p>
+ </p>
+<p>
+ Example xml_archive usage:
+ </p>
+<pre class="programlisting">
+ using namespace boost::gregorian;
+ date d(2002, Feb, 14), d2(not_a_date_time);
+ std::ofstream ofs("tmp_file");
+ archive::xml_oarchive oa(ofs);
+ save_to(oa, BOOST_SERIALIZATION_NVP(d)); // macro required for xml_archive
+ ofs.close();
+ std::ifstream ifs("tmp_file");
+ archive::xml_iarchive ia(ifs);
+ ia &gt;&gt; BOOST_SERIALIZATION_NVP(d2); // macro required for xml_archive
+ ifs.close();
+ d == d2; // true</pre>
+<p>
+ </p>
+<p>
+ To use the date_time serialization code, the proper header files must be explicitly included. The header files are:
+ </p>
+<pre class="programlisting">
+ boost/date_time/gregorian/greg_serialize.hpp</pre>
+<p>
+ and
+ </p>
+<pre class="programlisting">
+ boost/date_time/posix_time/time_serialize.hpp</pre>
+<p>
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2005 CrystalClear Software, Inc<p>Subject to the Boost Software License, Version 1.0. (See accompanying file
+ <code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_time_io.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="details.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>