summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/date_time/xmldoc
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/date_time/xmldoc')
-rw-r--r--src/boost/libs/date_time/xmldoc/Jamfile.v290
-rw-r--r--src/boost/libs/date_time/xmldoc/README38
-rw-r--r--src/boost/libs/date_time/xmldoc/acknowledgements.xml16
-rw-r--r--src/boost/libs/date_time/xmldoc/buildinfo.xml153
-rw-r--r--src/boost/libs/date_time/xmldoc/calculations.xml96
-rw-r--r--src/boost/libs/date_time/xmldoc/changes.xml863
-rw-r--r--src/boost/libs/date_time/xmldoc/conceptual.xml19
-rw-r--r--src/boost/libs/date_time/xmldoc/custom_time_zone.xml376
-rw-r--r--src/boost/libs/date_time/xmldoc/date_algorithms.xml208
-rw-r--r--src/boost/libs/date_time/xmldoc/date_class.xml524
-rw-r--r--src/boost/libs/date_time/xmldoc/date_duration.xml250
-rw-r--r--src/boost/libs/date_time/xmldoc/date_facet.xml319
-rw-r--r--src/boost/libs/date_time/xmldoc/date_input_facet.xml340
-rw-r--r--src/boost/libs/date_time/xmldoc/date_iterators.xml113
-rw-r--r--src/boost/libs/date_time/xmldoc/date_period.xml434
-rw-r--r--src/boost/libs/date_time/xmldoc/date_time.xml70
-rw-r--r--src/boost/libs/date_time/xmldoc/date_time_autodoc.xml4344
-rw-r--r--src/boost/libs/date_time/xmldoc/date_time_docs_howto.html82
-rw-r--r--src/boost/libs/date_time/xmldoc/date_time_fo_stylesheet.xsl180
-rw-r--r--src/boost/libs/date_time/xmldoc/date_time_io.xml133
-rw-r--r--src/boost/libs/date_time/xmldoc/design_concepts.xml22
-rw-r--r--src/boost/libs/date_time/xmldoc/design_goals.xml126
-rw-r--r--src/boost/libs/date_time/xmldoc/details.xml22
-rw-r--r--src/boost/libs/date_time/xmldoc/domain_concepts.xml61
-rw-r--r--src/boost/libs/date_time/xmldoc/doxy.xml22
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_calc_rules.xml59
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_date_period_calc.xml96
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_dates_as_strings.xml77
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_days_alive.xml59
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_days_between_new_years.xml49
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_end_of_month_day.xml59
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_find_last_day_of_months.xml66
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_flight.xml60
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_local_utc_conversion.xml103
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_localization.xml115
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_meeting_planner.xml187
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_month_add.xml44
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_print_holidays.xml97
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_print_hours.xml66
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_print_month.xml74
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_seconds_since_epoch.xml77
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_simple_time_zone.xml100
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_time_math.xml48
-rw-r--r--src/boost/libs/date_time/xmldoc/ex_time_periods.xml74
-rw-r--r--src/boost/libs/date_time/xmldoc/examples.xml34
-rw-r--r--src/boost/libs/date_time/xmldoc/exclusive_date_time.xml15
-rw-r--r--src/boost/libs/date_time/xmldoc/format_flags.xml524
-rw-r--r--src/boost/libs/date_time/xmldoc/gregorian.xml76
-rw-r--r--src/boost/libs/date_time/xmldoc/gregorian_autodoc.xml1676
-rw-r--r--src/boost/libs/date_time/xmldoc/gregorian_calendar.xml96
-rw-r--r--src/boost/libs/date_time/xmldoc/io_objects.xml1101
-rw-r--r--src/boost/libs/date_time/xmldoc/io_tutorial.xml306
-rw-r--r--src/boost/libs/date_time/xmldoc/license.xml40
-rw-r--r--src/boost/libs/date_time/xmldoc/local_date_time.xml463
-rw-r--r--src/boost/libs/date_time/xmldoc/local_time.xml77
-rw-r--r--src/boost/libs/date_time/xmldoc/local_time_autodoc.xml371
-rw-r--r--src/boost/libs/date_time/xmldoc/local_time_period.xml383
-rw-r--r--src/boost/libs/date_time/xmldoc/motivation.xml20
-rw-r--r--src/boost/libs/date_time/xmldoc/posix_time.xml65
-rw-r--r--src/boost/libs/date_time/xmldoc/posix_time_autodoc.xml864
-rw-r--r--src/boost/libs/date_time/xmldoc/posix_time_zone.xml224
-rw-r--r--src/boost/libs/date_time/xmldoc/ptime_class.xml574
-rw-r--r--src/boost/libs/date_time/xmldoc/ref_tag_fix.pl114
-rw-r--r--src/boost/libs/date_time/xmldoc/references.xml124
-rw-r--r--src/boost/libs/date_time/xmldoc/serialization.xml116
-rw-r--r--src/boost/libs/date_time/xmldoc/snap_to_details.xml54
-rw-r--r--src/boost/libs/date_time/xmldoc/table_template.xml32
-rw-r--r--src/boost/libs/date_time/xmldoc/terminology.xml60
-rw-r--r--src/boost/libs/date_time/xmldoc/tests.xml23
-rw-r--r--src/boost/libs/date_time/xmldoc/time_duration.xml621
-rw-r--r--src/boost/libs/date_time/xmldoc/time_facet.xml147
-rw-r--r--src/boost/libs/date_time/xmldoc/time_input_facet.xml163
-rw-r--r--src/boost/libs/date_time/xmldoc/time_iterators.xml152
-rw-r--r--src/boost/libs/date_time/xmldoc/time_period.xml396
-rw-r--r--src/boost/libs/date_time/xmldoc/time_zone_base.xml113
-rw-r--r--src/boost/libs/date_time/xmldoc/tradeoffs.xml127
-rw-r--r--src/boost/libs/date_time/xmldoc/tz_database.xml233
-rw-r--r--src/boost/libs/date_time/xmldoc/usage_examples.xml103
78 files changed, 19898 insertions, 0 deletions
diff --git a/src/boost/libs/date_time/xmldoc/Jamfile.v2 b/src/boost/libs/date_time/xmldoc/Jamfile.v2
new file mode 100644
index 000000000..5bfec0b5c
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/Jamfile.v2
@@ -0,0 +1,90 @@
+# Copyright (c) 2002-2006 CrystalClear Software, Inc.
+# Use, modification and distribution is subject to the
+# Boost Software License, Version 1.0. (See accompanying
+# file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+#
+
+import set ;
+
+using boostbook ;
+using doxygen ;
+
+boostbook date_time : date_time.xml
+ :
+ <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/doc/html
+ <dependency>date_time_autodoc
+ <dependency>gregorian_autodoc
+ <dependency>posix_time_autodoc
+ <dependency>local_time_autodoc
+ <xsl:param>boost.root=../../../..
+ ;
+
+# boostbook date_time_doc : exclusive_date_time.xml ;
+
+# file lists take the form of [ set.difference [ glob include/these ] : [ glob but/not/these ] ]
+
+local date_time_files = [ glob ../../../boost/date_time/*.hpp ] ;
+
+# local date_time_files = [ set.difference
+# [ glob ../../../boost/date_time/*.hpp ] :
+# [ glob ../../../boost/date_time/testfrmwk.hpp
+# # ../../../boost/date_time/time_zone_base.hpp
+# # ../../../boost/date_time/time_zone_names.hpp
+# # ../../../boost/date_time/tz_db_base.hpp
+# # ../../../boost/date_time/dst_transition_generators.hpp
+# ]
+# ] ;
+
+local gregorian_files = [ set.difference
+ [ glob ../../../boost/date_time/gregorian/*.hpp ] :
+ [ glob ../../../boost/date_time/gregorian/event_schedule.hpp ]
+ ] ;
+
+#ECHO $(date_time_files) ; # useful for debugging
+
+# to build the autodoc files, run bjam --v2 autodoc_target. copy generated
+# file from bin.v2 dir to here. run ref_tag_fix.pl.
+
+doxygen date_time_autodoc :
+ $(date_time_files) :
+ <doxygen:param>ENABLE_PREPROCESSING=NO
+ <xsl:param>boost.doxygen.reftitle="Date Time Reference"
+ <doxygen.doxproc.title>"Date Time Reference"
+ <doxygen.doxproc.id>"date_time_reference"
+ ;
+
+doxygen gregorian_autodoc :
+ $(gregorian_files) :
+ <doxygen:param>ENABLE_PREPROCESSING=NO
+ <xsl:param>boost.doxygen.reftitle="Gregorian Reference"
+ <doxygen.doxproc.title>"Gregorian Reference"
+ <doxygen.doxproc.id>"gregorian_reference"
+ ;
+
+doxygen posix_time_autodoc :
+ [ glob ../../../boost/date_time/posix_time/*.hpp ] :
+ <doxygen:param>ENABLE_PREPROCESSING=NO
+ <xsl:param>boost.doxygen.reftitle="Posix Time Reference"
+ <doxygen.doxproc.title>"Posix Time Reference"
+ <doxygen.doxproc.id>"posix_time_reference"
+ ;
+
+doxygen local_time_autodoc :
+ [ glob ../../../boost/date_time/local_time/*.hpp ] :
+ <doxygen:param>ENABLE_PREPROCESSING=NO
+ <xsl:param>boost.doxygen.reftitle="Local Time Reference"
+ <doxygen.doxproc.title>"Local Time Reference"
+ <doxygen.doxproc.id>"local_time_reference"
+ ;
+
+
+# Copyright (c) 2004
+# CrystalClear Software, Inc.
+#
+# Permission to use, copy, modify, distribute and sell this software
+# and its documentation for any purpose is hereby granted without fee,
+# provided that the above copyright notice appear in all copies and
+# that both that copyright notice and this permission notice appear
+# in supporting documentation. CrystalClear Software makes no
+# representations about the suitability of this software for any
+# purpose. It is provided "as is" without express or implied warranty.
diff --git a/src/boost/libs/date_time/xmldoc/README b/src/boost/libs/date_time/xmldoc/README
new file mode 100644
index 000000000..145fa97a7
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/README
@@ -0,0 +1,38 @@
+I couldn't get the date_time.xml to validate, however, it works anyway.
+The build process with fail with adequate error messages to fix
+any errors.
+
+/********************************/
+Do not place a dtd declaration in the doc xml files.
+Begin each file with:
+<section ...
+
+/********************************/
+Including files into sections has some quirks to it. Unless there is a
+section in the parent file, the first included file will display
+instead of link.
+
+Example.
+In date_time.xml:
+
+ <xi:include href="subsection.xml" />
+
+And in subsection/xml:
+ <section id="date_time.my_subsection"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+ <para>
+ ...
+ </para>
+ <xi:include href="another.xml" />
+
+/********************************/
+To crosslink use:
+<link linkend="date_time.section.subsection">optional text</link>
+
+If you use '<link linkend="top">top</link>' the link will automatically
+go to the top of the page it ends up in.
+
+# Copyright (c) 2002-2006 CrystalClear Software, Inc.
+# Use, modification and distribution is subject to the
+# Boost Software License, Version 1.0. (See accompanying
+# file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
diff --git a/src/boost/libs/date_time/xmldoc/acknowledgements.xml b/src/boost/libs/date_time/xmldoc/acknowledgements.xml
new file mode 100644
index 000000000..36f540164
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/acknowledgements.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.acknowledgements">
+ <title>Acknowledgements</title>
+
+ <para>
+ 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.
+ </para>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/buildinfo.xml b/src/boost/libs/date_time/xmldoc/buildinfo.xml
new file mode 100644
index 000000000..3f91a1e2f
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/buildinfo.xml
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.buildinfo">
+ <title>Build-Compiler Information</title>
+
+ <para>
+ <link linkend="overview">Overview</link> --
+ <link linkend="compile_options">Compilation Options</link> --
+ <link linkend="portability">Compiler/Portability Notes</link> --
+ <link linkend="dir_structure">Directory Structure</link> --
+ <link linkend="other_boost_libs">Required Boost Libraries</link>
+ </para>
+
+ <anchor id="overview" />
+ <bridgehead renderas="sect3">Overview</bridgehead>
+ <para>
+ 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. Note that to use the library without the library (particularly on windows) may require using the BOOST_DATE_TIME_NO_LIB flag to the compilation options.
+ </para>
+
+ <anchor id="compile_options" />
+ <bridgehead renderas="sect3">Compilation Options</bridgehead>
+ <para>
+ 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.
+ </para>
+ <para>
+ To use the alternate resolution (96 bit nanosecond) the variable <code>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.
+ </para>
+ <para>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>USE_DATE_TIME_PRE_1_33_FACET_IO</code>.</para>
+
+ <para>As a convenience, <code>date_time</code> has provided some <link linkend="additional_duration_types">additional duration types</link>. Use of these types may have unexpected results due to the snap-to-end-of-month behavior (see <link linkend="snap_to_details">Reversibility of Operations Pitfall</link> for complete details and examples). These types are enabled by default. To disable these types, simply undefine <code>BOOST_DATE_TIME_OPTIONAL_GREGORIAN_TYPES</code> in your project file.</para>
+
+ <para>Another convenience is the default constructors for <code><link linkend="date_time.gregorian.date_class">date</link></code>, and <code><link linkend="date_time.posix_time.ptime_class">ptime</link></code>. These constructors are enabled by default. To disable them, simply define <code>DATE_TIME_NO_DEFAULT_CONSTRUCTOR</code> in your project file.</para>
+
+ <anchor id="portability" />
+ <bridgehead renderas="sect3">Compiler/Portability Notes</bridgehead>
+ <para>
+ 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:
+ <itemizedlist mark="bullet">
+ <listitem>Codewarrior 9.4 Windows</listitem>
+ <listitem>GCC 3.2 - 3.4, 4.x on Linux</listitem>
+ <listitem>GCC 3.3, 4.x on Darwin</listitem>
+ <listitem>GCC 3.3 - 3.4, 4.x on Solaris</listitem>
+ <listitem>GCC 3.3, 4.x on HP-UX</listitem>
+ <listitem>QCC 3.3.5 on QNX</listitem>
+ <listitem>MSVC 7.1 Windows </listitem>
+ <listitem>Intel 8.1-9.x Linux and Windows</listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ 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
+
+ <ulink url="http://lists.boost.org/Archives/boost/2006/02/101122.php">mailing list archive</ulink> for more details.
+ </para>
+
+ <para>
+ In addition to the problem above, some versions of the VC8 library have limited
+ the range of allowed
+ values in the <code>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.
+ </para>
+
+ <para>
+ These compilers support all aspects of the library except <code>wstring/wstream</code>
+ output.
+ <itemizedlist mark="bullet">
+ <listitem>MinGW 3.2, 3.4, 3.5 *</listitem>
+ <listitem>GCC 3.2 (cygwin) *</listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ 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:
+ <itemizedlist mark="bullet">
+ <listitem>Borland 5.6</listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ Official support for some older compilers has now been dropped. This includes:
+ <itemizedlist mark="bullet">
+ <listitem>GCC 2.9x</listitem>
+ <listitem>Borland 5.1.1</listitem>
+ <listitem>MSVC 7.0 and 6 SP5 </listitem>
+ </itemizedlist>
+ </para>
+
+ <bridgehead renderas="sect5">Visual Studio &amp; STLPort</bridgehead>
+ <para>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>wchar_t</code>. The default build of STLPort does not support <code>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.
+ </para>
+ <para>To build date_time with no wide stream/string etc, execute the following command from <code>$BOOST_ROOT</code>:
+ <screen>bjam -a "-sTOOLS=vc-7_1-stlport" "-sSTLPORT_PATH=..." \
+ "-sBUILD=&lt;define>BOOST_NO_STD_WSTRING" \
+ --stagedir=... --with-date_time stage</screen>
+ (replace the ellipsis with the correct paths for the build system and adjust the <code>TOOLS</code> to the proper toolset if necessary)
+ </para>
+ <para>Rebuilding STLPort with <code>wchar_t</code> support involves placing <code>/Zc:wchar_t</code> in the STLPort makefile. Date_time should then be built with the following command from <code>$BOOST_ROOT</code>:
+ <screen>bjam -a "-sTOOLS=vc-7_1-stlport" "-sSTLPORT_PATH=..." \
+ "-sBUILD=&amp;native-wchar_t>on" \
+ --stagedir=... --with-date_time stage</screen>
+ (replace the ellipsis with the correct paths for the build system and adjust the <code>TOOLS</code> to the proper toolset if necessary)
+ </para>
+
+ <anchor id="dir_structure" />
+ <bridgehead renderas="sect3">Directory Structure</bridgehead>
+ <para>
+ The directory tree has the following structure:
+ <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/example/gregorian -- example programs for dates
+/libs/date_time/example/posix_time -- time example programs
+/libs/date_time/example/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...)</programlisting>
+ </para>
+
+ <anchor id="other_boost_libs" />
+ <bridgehead renderas="sect3">Required Boost Libraries</bridgehead>
+ <para>
+ Various parts of date-time depend on other boost libraries. These include:
+ <itemizedlist mark="bullet">
+ <listitem><ulink url="boost:/libs/tokenizer/index.html">boost.tokenizer</ulink> </listitem>
+ <listitem><ulink url="boost:/libs/integer/doc/html/boost_integer/cstdint.html">boost.integer(cstdint)</ulink> </listitem>
+ <listitem><ulink url="boost:/libs/utility/operators.htm">boost.operators</ulink> </listitem>
+ <listitem><ulink url="boost:/libs/lexical_cast/index.html">boost.lexical_cast </ulink> </listitem>
+ <listitem><ulink url="boost:/libs/smart_ptr/smart_ptr.htm">boost.smart_ptr (local time only)</ulink> </listitem>
+ <listitem><ulink url="boost:/libs/algorithm/string/index.html">boost::string_algorithms </ulink> </listitem>
+ <listitem><ulink url="boost:/libs/serialization/index.html">boost::serialize (serialization code only) </ulink> </listitem>
+ </itemizedlist>
+ so these libraries need to be installed.
+ </para>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/calculations.xml b/src/boost/libs/date_time/xmldoc/calculations.xml
new file mode 100644
index 000000000..6abe98265
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/calculations.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.calculations">
+ <title>Calculations</title>
+
+ <para>
+ <link linkend="timepoints">Timepoints</link> --
+ <link linkend="durations">Durations</link> --
+ <link linkend="intervals">Intervals (Periods)</link> --
+ <link linkend="special_value_handling">Special Value Handling</link>
+ </para>
+ <anchor id="timepoints" />
+ <bridgehead renderas="sect3">Timepoints</bridgehead>
+ <para>
+ 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:
+ <programlisting>
+ Timepoint + Duration --> Timepoint
+ Timepoint - Duration --> Timepoint
+ Timepoint - Timepoint --> Duration
+ </programlisting>
+ Unlike regular numeric types, the following operations are undefined:
+ <programlisting>
+ Duration + Timepoint --> Undefined
+ Duration - Timepoint --> Undefined
+ Timepoint + Timepoint --> Undefined
+ </programlisting>
+ </para>
+ <anchor id="durations" />
+ <bridgehead renderas="sect3">Durations</bridgehead>
+ <para>
+ 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:
+ <programlisting>
+ Duration + Duration --> Duration
+ Duration - Duration --> Duration
+
+ Duration * Integer --> Duration
+ Integer * Duration --> Duration
+ Duration / Integer --> Duration (Integer Division rules)
+ </programlisting>
+ </para>
+ <anchor id="intervals" />
+ <bridgehead renderas="sect3">Intervals (Periods)</bridgehead>
+ <para>
+ 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:
+ <programlisting>
+Timeperiod intersection Timeperiod --> Timeperiod
+ (null interval if no intersection)
+Timeperiod merge Timeperiod --> Timeperiod
+ (null interval if no intersection)
+Timeperiod shift Duration --> Timeperiod
+ (shift start and end by duration amount)
+ </programlisting>
+ In addition, periods support various queries that calculate boolean results. The first set is caluculations with other time periods:
+ <programlisting>
+ Timeperiod == Timeperiod --> bool
+ Timeperiod &lt; Timeperiod --> bool (true if lhs.last &lt;= rhs.begin)
+ Timeperiod intersects Timeperiod --> bool
+ Timeperiod contains Timeperiod --> bool
+ Timeperiod is_adjacent Timeperiod --> bool
+ </programlisting>
+ The following calculations are performed versus the Timepoint.
+ <programlisting>
+ Timeperiod contains Timepoint --> bool
+ Timeperiod is_before Timepoint --> bool
+ Timeperiod is_after Timepoint --> bool
+ </programlisting>
+ </para>
+ <anchor id="special_value_handling" />
+ <bridgehead renderas="sect3">Special Value Handling</bridgehead>
+ <para>
+ 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.
+ <programlisting>
+ Timepoint(NADT) + Duration --> Timepoint(NADT)
+ Timepoint(&#8734;) + Duration --> Timepoint(&#8734;)
+ Timepoint + Duration(&#8734;) --> Timepoint(&#8734;)
+ Timepoint - Duration(&#8734;) --> Timepoint(-&#8734;)
+ </programlisting>
+ When performing operations on both positive and negative infinities, the library will produce results consistent with the following.
+ <programlisting>
+ Timepoint(+&#8734;) + Duration(-&#8734;) --> NADT
+ Duration(+&#8734;) + Duration(-&#8734;) --> NADT
+ Duration(&#177;&#8734;) * Zero --> NADT
+
+ Duration(&#8734;) * Integer(Not Zero) --> Duration(&#8734;)
+ Duration(+&#8734;) * -Integer --> Duration(-&#8734;)
+ Duration(&#8734;) / Integer --> Duration(&#8734;)
+ </programlisting>
+ </para>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/changes.xml b/src/boost/libs/date_time/xmldoc/changes.xml
new file mode 100644
index 000000000..e03f5d438
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/changes.xml
@@ -0,0 +1,863 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2006 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.changes">
+ <title>Change History</title>
+
+ <!-- if each new change tgroup has a "Bug Fix" as the first "Type", the columns will line up nicely -->
+
+ <bridgehead renderas="sect3">Changes from Boost 1.72 to 1.73 </bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Type</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>Enhancement</entry>
+ <entry>
+ Make date_time all inline. Users no longer need to link the library for any library functions.
+ Note that an empty stub library is maintained for backward compatibility. Resolves:
+ (<ulink url="https://github.com/boostorg/date_time/issues/134">github issue #134</ulink>) and
+ (<ulink url="https://github.com/boostorg/date_time/issues/85">github issue #85</ulink>).
+
+Remove the link library to resolve linking/visibility concerns
+ </entry>
+ </row>
+
+ <row>
+ <entry>Enhancement</entry>
+ <entry>
+ Support for constexpr has been added when in c++14 mode and above. For example:
+ <code>
+ constexpr microseconds ms(1000);
+ static_assert(ms.total_microseconds() == 1000, "constexpr total_microseconds");
+ </code>
+ (<ulink url="https://github.com/boostorg/date_time/issues/123">github issue #123</ulink>).
+ </entry>
+ </row>
+
+ <row>
+ <entry>Enhancement</entry>
+ <entry>
+ C++20 ambiguous comparison operator warning with clang 10
+ (<ulink url="https://github.com/boostorg/date_time/issues/132">github issue #132</ulink>).
+ </entry>
+ </row>
+
+ <row>
+ <entry>Cleanup</entry>
+ <entry>
+ Deprecated support for legacy io and USE_DATE_TIME_PRE_1_33_FACET_IO macro
+ (<ulink url="https://github.com/boostorg/date_time/issues/61">github issue #61</ulink>).
+ </entry>
+ </row>
+
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>
+ Documentation clarifications for gettimeofday, day_number, and from_iso_extended_string.
+ <ulink url="https://github.com/boostorg/date_time/issues/127">github issue #127</ulink>
+ <ulink url="https://github.com/boostorg/date_time/issues/125">github issue #125</ulink>, and
+ <ulink url="https://github.com/boostorg/date_time/issues/116">github issue #116</ulink>
+ </entry>
+ </row>
+
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+
+ <bridgehead renderas="sect3">Changes from Boost 1.41 to 1.44 (date_time 1.08 to 1.09)</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Type</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>Bug fix</entry>
+ <entry>
+ 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
+ (<ulink url="https://svn.boost.org/trac/boost/ticket/3876">#3876</ulink>).
+ </entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <bridgehead renderas="sect3">Changes from Boost 1.40 to 1.41 (date_time 1.07 to 1.08)</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Type</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>Change</entry>
+ <entry>
+ 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 (<ulink url="https://svn.boost.org/trac/boost/ticket/1861">#1861</ulink>).
+ </entry>
+ </row>
+
+ <row>
+ <entry>Bug fix</entry>
+ <entry>
+ Gregorian dates now use 32-bit integer type internally on 64-bit platforms (<ulink url="https://svn.boost.org/trac/boost/ticket/3308">#3308</ulink>).
+ </entry>
+ </row>
+ <row>
+ <entry>Bug fix</entry>
+ <entry>
+ Adjusted UTC time zone offset boundaries in order to allow offsets up to +14 hours (<ulink url="https://svn.boost.org/trac/boost/ticket/2213">#2213</ulink>).
+ </entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <bridgehead renderas="sect3">Changes from Boost 1.38 to 1.40 (date_time 1.06 to 1.07)</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Type</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>Bug fix</entry>
+ <entry>
+ Minor bug fixes (<ulink url="https://svn.boost.org/trac/boost/ticket/2809">#2809</ulink>,
+ <ulink url="https://svn.boost.org/trac/boost/ticket/2824">#2824</ulink>,
+ <ulink url="https://svn.boost.org/trac/boost/ticket/3015">#3015</ulink>,
+ <ulink url="https://svn.boost.org/trac/boost/ticket/3105">#3105</ulink> and others).
+ </entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <bridgehead renderas="sect3">Changes from Boost 1.34 to 1.38 (date_time 1.05 to 1.06)</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Type</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>Feature</entry>
+ <entry>
+ Added support for formatting and reading time durations longer than 24 hours.
+ A new formatter <code>%O</code> is used indicate such long durations in the
+ format string. The old <code>%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>%H</code>
+ format specifier is used with longer durations, the results are not specified
+ (an assertion in debug builds is raised).
+ </entry>
+ </row>
+
+ <row>
+ <entry>Bug fix</entry>
+ <entry>
+ Added support for GCC 4.3. Several compilation issues were solved, as well as
+ compiler warnings were taken care of.
+ </entry>
+ </row>
+
+ <row>
+ <entry>Bug fix</entry>
+ <entry>
+ Added missing streaming operators for the <code>local_time_period</code> class.
+ </entry>
+ </row>
+
+ <row>
+ <entry>Bug fix</entry>
+ <entry>
+ Added several missing includes in different places. Some includes that are
+ not needed in some configurations were made conditional.
+ </entry>
+ </row>
+
+ <row>
+ <entry>Bug fix</entry>
+ <entry>
+ Solved compilation problem that was caused by not finding streaming operators
+ for <code>gregorian::date_duration</code> via ADL. The type is now made actually
+ a class rather a typedef for the <code>date_time::date_duration</code> template.
+ The similar change was done for <code>gregorian::weeks</code>.
+ </entry>
+ </row>
+
+ <row>
+ <entry>Bug fix</entry>
+ <entry>
+ Added a correctly spelled <code>date_time::hundredth</code> time resolution enum
+ value. The old one <code>date_time::hundreth</code> is considered deprecated and
+ to be removed in future releases.
+ </entry>
+ </row>
+
+ <row>
+ <entry>Bug fix</entry>
+ <entry>
+ Fixed compilation error in <code>format_date_parser.hpp</code> because of incorrect
+ stream type being used.
+ </entry>
+ </row>
+
+ <row>
+ <entry>Bug fix</entry>
+ <entry>
+ On Windows platform made inclusion of <code>windows.h</code> optional. The header is only used
+ when the <code>BOOST_USE_WINDOWS_H</code> macro is defined. Otherwise (and by default),
+ the library uses internal definitions of symbols from this header.
+ </entry>
+ </row>
+
+ <row>
+ <entry>Bug fix</entry>
+ <entry>
+ On Windows platform function <code>from_ftime</code> could return incorrect time if
+ the <code>FILETIME</code> that is being passed to the function contained dates before 1970-Jan-01.
+ </entry>
+ </row>
+
+ <row>
+ <entry>Bug fix</entry>
+ <entry>
+ Fixed a possible crash in <code>gregorian::special_value_from_string</code> if the string
+ did not represent a valid special value.
+ </entry>
+ </row>
+
+ <row>
+ <entry>Bug fix</entry>
+ <entry>
+ Removed the <code>testfrmwk.hpp</code> file from the public include directory. This file
+ was internal for the library tests and was not documented.
+ </entry>
+ </row>
+
+ <row>
+ <entry>Bug fix</entry>
+ <entry>
+ Fixed missing include in <code>filetime_functions.hpp</code>
+ (<ulink url="https://svn.boost.org/trac/boost/ticket/2688">#2688</ulink>).
+ </entry>
+ </row>
+
+ <row>
+ <entry>Bug fix</entry>
+ <entry>
+ Fixed dereferencing end string iterators in different places of code,
+ which could cause crashes on MSVC
+ (<ulink url="https://svn.boost.org/trac/boost/ticket/2698">#2698</ulink>).
+ </entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+
+
+ <bridgehead renderas="sect3">Changes from Boost 1.33 to 1.34 (date_time 1.04 to 1.05)</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Type</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>Feature</entry>
+ <entry>
+ 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.
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>
+ 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>static date_type local_dst_start_day(year_type year)</code> and
+ <code>static date_type local_dst_end_day(year_type year)</code>.
+ Implementers should see <code>date_time/local_timezone_defs.hpp</code> for
+ examples.
+ </entry>
+ </row>
+
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Fix DST traits for Austrialia (sf# 1672139) to set end of DST at 3:00 am instead of 2:00 am.
+ </entry>
+ </row>
+
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Fix a problem with potential linking error with multiple definitions due
+ to I/O code.
+ </entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>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.
+ </entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>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.
+ </entry>
+ </row>
+
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Changes for tracker issue 1178092 -- change in convert_to_lower to make
+ local a const static and speed up parsing.
+ </entry>
+ </row>
+
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Patches from Ulrich Eckhardt to fix support for EVC++ 4.
+ </entry>
+ </row>
+
+ <row>
+ <entry>Feature</entry>
+ <entry>Reduce the usage of basic_stringstream as much a possible to work around
+ a bug in the VC8 standard library. See
+ <ulink url="http://lists.boost.org/Archives/boost/2006/02/101122.php">mailing list archive</ulink>
+ for more information.
+ </entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+
+ <bridgehead renderas="sect3">Changes from Boost 1.32 to 1.33 (date_time 1.03 to 1.04)</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Type</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>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.
+ </entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>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.
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>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.
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>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.
+ </entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>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.
+ </entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>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.
+ </entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>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()).
+ </entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Previously, output streaming of <code>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').
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>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 <link linkend="date_time.local_time">Date Time Local Time</link> for complete details).
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Input and output facets have been re-written to support format-based
+ redefinition of formats (see <link linkend="date_time.date_time_io">Date Time IO</link> for complete details).
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Functions have been added to facilitate conversions between <code>tm</code> structs for <code>date</code>, <code>ptime</code>, <code>time_duration</code>, and <code>local_date_time</code>. Functions for converting <code>FILETIME</code>, and <code>time_t</code> to <code>ptime</code> are also provided. See the individual sections for details.
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>A <code>universal_time</code> function has been added to the <code>microsec_time_clock</code> (full details of this function can be found <link linkend="ptime_from_clock">here</link>).
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Functions have been added to facilitate conversions between <code>tm</code> structs for <code>date</code>, <code>ptime</code>, <code>time_duration</code>, and <code>local_date_time</code>. Functions for converting <code>FILETIME</code>, and <code>time_t</code> to <code>ptime</code> are also provided. See the individual sections for details.
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>A <code>universal_time</code> function has been added to the <code>microsec_time_clock</code> (full details of this function can be found <link linkend="ptime_from_clock">here</link>).
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Date-time now uses reentrant POSIX functions on those platforms that
+ support them when BOOST_HAS_THREADS is defined.
+ </entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>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.
+ </entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Fixed multiple warnings generated with various platforms/compilers.
+ </entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>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>ptime(date(2005,2,1), hours(-5))</code> -> "2005-Jan-31 19:00:00" &amp; <code>ptime(date(2005,2,1), hours(35))</code> -> "2005-Feb-02 11:00:00").
+ </entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Time parsing now correctly handles excessive digits for fractional seconds. Leading zeros are dropped ("000100" -> 100 frac_sec), and excessive digits are truncated at the proper place ("123456789876" -> 123456 or 123456789 depending on what precision the library was compiled with).
+ </entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Changes to the <code>boost::serialization</code> interface broke serialization compatibility for <code>date_time</code>. The user must provide a function to insure <code>date_time</code> objects are <code>const</code> before they are serialized. The function should be similar to:
+ <screen>template&lt;class archive_type, class temporal_type>
+void save_to(archive_type&amp; ar,
+ const temporal_type&amp; tt)
+{
+ ar &lt;&lt; tt;
+}</screen>
+ </entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Use of the depricated <code>boost::tokenizer</code> interface has been updated to the current interface. This fixes compiler errors on some older compilers.
+ </entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Templatized formatters in the legacy IO system to accept char type. Also removed calls to <code>boost::lexical_cast</code>.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+
+ <bridgehead renderas="sect3">Changes from Boost 1.31 to 1.32 (date_time 1.02 to 1.03)</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Type</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>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.
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Free function for creating a ptime object from a FILETIME struct. This function
+ is only available on platforms that define BOOST_HAS_FTIME.
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Microsecond time clock is now available on most windows compilers as well as
+ Unix.
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>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.
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>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.
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>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.
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>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.
+ </entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Removed incorrect usage of BOOST_NO_CWCHAR macro throughout library.
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>New names added for some date classes. Original names are still valid but may
+ some day be deprecated. Changes are:
+ <simplelist type='horiz' columns='3'>
+ <member>date_duration</member>
+ <member>is now</member>
+ <member>days</member>
+ <member>nth_kday_of_month</member>
+ <member>is now</member>
+ <member>nth_day_of_the_week_in_month</member>
+ <member>first_kday_of_month</member>
+ <member>is now</member>
+ <member>first_day_of_the_week_in_month</member>
+ <member>last_kday_of_month</member>
+ <member>is now</member>
+ <member>last_day_of_the_week_in_month</member>
+ <member>first_kday_after</member>
+ <member>is now</member>
+ <member>first_day_of_the_week_after</member>
+ <member>first_kday_before</member>
+ <member>is now</member>
+ <member>first_day_of_the_week_before</member>
+ </simplelist>
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Free functions for date generators added. Functions are: days_until_weekday, days_before_weekday, next_weekday, and previous_weekday.
+ <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);</screen>
+ Thanks to Bart Garst for this change.
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>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.
+
+ <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</screen>
+ Input streaming is not yet implemented for these types.
+ Thanks to Bart Garst for this change.
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Unifying base class for date_generators brought in to gregorian namespace. See <link linkend="date_time.examples.print_holidays">Print Holidays Example</link>.
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>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).
+ <screen>ptime p_nadt(not_a_date_time);
+ptime p_posinf(pos_infin);
+ptime p; // p == NADT
+date d; // d == NADT</screen>
+ Thanks to Bart Garst for this change.
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Output streaming now supports wide stream output on compiler / standard library combinations that support wide streams. This allows code like:
+ <screen>std::wstringstream wss;
+date d(2003,Aug,21);
+wss &lt;&lt; d;</screen>
+ Thanks to Bart Garst for this change.
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Input streaming for date and time types is now supported on both wide and narrow streams:
+ <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</screen>
+ Thanks to Bart Garst for this change.
+ </entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry> 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
+ </entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>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.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <bridgehead renderas="sect3">Changes from Boost 1.30 to 1.31 (date_time 1.01 to 1.02)</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Type</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Build configuration updated so dll, statically, and dynamically linkable library files are now produced with MSVC compilers. See <link linkend="date_time.buildinfo">Build/Compiler Information</link> for more details.</entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Time_duration from_string is now correctly constructed from a negative value. (ie "-0:39:00.000") Code provided by Bart Garst.</entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Fixed many MSVC compiler warnings when compiled with warning level 4.</entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Added prefix decrement operator (--) for date and time iterators. See <link linkend="date_time.posix_time.time_iterators">Time Iterators</link> and <link linkend="date_time.gregorian.date_iterators">Date Iterators</link> for more details. Code provided by Bart Garst.</entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Special_values functionality added for date_duration, time_duration and time classes. Code provided by Bart Garst.</entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>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 <link linkend="date_time.calculations">Calculations</link> has been improved.</entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Added typedefs to boost::gregorian gregorian_types.hpp various date_generator function classes.</entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Added from_time_t function to convert time_t to a ptime.</entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Added a span function for combining periods. See <link linkend="date_time.gregorian.date_period">date period</link> and <link linkend="date_time.posix_time.time_period">time period</link> docs.</entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>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
+ <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</screen>
+
+ </entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Added output streaming operators for the <link linkend="date_time.gregorian.date_algorithms">date generator</link> classes - partial_date, first_kday_after, first_kday_before, etc. Thanks to Bart Garst for this work.</entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Added unary- operators for durations for reversing the sign of a time duration. For example:
+ <screen>time_duration td(5,0,0); //5 hours
+td = -td; //-5 hours</screen>
+ Thanks to Bart Garst for this work.</entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>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 <link linkend="date_time.gregorian.date_class">Date Class</link> for more details.</entry>
+ </row>
+ <row>
+ <entry>Bug-Fix</entry><!-- leave '-' so table cell doesn't wrap -->
+ <entry>Various documentation fixes. Thanks to Bart Garst for updates.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <bridgehead renderas="sect3">Changes from Boost 1.29 to 1.30 (date_time 1.00 to 1.01)</bridgehead>
+ <para>
+ Notice: The interface to the partial_date class (see <link linkend="date_time.gregorian.date_algorithms">date_algorithms</link>) 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);
+ </para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Type</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Added new experimental feature for Daylight Savings Time calculations. This allows traits based specification of dst rules.</entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Added new interfaces to calculate julian day and modified julian day to the gregorian date class. See <link linkend="date_time.gregorian.date_class">boost::gregorian::date</link>.</entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Add new interface to calculate iso 8601 week number for a date. See <link linkend="date_time.gregorian.date_class">boost::gregorian::date</link>.</entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry>Add an iso 8601 time date-time format (eg: YYYYMMDDTHHHMMSS) parsing function. See <link linkend="date_time.posix_time.ptime_class">Class ptime</link> for more information.</entry>
+ </row>
+ <row>
+ <entry>Feature</entry>
+ <entry> Added a length function to the period template so that both date_periods and time_periods will now support this function.</entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Split Jamfiles so that libs/date_time/build/Jamfile only builds library and /libs/date_time/libs/test/Jamfile which runs tests.</entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Fixed many minor documentation issues.</entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Removed the DATE_TIME_INLINE macro which was causing link errors. This macro is no longer needed in projects using the library.</entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Added missing typedef for year_iterator to gregorian_types.hpp</entry>
+ </row>
+ <row>
+ <entry>Bug Fix</entry>
+ <entry>Fixed problem with gregorian ostream operators that prevented the use of wide streams.</entry>
+ </row>
+ <row>
+ <entry>Bug-Fix</entry><!-- leave '-' so table cell doesn't wrap -->
+ <entry>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.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/conceptual.xml b/src/boost/libs/date_time/xmldoc/conceptual.xml
new file mode 100644
index 000000000..d0130a352
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/conceptual.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.conceptual" xmlns:xi="http://www.w3.org/2001/XInclude">
+ <title>Conceptual</title>
+
+ <xi:include href="motivation.xml"/>
+ <xi:include href="domain_concepts.xml"/>
+ <xi:include href="design_concepts.xml"/>
+
+
+</section>
+
diff --git a/src/boost/libs/date_time/xmldoc/custom_time_zone.xml b/src/boost/libs/date_time/xmldoc/custom_time_zone.xml
new file mode 100644
index 000000000..c0d919492
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/custom_time_zone.xml
@@ -0,0 +1,376 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.local_time.custom_time_zone">
+ <title>Custom Time Zone</title>
+
+ <link linkend="custom_time_zone_intro">Introduction</link> --
+ <link linkend="custom_time_zone_header">Header</link> --
+ <link linkend="custom_time_zone_constr">Construction</link> --
+ <link linkend="custom_time_zone_accessors">Accessors</link> --
+ <link linkend="custom_time_zone_dependents">Dependent Types</link>
+
+ <anchor id="custom_time_zone_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>
+ 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 <link linkend="date_time.local_time.dst_calc_rules">dst_calc_rules</link>. 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.
+ </para>
+ <para>
+ As a convenience, a typedef for shared_ptr&lt;dst_calc_rules&gt; is provided.
+ <programlisting>typedef boost::shared_ptr&lt;dst_calc_rules&gt; local_time::dst_calc_rule_ptr;</programlisting>
+ </para>
+ <anchor id="date_time.local_time.custom_time_zone_ptr" />
+ <para>
+ 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:
+ <programlisting>typedef boost::shared_ptr&lt;time_zone&gt; local_time::time_zone_ptr;</programlisting>
+ </para>
+
+ <anchor id="custom_time_zone_header" />
+ <bridgehead renderas="sect3">Header</bridgehead>
+ <para>
+ The inclusion of a single header will bring in all boost::local_time types, functions, and IO operators.
+ <programlisting>#include "boost/date_time/local_time/local_time.hpp"</programlisting>
+ </para>
+
+ <anchor id="custom_time_zone_constr" />
+ <bridgehead renderas="sect3">Construction</bridgehead>
+ <para>
+ Construction of a custom_time_zone is dependent on four objects: a
+ <link linkend="date_time.posix_time.time_duration">time_duration</link>, a <link linkend="time_zone_names">time_zone_names</link>, a <link linkend="dst_adjustment_offsets">dst_adjustment_offsets</link>, and a shared_ptr to a <link linkend="date_time.local_time.dst_calc_rules">dst_calc_rule</link>.
+ </para>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Syntax</entry>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top"><screen>custom_time_zone(...)
+ Parameters:
+ <link linkend="time_zone_names">names</link>,
+ <link linkend="date_time.posix_time.time_duration">gmt_offset</link>,
+ <link linkend="dst_adjustment_offsets">dst_offsets</link>,
+ <link linkend="date_time.local_time.dst_calc_rules">dst_rules</link> </screen></entry>
+ <entry>See <link linkend="date_time.examples.simple_time_zone">simple_time_zone</link> example for time_zone usage</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <anchor id="custom_time_zone_accessors" />
+ <bridgehead renderas="sect3">Accessors</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string dst_zone_abbrev()</screen></entry>
+ <entry>Returns the daylight savings abbreviation for the represented time zone.</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_zone_sh_ptr->dst_zone_abbrev();
+// "EDT"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string std_zone_abbrev()</screen></entry>
+ <entry>Returns the standard abbreviation for the represented time zone.</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_zone_sh_ptr->std_zone_abbrev();
+// "EST"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string dst_zone_name()</screen></entry>
+ <entry>Returns the daylight savings name for the represented time zone.</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_zone_sh_ptr->dst_zone_name();
+// "Eastern Daylight Time"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string std_zone_name()</screen></entry>
+ <entry>Returns the standard name for the represented time zone.</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_zone_sh_ptr->std_zone_name();
+// "Eastern Standard Time"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool has_dst()</screen></entry>
+ <entry>Returns true when custom_time_zone's shared_ptr to dst_calc_rules is not NULL.</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_zone_sh_ptr->has_dst();
+// true
+phx_zone_sh_ptr->has_dst();
+// false</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>dst_local_start_time(...)
+ Return Type:
+ ptime
+ Parameter:
+ greg_year</screen></entry>
+ <entry>The date and time daylight savings time begins in given year. Returns not_a_date_time if this zone has no daylight savings.</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_ptr->dst_local_start_time(2004);
+// 2004-Apr-04 02:00</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>dst_local_end_time(...)
+ Return Type:
+ ptime
+ Parameter:
+ greg_year</screen></entry>
+ <entry>The date and time daylight savings time ends in given year. Returns not_a_date_time if this zone has no daylight savings.</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_ptr->dst_local_end_time(2004);
+// 2004-Oct-31 02:00</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_duration base_utc_offset()</screen></entry>
+ <entry>The amount of time offset from UTC (typically in hours).</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_ptr->base_utc_offset();
+// -05:00</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_duration dst_offset()</screen></entry>
+ <entry>The amount of time shifted during daylight savings.</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_zone_sh_ptr->dst_offset();
+// 01:00</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string to_posix_string()</screen></entry>
+ <entry>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 <link linkend="date_time.local_time.posix_time_zone">posix_time_zone</link>.</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_ptr->to_posix_string();
+// "EST-05EDT+01,M4.1.0/02:00,M10.5.0/02:00"
+phx_ptr->to_posix_string();
+// "MST-07"
+ </screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <anchor id="custom_time_zone_dependents" />
+ <bridgehead renderas="sect3">Dependent Types</bridgehead>
+ <link linkend="time_zone_names">Time Zone Names</link> --
+ <link linkend="dst_adjustment_offsets">Dst Adjustment Offsets</link> --
+ <link linkend="date_time.local_time.dst_calc_rules">Daylight Savings Calc Rules</link>
+ <anchor id="time_zone_names" />
+ <bridgehead renderas="sect3">Time Zone Names</bridgehead>
+ <para>
+ 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;.
+ </para>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>time_zone_names(...)
+ Parameters:
+ string std_name
+ string std_abbrev
+ string dst_name
+ string dst_abbrev</screen></entry>
+ <entry>The only constructor, all four strings must be provided.</entry>
+ </row>
+ <row>
+ <entry><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);</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string std_zone_name()</screen></entry>
+ <entry>Returns the standard zone name</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_names.std_zone_name();
+// "Eastern Standard Time"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string std_zone_abbrev()</screen></entry>
+ <entry>Returns the standard zone abbreviation</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_names.std_zone_abbrev();
+// "EST"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string dst_zone_name()</screen></entry>
+ <entry>Returns the daylight savings zone name</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_names.std_zone_name();
+// "Eastern Daylight Time"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string dst_zone_abbrev()</screen></entry>
+ <entry>Returns the daylight savings zone abbreviation</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_names.std_zone_abbrev();
+// "EDT"</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <anchor id="dst_adjustment_offsets" />
+ <bridgehead renderas="sect3">Dst Adjustment Offsets</bridgehead>
+ <para>
+ The dst_adjustment_offsets type is a collection of three <link linkend="date_time.posix_time.time_duration">time_duration</link> objects.
+ </para>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>dst_adjustment_offsets(...)
+ Parameters:
+ time_duration dst_adjust
+ time_duration start_offset
+ time_duration end_offset</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry><screen>
+dst_adjustment_offsets(hours(1),
+ hours(2),
+ hours(2));</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <anchor id="date_time.local_time.dst_calc_rules" />
+ <bridgehead renderas="sect3">Daylight Savings Calc Rules</bridgehead>
+ <para>
+ Daylight savings calc rules, named dst_calc_rules, are a series of objects that group appropriate <link linkend="date_time.gregorian.date_algorithms">date_generators</link> together to form rule sets. The individual rules objects are used via dst_calc_rule_ptr.
+ </para>
+ <para>
+ For a complete example of all five dst_calc_rule types, see: <link linkend="date_time.examples.calc_rules">calc_rules example</link>.
+ </para>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top"><screen>partial_date_dst_rule(...)
+ Parameters:
+ start_rule
+ end_rule</screen></entry>
+ <entry>Both the start and end rules are of type gregorian::partial_date.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>first_last_dst_rule(...)
+ Parameters:
+ start_rule
+ end_rule</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>last_last_dst_rule(...)
+ Parameters:
+ start_rule
+ end_rule</screen></entry>
+ <entry>Both the start and end rules are of type gregorian::last_day_of_the_week_in_month.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>nth_last_dst_rule(...)
+ Parameters:
+ start_rule
+ end_rule</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>nth_kday_dst_rule(...)
+ Parameters:
+ start_rule
+ end_rule)
+(see note* below)</screen>
+ </entry>
+ <entry>Both rules are of type gregorian::nth_day_of_the_week_in_month.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ <para>
+ * 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.
+ </para>
+ </para>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/date_algorithms.xml b/src/boost/libs/date_time/xmldoc/date_algorithms.xml
new file mode 100644
index 000000000..a30f1374b
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/date_algorithms.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.gregorian.date_algorithms">
+ <title>Date Generators/Algorithms</title>
+ <bridgehead renderas="sect2">Date Generators/Algorithms</bridgehead>
+ <link linkend="algo_intro">Introduction</link> --
+ <link linkend="algo_header">Header</link> --
+ <link linkend="algo_overview">Class Overview</link> --
+ <link linkend="algo_func_overview">Function Overview</link>
+
+ <anchor id="algo_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>
+ 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.
+ <emphasis>Note</emphasis>: 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
+ </para>
+ <para>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.
+ </para>
+ <para>All date generator classes and functions are in the boost::gregorian namespace.
+ </para>
+ <para>
+ The <link linkend="date_time.examples.print_holidays">print holidays</link> example shows a detailed usage example.
+ </para>
+
+ <anchor id="algo_header" />
+ <bridgehead renderas="sect3">Header</bridgehead>
+ <para><programlisting>#include "boost/date_time/gregorian/gregorian.hpp"</programlisting>
+ </para>
+
+ <anchor id="algo_overview" />
+ <bridgehead renderas="sect3">Overview</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Class and get_date Parameter</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>year_based_generator
+date get_date(greg_year year)</screen></entry>
+ <entry>A unifying (abstract) date_generator base type for: <code>partial_date</code>, <code>nth_day_of_the_week_in_month</code>, <code>first_day_of_the_week_in_month</code>, and <code>last_day_of_the_week_in_month</code>.</entry>
+ </row>
+ <row>
+ <entry>The <link linkend="date_time.examples.print_holidays">print holidays</link> example shows a detailed usage example.</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>last_day_of_the_week_in_month(greg_weekday,
+ greg_month)
+date get_date(greg_year year)</screen></entry>
+ <entry>Calculate something like last Monday of January</entry>
+ </row>
+ <row>
+ <entry><screen>last_day_of_the_week_in_month lwdm(Monday,Jan);
+date d = lwdm.get_date(2002);
+//2002-Jan-28</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>first_day_of_the_week_in_month(greg_weekday,
+ greg_month)
+date get_date(greg_year year)</screen></entry>
+ <entry>Calculate something like first Monday of January</entry>
+ </row>
+ <row>
+ <entry><screen>first_day_of_the_week_in_month fdm(Monday,Jan);
+date d = fdm.get_date(2002);
+//2002-Jan-07</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>nth_day_of_the_week_in_month(week_num,
+ greg_weekday,
+ greg_month)
+date get_date(greg_year year)</screen></entry>
+ <entry><code>week_num</code> is a public enum member of <code>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)</entry>
+ </row>
+ <row>
+ <entry><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</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>partial_date(greg_day, greg_month)
+date get_date(greg_year year)</screen></entry>
+ <entry>Generates a date by applying the year to the given month and day.</entry>
+ </row>
+ <row>
+ <entry><screen>partial_date pd(1,Jan);
+date d = pd.get_date(2002);
+//2002-Jan-01</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>first_day_of_the_week_after(greg_weekday)
+date get_date(date d)</screen></entry>
+ <entry>Calculate something like First Sunday after Jan 1,2002</entry>
+ </row>
+ <row>
+ <entry><screen>first_day_of_the_week_after fdaf(Monday);
+date d = fdaf.get_date(date(2002,Jan,1));
+//2002-Jan-07</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>first_day_of_the_week_before(greg_weekday)
+date get_date(date d)</screen></entry>
+ <entry>Calculate something like First Monday before Feb 1,2002</entry>
+ </row>
+ <row>
+ <entry><screen>first_day_of_the_week_before fdbf(Monday);
+date d = fdbf.get_date(date(2002,Feb,1));
+//2002-Jan-28</screen>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+
+ <anchor id="algo_func_overview" />
+ <bridgehead renderas="sect3">Function Overview</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Function Prototype</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>days days_until_weekday date, greg_weekday)</screen></entry>
+ <entry> Calculates the number of days from given date until given weekday.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2004,Jun,1); // Tuesday
+greg_weekday gw(Friday);
+days_until_weekday(d, gw); // 3 days</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>days days_before_weekday(date, greg_weekday)</screen></entry>
+ <entry> Calculates the number of day from given date to previous given weekday.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2004,Jun,1); // Tuesday
+greg_weekday gw(Friday);
+days_before_weekday(d, gw); // 4 days</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date next_weekday(date, greg_weekday)</screen></entry>
+ <entry> Generates a date object representing the date of the following weekday from the given date. Can return the given date.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2004,Jun,1); // Tuesday
+greg_weekday gw1(Friday);
+greg_weekday gw2(Tuesday);
+next_weekday(d, gw1); // 2004-Jun-4
+next_weekday(d, gw2); // 2004-Jun-1
+ </screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date previous_weekday(date, greg_weekday)</screen></entry>
+ <entry> Generates a date object representing the date of the previous weekday from the given date. Can return the given date. </entry>
+ </row>
+ <row>
+ <entry><screen>date d(2004,Jun,1); // Tuesday
+greg_weekday gw1(Friday);
+greg_weekday gw2(Tuesday);
+previous_weekday(d, gw1); // 2004-May-28
+previous_weekday(d, gw2); // 2004-Jun-1
+ </screen>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/date_class.xml b/src/boost/libs/date_time/xmldoc/date_class.xml
new file mode 100644
index 000000000..3a1dda74f
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/date_class.xml
@@ -0,0 +1,524 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2007 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.gregorian.date_class">
+ <title>Date</title>
+
+ <link linkend="date_intro">Introduction</link> --
+ <link linkend="date_header">Header</link> --
+ <link linkend="date_construction">Construction</link> --
+ <link linkend="date_construct_from_string">Construct from String</link> --
+ <link linkend="date_construct_from_clock">Construct from Clock</link> --
+ <link linkend="date_accessors">Accessors</link> --
+ <link linkend="date_convert_to_string">Convert to String</link> --
+ <link linkend="date_operators">Operators</link> --
+ <link linkend="date_tm_funcs">Struct tm Functions</link>
+
+ <anchor id="date_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>
+ 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
+ <link linkend="date_construct_from_clock">current date from the clock</link>,
+ using <link linkend="date_time.gregorian.date_iterators">date iterators</link>, and
+ <link linkend="date_time.gregorian.date_algorithms">date algorithms or generators</link>.
+ </para>
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ 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.
+ </para>
+
+ <anchor id="date_header" />
+ <bridgehead renderas="sect3">Header</bridgehead>
+ <para>
+ <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</programlisting>
+ </para>
+
+ <anchor id="date_construction" />
+ <bridgehead renderas="sect3">Construction</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>date(greg_year, greg_month, greg_day)</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2002,Jan,10);</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date(date d)</screen></entry>
+ <entry>Copy constructor</entry>
+ </row>
+ <row>
+ <entry><screen>date d1(d);</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date(special_values sv)</screen></entry>
+ <entry>Constructor for infinities, not-a-date-time, max_date_time, and min_date_time</entry>
+ </row>
+ <row>
+ <entry><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);</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date()</screen></entry>
+ <entry>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)</entry>
+ </row>
+ <row>
+ <entry><screen>date d; // d =&gt; not_a_date_time</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <anchor id="date_construct_from_string" />
+ <bridgehead renderas="sect3">Construct from String</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>date from_string(std::string)</screen></entry>
+ <entry>From delimited date string where with order year-month-day eg: 2002-1-25</entry>
+ </row>
+ <row>
+ <entry><screen>std::string ds("2002/1/25");
+date d(from_string(ds));</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date from_undelimited_string(std::string)</screen></entry>
+ <entry>From iso type date string where with order year-month-day eg: 20020125</entry>
+ </row>
+ <row>
+ <entry><screen>std::string ds("20020125");
+date d(from_undelimited_string(ds));</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <anchor id="date_construct_from_clock" />
+ <bridgehead renderas="sect3">Construct from Clock</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>day_clock::local_day()</screen></entry>
+ <entry>Get the local day based on the time zone settings of the computer.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(day_clock::local_day());</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>day_clock::universal_day()</screen></entry>
+ <entry>Get the UTC day.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(day_clock::universal_day());</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <anchor id="date_accessors" />
+ <bridgehead renderas="sect3">Accessors</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>greg_year year() const</screen></entry>
+ <entry>Get the year part of the date.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2002,Jan,10);
+d.year(); // --> 2002</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>greg_month month() const</screen></entry>
+ <entry>Get the month part of the date.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2002,Jan,10);
+d.month(); // --> 1</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>greg_day day() const</screen></entry>
+ <entry> Get the day part of the date.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2002,Jan,10);
+d.day(); // --> 10</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>greg_ymd year_month_day() const</screen></entry>
+ <entry>Return a year_month_day struct. More efficient when all 3 parts of the date are needed.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2002,Jan,10);
+date::ymd_type ymd = d.year_month_day();
+// ymd.year --> 2002,
+// ymd.month --> 1,
+// ymd.day --> 10</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>greg_day_of_week day_of_week() const</screen></entry>
+ <entry>Get the day of the week (Sunday, Monday, etc.)</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2002,Jan,10);
+d.day_of_week(); // --> Thursday</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>greg_day_of_year day_of_year() const</screen></entry>
+ <entry>Get the day of the year. Number from 1 to 366 </entry>
+ </row>
+ <row>
+ <entry><screen>date d(2000,Jan,10);
+d.day_of_year(); // --> 10</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date end_of_month() const</screen></entry>
+ <entry>Returns a <code>date</code> object set to the last day of the calling objects current month.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2000,Jan,10);
+d.end_of_month(); // --> 2000-Jan-31</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_infinity() const</screen></entry>
+ <entry>Returns true if date is either positive or negative infinity</entry>
+ </row>
+ <row>
+ <entry><screen>date d(pos_infin);
+d.is_infinity(); // --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_neg_infinity() const</screen></entry>
+ <entry>Returns true if date is negative infinity</entry>
+ </row>
+ <row>
+ <entry><screen>date d(neg_infin);
+d.is_neg_infinity(); // --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_pos_infinity() const</screen></entry>
+ <entry>Returns true if date is positive infinity</entry>
+ </row>
+ <row>
+ <entry><screen>date d(pos_infin);
+d.is_pos_infinity(); // --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_not_a_date() const</screen></entry>
+ <entry>Returns true if value is not a date</entry>
+ </row>
+ <row>
+ <entry><screen>date d(not_a_date_time);
+d.is_not_a_date(); // --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_special() const</screen></entry>
+ <entry>Returns true if date is any <code>special_value</code></entry>
+ </row>
+ <row>
+ <entry><screen>date d(pos_infin);
+date d2(not_a_date_time);
+date d3(2005,Mar,1);
+d.is_special(); // --> true
+d2.is_special(); // --> true
+d3.is_special(); // --> false</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>special_value as_special() const</screen></entry>
+ <entry>Returns represented <code>special_value</code> or <code>not_special</code> if the represented date is a normal date.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>long modjulian_day() const</screen></entry>
+ <entry>Returns the modified julian day for the date.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>long julian_day() const</screen></entry>
+ <entry>Returns the julian day for the date.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>int week_number() const</screen></entry>
+ <entry>Returns the ISO 8601 week number for the date.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+ <row>
+ <entry valign="top" morerows="1"><screen>date end_of_month() const</screen></entry>
+ <entry>Returns the last day of the month for the date.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2000,Feb,1);
+//gets Feb 29 -- 2000 was leap year
+date eom = d.end_of_month();</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <anchor id="date_convert_to_string" />
+ <bridgehead renderas="sect3">Convert to String</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string to_simple_string(date d)</screen></entry>
+ <entry>To <code>YYYY-mmm-DD</code> string where <code>mmm</code> is a 3 char month name.</entry>
+ </row>
+ <row>
+ <entry><screen>"2002-Jan-01"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string to_iso_string(date d)</screen></entry>
+ <entry>To <code>YYYYMMDD</code> where all components are integers.</entry>
+ </row>
+ <row>
+ <entry><screen>"20020131"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string to_iso_extended_string(date d)</screen></entry>
+ <entry> To <code>YYYY-MM-DD</code> where all components are integers.</entry>
+ </row>
+ <row>
+ <entry><screen>"2002-01-31"</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <anchor id="date_operators" />
+ <bridgehead renderas="sect3">Operators</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&lt;&lt;</screen></entry>
+ <entry>Stream output operator</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2002,Jan,1);
+std::cout &lt;&lt; d &lt;&lt; std::endl;</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&gt;&gt;</screen></entry>
+ <entry>Stream input operator. <emphasis role="strong">Note:</emphasis> As of version 1.33, streaming operations have been greatly improved. See <link linkend="date_time.date_time_io">Date Time IO System</link> for details on exceptions and error conditions.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(not_a_date_time);
+stringstream ss("2002-Jan-01");
+ss &gt;&gt; d;</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator==, operator!=,
+operator>, operator&lt;,
+operator>=, operator&lt;=</screen></entry>
+ <entry>A full complement of comparison operators</entry>
+ </row>
+ <row>
+ <entry><screen>d1 == d2, etc</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date operator+(date_duration) const</screen></entry>
+ <entry>Return a date adding a day offset</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2002,Jan,1);
+date_duration dd(1);
+date d2 = d + dd;</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date operator-(date_duration) const</screen></entry>
+ <entry>Return a date by substracting a day offset</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2002,Jan,1);
+date_duration dd(1);
+date d2 = d - dd;</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date_duration operator-(date) const</screen></entry>
+ <entry>Return a date_duration by subtracting two dates</entry>
+ </row>
+ <row>
+ <entry><screen>date d1(2002,Jan,1);
+date d2(2002,Jan,2);
+date_duration dd = d2-d1;</screen>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <anchor id="date_tm_funcs" />
+ <bridgehead renderas="sect3">Struct tm Functions</bridgehead>
+ <para>Functions for converting a <code>date</code> object to, and from, a <code>tm</code> struct are provided.</para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>tm to_tm(date)</screen></entry>
+ <entry>A function for converting a <code>date</code> object to a <code>tm</code> struct. The fields: <code>tm_hour</code>, <code>tm_min</code>, and <code>tm_sec</code> are set to zero. The <code>tm_isdst</code> field is set to -1.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2005,Jan,1);
+tm d_tm = to_tm(d);
+/* tm_year => 105
+ tm_mon => 0
+ tm_mday => 1
+ tm_wday => 6 (Saturday)
+ tm_yday => 0
+ tm_hour => 0
+ tm_min => 0
+ tm_sec => 0
+ tm_isdst => -1 */</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date date_from_tm(tm datetm)</screen></entry>
+ <entry>A function for converting a <code>tm</code> struct to a <code>date</code> object. The fields: <code>tm_wday </code>, <code>tm_yday </code>, <code>tm_hour</code>, <code>tm_min</code>, <code>tm_sec</code>, and <code>tm_isdst</code> are ignored.</entry>
+ </row>
+ <row>
+ <entry><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 => 2005-Jan-01</screen>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/date_duration.xml b/src/boost/libs/date_time/xmldoc/date_duration.xml
new file mode 100644
index 000000000..12d22ebca
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/date_duration.xml
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section xmlns:xi="http://www.w3.org/2001/XInclude" id="date_time.gregorian.date_duration">
+ <title>Date Duration (aka Days)</title>
+
+ <link linkend="duration_intro">Introduction</link> --
+ <link linkend="duration_header">Header</link> --
+ <link linkend="duration_construction">Construction</link> --
+ <link linkend="duration_accessors">Accessors</link> --
+ <link linkend="duration_operators">Operators</link> --
+ <link linkend="additional_duration_types">Additional Duration Types</link>
+
+ <anchor id="duration_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>
+ The class boost::gregorian::date_duration is a simple day count used for arithmetic with <link linkend="date_time.gregorian.date_class">gregorian::date</link>. A duration can be either positive or negative.
+ </para>
+ <para>
+ 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.
+ </para>
+
+ <anchor id="duration_header" />
+ <bridgehead renderas="sect3">Header</bridgehead>
+ <para>
+ <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</programlisting>
+ </para>
+
+ <anchor id="duration_construction" />
+ <bridgehead renderas="sect3">Construction</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>date_duration(long)</screen></entry>
+ <entry>Create a duration count.</entry>
+ </row>
+ <row>
+ <entry><screen>date_duration dd(3); //3 days</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>days(special_values sv)</screen></entry>
+ <entry>Constructor for infinities, not-a-date-time, max_date_time, and min_date_time</entry>
+ </row>
+ <row>
+ <entry><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);</screen></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <anchor id="duration_accessors" />
+ <bridgehead renderas="sect3">Accessors</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>long days() const</screen></entry>
+ <entry>Get the day count.</entry>
+ </row>
+ <row>
+ <entry><screen>date_duration dd(3); dd.days() --> 3</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_negative() const</screen></entry>
+ <entry>True if number of days is less than zero.</entry>
+ </row>
+ <row>
+ <entry><screen>date_duration dd(-1); dd.is_negative() --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>static date_duration unit()</screen></entry>
+ <entry>Return smallest possible unit of duration type.</entry>
+ </row>
+ <row>
+ <entry><screen>date_duration::unit() --> date_duration(1)</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_special() const</screen></entry>
+ <entry>Returns true if days is any <code>special_value</code></entry>
+ </row>
+ <row>
+ <entry><screen>days dd(pos_infin);
+days dd2(not_a_date_time);
+days dd3(25);
+dd.is_special(); // --> true
+dd2.is_special(); // --> true
+dd3.is_special(); // --> false</screen></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <anchor id="duration_operators" />
+ <bridgehead renderas="sect3">Operators</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&lt;&lt;, operator&gt;&gt;</screen></entry>
+ <entry>Streaming operators. <emphasis role="strong">Note:</emphasis> As of version 1.33, streaming operations have been greatly improved. See <link linkend="date_time.date_time_io">Date Time IO System</link> for more details (including exceptions and error conditions).</entry>
+ </row>
+ <row>
+ <entry><screen>date d(not_a_date_time);
+stringstream ss("2002-Jan-01");
+ss &gt;&gt; d;
+std::cout &lt;&lt; d; // "2002-Jan-01"
+</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator==, operator!=,
+operator>, operator&lt;,
+operator>=, operator&lt;=</screen>
+ </entry>
+ <entry>A full complement of comparison operators</entry>
+ </row>
+ <row>
+ <entry><screen>dd1 == dd2, etc</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date_duration operator+(date_duration) const</screen></entry>
+ <entry>Add date durations.</entry>
+ </row>
+ <row>
+ <entry><screen>date_duration dd1(3);
+date_duration dd2(5);
+date_duration dd3 = dd1 + dd2;</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date_duration operator-(date_duration) const</screen></entry>
+ <entry>Subtract durations.</entry>
+ </row>
+ <row>
+ <entry><screen>date_duration dd1(3);
+date_duration dd2(5);
+date_duration dd3 = dd1 - dd2;</screen>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <anchor id="additional_duration_types" />
+ <bridgehead renderas="sect3">Additional Duration Types</bridgehead>
+ <para>These additional types are logical representations of spans of days.</para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>months(int num_of_months)</screen></entry>
+ <entry>A logical month representation. Depending on the usage, this <code>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. <emphasis role="strong">WARNING: this behavior may lead to unexpected results.</emphasis> See: <link linkend="snap_to_details">Reversibility of Operations Pitfall</link> for complete details and alternatives.</entry>
+ </row>
+ <row>
+ <entry><screen>months single(1);
+date leap_year(2004,Jan,31);
+date norm_year(2005,Jan,31);
+leap_year + single; // => 2004-Feb-29
+norm_year + single; // => 2005-Feb-28
+date(2005,Jan,1) + single; // => 2005-Feb-01
+date(2005,Feb,1) + single; // => 2005-Mar-01
+date(2005,Feb,28) + single; // => 2005-Mar-31</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>years(int num_of_years)</screen></entry>
+ <entry>A logical representation of a year. The <code>years</code> object has the same behavior as the <code>months</code> objects with regards to the end-of-the-month.</entry>
+ </row>
+ <row>
+ <entry><screen>years single(1);
+date(2003,Feb,28) + single;
+// results in => 2004-Feb-29
+date(2004,Feb,29) + single;
+// results in => 2005-Feb-28</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>weeks(int num_of_weeks)</screen></entry>
+ <entry>A duration type representing a number of <code>n * 7</code> days.</entry>
+ </row>
+ <row>
+ <entry><screen>weeks single(1);
+date(2005,Jan,1) + single; // => 2005-Jan-08</screen></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <xi:include href="snap_to_details.xml"/>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/date_facet.xml b/src/boost/libs/date_time/xmldoc/date_facet.xml
new file mode 100644
index 000000000..9721e3800
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/date_facet.xml
@@ -0,0 +1,319 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.date_facet">
+ <title>Date Facet</title>
+
+ <link linkend="date_facet_intro">Introduction</link> -
+ <link linkend="date_facet_constr">Construction</link> -
+ <link linkend="date_facet_accessors">Accessors</link>
+
+ <anchor id="date_facet_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>The <code>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>gregorian</code> namespace as <code>date_facet</code> and <code>wdate_facet</code>.
+ </para>
+
+ <anchor id="date_facet_constr" />
+ <bridgehead renderas="sect3">Construction</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top"><screen>date_facet()</screen></entry>
+ <entry>Default constructor</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>date_facet(...)
+ Parameters:
+ char_type* format
+ input_collection_type</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>date_facet(...)
+ Parameters:
+ char_type* format
+ period_formatter_type
+ special_values_formatter_type
+ date_gen_formatter_type</screen></entry>
+ <entry>Format given will be used for date output. The remaining parameters are formatter objects. Further details on these objects can be found <link linkend="date_time.io_objects">here</link>. This constructor also provides default arguments for all parameters except the format. Therefore, <code>date_facet("%m %d %Y")</code> will work.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <anchor id="date_facet_accessors" />
+ <bridgehead renderas="sect3">Accessors</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>void format(char_type*)</screen></entry>
+ <entry>Set the format for dates.</entry>
+ </row>
+ <row>
+ <entry><screen>date_facet* f = new date_facet();
+f->format("%m %d %Y");</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void set_iso_format()</screen></entry>
+ <entry>Sets the date format to ISO</entry>
+ </row>
+ <row>
+ <entry><screen>f->set_iso_format();
+// "%Y%m%d"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void set_iso_extended_format()</screen></entry>
+ <entry>Sets the date format to ISO Extended</entry>
+ </row>
+ <row>
+ <entry><screen>f->set_iso_extended_format();
+// "%Y-%m-%d"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void month_format(char_type*)</screen></entry>
+ <entry>Set the format for months when they are 'put' individually.</entry>
+ </row>
+ <row>
+ <entry><screen>f->month_format("%B");
+ss &lt;&lt; greg_month(12); // "December"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void weekday_format(char_type*)</screen></entry>
+ <entry>Set the format for weekdays when they are 'put' individually.</entry>
+ </row>
+ <row>
+ <entry><screen>f->weekday_format("%a");
+ss &lt;&lt; greg_weekday(2); // "Tue"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void period_formatter(...)
+ Parameter:
+ period_formatter_type</screen></entry>
+ <entry>Replaces the period formatter object with a user created one.</entry>
+ </row>
+ <row>
+ <entry>see the <link linkend="date_time.io_tutorial">tutorial</link> for a complete example.</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void special_values_formatter(...)
+ Parameter:
+ special_values_formatter_type</screen></entry>
+ <entry>Replaces the special_values formatter object with a user created one.</entry>
+ </row>
+ <row>
+ <entry>see the <link linkend="date_time.io_tutorial">tutorial</link> for a complete example.</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void date_gen_phrase_strings(...)
+ Parameters:
+ input_collection_type
+ date_gen_formatter_type::
+ phrase_elements</screen></entry>
+ <entry>Sets new date generator phrase strings in date_gen_formatter. The input collection is a vector of strings (for details on these strings see <link linkend="io_objects.date_generators">date generator formatter/parser documentation</link>). 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.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void short_weekday_names(...)
+ Parameter:
+ input_collection_type</screen></entry>
+ <entry>Replace strings used when 'putting' short weekdays.</entry>
+ </row>
+ <row>
+ <entry>see the <link linkend="date_time.io_tutorial">tutorial</link> for a complete example.</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void long_weekday_names(...)
+ Parameter:
+ input_collection_type</screen></entry>
+ <entry>Replace strings used when 'putting' long weekdays.</entry>
+ </row>
+ <row>
+ <entry>see the <link linkend="date_time.io_tutorial">tutorial</link> for a complete example.</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void short_month_names(...)
+ Parameter:
+ input_collection_type</screen></entry>
+ <entry>Replace strings used when 'putting' short months.</entry>
+ </row>
+ <row>
+ <entry>see the <link linkend="date_time.io_tutorial">tutorial</link> for a complete example.</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void long_month_names(...)
+ Parameter:
+ input_collection_type</screen></entry>
+ <entry>Replace strings used when 'putting' long months.</entry>
+ </row>
+ <row>
+ <entry>see the <link linkend="date_time.io_tutorial">tutorial</link> for a complete example.</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put(...)
+ Common parameters for all
+ 'put' functions:
+ OutItrT
+ ios_base
+ char_type
+ Unique parameter for 'put' funcs:
+ gregorian object</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put(..., date)</screen></entry>
+ <entry>Puts a date object into the stream using the format set by <code>format(...)</code> or the default.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put(..., days)</screen></entry>
+ <entry>Puts a days object into the stream as a number.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put(..., month)</screen></entry>
+ <entry>Puts a month object into the stream using the format set by <code>month_format(...)</code> or the default.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put(..., day)</screen></entry>
+ <entry>Puts a day of month object into the stream as a two digit number.</entry>
+ </row>
+ <row>
+ <entry><screen>"01" // January 1st</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put(..., day_of_week)</screen></entry>
+ <entry>Puts a day of week object into the stream using the format set by <code>weekday_format(...)</code> or the default.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put(..., date_period)</screen></entry>
+ <entry>Puts a date_period into the stream. The format of the dates will use the format set by <code>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.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put(..., partial_date)</screen></entry>
+ <entry>Puts a partial_date date_generator object into the stream. The month format used is set by <code>month_format(..)</code> or the default. The day of month is represented as a two digit number.</entry>
+ </row>
+ <row>
+ <entry><screen>"01 Jan" // default formats
+"01 January" // long month format</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put(..., date_generator)
+ Date Generator Type:
+ nth_day_of_the_week_in_month</screen></entry>
+ <entry>Puts a nth_day_of_the_week_in_month object into the stream. The month format is set by <code>month_format(...)</code> or the default. The weekday format is set by <code>weekday_format(...)</code> or the default. The remaining phrase elements are set in the <link linkend ="io_objects.date_generators">date_generator_formatter</link>.</entry>
+ </row>
+ <row>
+ <entry><screen>"third Fri in May" // defaults</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put(..., date_generator)
+ Date Generator Type:
+ first_day_of_the_week_in_month</screen></entry>
+ <entry>Puts a first_day_of_the_week_in_month object into the stream. The month format is set by <code>month_format(...)</code> or the default. The weekday format is set by <code>weekday_format(...)</code> or the default. The remaining phrase elements are set in the <link linkend ="io_objects.date_generators">date_generator_formatter</link>.</entry>
+ </row>
+ <row>
+ <entry><screen>"first Wed of Jun" // defaults</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put(..., date_generator)
+ Date Generator Type:
+ last_day_of_the_week_in_month</screen></entry>
+ <entry>Puts a last_day_of_the_week_in_month object into the stream. The month format is set by <code>month_format(...)</code> or the default. The weekday format is set by <code>weekday_format(...)</code> or the default. The remaining phrase elements are set in the <link linkend ="io_objects.date_generators">date_generator_formatter</link>.</entry>
+ </row>
+ <row>
+ <entry><screen>"last Tue of Mar" // defaults</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put(..., date_generator)
+ Date Generator Type:
+ first_day_of_the_week_after</screen></entry>
+ <entry>Puts a first_day_of_the_week_after object into the stream. The weekday format is set by <code>weekday_format(...)</code> or the default. The remaining phrase elements are set in the <link linkend ="io_objects.date_generators">date_generator_formatter</link>.</entry>
+ </row>
+ <row>
+ <entry><screen>"first Sat after" // defaults</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put(..., date_generator)
+ Date Generator Type:
+ first_day_of_the_week_before</screen></entry>
+ <entry>Puts a first_day_of_the_week_before object into the stream. The weekday format is set by <code>weekday_format(...)</code> or the default. The remaining phrase elements are set in the <link linkend ="io_objects.date_generators">date_generator_formatter</link>.</entry>
+ </row>
+ <row>
+ <entry><screen>"first Mon before" // defaults</screen></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+</section>
+
+
diff --git a/src/boost/libs/date_time/xmldoc/date_input_facet.xml b/src/boost/libs/date_time/xmldoc/date_input_facet.xml
new file mode 100644
index 000000000..3eea356c0
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/date_input_facet.xml
@@ -0,0 +1,340 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.date_input_facet">
+ <title>Date Input Facet</title>
+
+ <link linkend="date_input_facet_intro">Introduction</link> -
+ <link linkend="date_input_facet_constr">Construction</link> -
+ <link linkend="date_input_facet_accessors">Accessors</link>
+
+ <anchor id="date_input_facet_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>The <code>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>gregorian</code> namespace as <code>date_input_facet</code> and <code>wdate_input_facet</code>.
+ </para>
+
+ <anchor id="date_input_facet_constr" />
+ <bridgehead renderas="sect3">Construction</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top"><screen>date_input_facet()</screen></entry>
+ <entry>Default constructor</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>date_input_facet(string_type format)</screen></entry>
+ <entry>Format given will be used for date input. All other formats will use their defaults.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>date_input_facet(...)
+ Parameters:
+ string_type format
+ format_date_parser_type
+ special_values_parser_type
+ period_parser_type
+ date_gen_parser_type</screen></entry>
+ <entry>Format given will be used for date input. The remaining parameters are parser objects. Further details on these objects can be found <link linkend="date_time.io_objects">here</link>.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <anchor id="date_input_facet_accessors" />
+ <bridgehead renderas="sect3">Accessors</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>void format(char_type*)</screen></entry>
+ <entry>Set the format for dates.</entry>
+ </row>
+ <row>
+ <entry><screen>date_input_facet* f =
+ new date_input_facet();
+f->format("%m %d %Y");</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void set_iso_format()</screen></entry>
+ <entry>Sets the date format to ISO</entry>
+ </row>
+ <row>
+ <entry><screen>f->set_iso_format();
+// "%Y%m%d"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void set_iso_extended_format()</screen></entry>
+ <entry>Sets the date format to ISO Extended</entry>
+ </row>
+ <row>
+ <entry><screen>f->set_iso_extended_format();
+// "%Y-%m-%d"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void month_format(char_type*)</screen></entry>
+ <entry>Set the format when 'get'ing months individually.</entry>
+ </row>
+ <row>
+ <entry><screen>f->month_format("%B");
+ss.str("March");
+ss >> m; // March</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void weekday_format(char_type*)</screen></entry>
+ <entry>Set the format when 'get'ing weekdays individually.</entry>
+ </row>
+ <row>
+ <entry><screen>f->weekday_format("%a");
+ss.str("Sun");
+ss >> wd; // Sunday</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void year_format(char_type*)</screen></entry>
+ <entry>Set the format when 'get'ing years individually.</entry>
+ </row>
+ <row>
+ <entry><screen>f->weekday_format("%y");
+ss.str("04");
+ss >> year; // 2004</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void period_parser(...)
+ Parameter:
+ period_parser_type</screen></entry>
+ <entry>Replaces the period parser object with a user created one.</entry>
+ </row>
+ <row>
+ <entry>see the <link linkend="date_time.io_tutorial">tutorial</link> for a complete example.</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void special_values_parser(...)
+ Parameter:
+ special_values_parser_type</screen></entry>
+ <entry>Replaces the special_values parser object with a user created one.</entry>
+ </row>
+ <row>
+ <entry>see the <link linkend="date_time.io_tutorial">tutorial</link> for a complete example.</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void date_gen_phrase_strings(...)
+ Parameters:
+ input_collection_type</screen></entry>
+ <entry>Sets new date generator phrase strings in date_gen_parser. The input collection is a vector of strings (for details on these strings see <link linkend="io_objects.date_generators">date generator formatter/parser documentation</link>).</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void short_weekday_names(...)
+ Parameter:
+ input_collection_type</screen></entry>
+ <entry>Replace strings used when 'getting' short weekdays.</entry>
+ </row>
+ <row>
+ <entry>see the <link linkend="date_time.io_tutorial">tutorial</link> for a complete example.</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void long_weekday_names(...)
+ Parameter:
+ input_collection_type</screen></entry>
+ <entry>Replace strings used when 'getting' long weekdays.</entry>
+ </row>
+ <row>
+ <entry>see the <link linkend="date_time.io_tutorial">tutorial</link> for a complete example.</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void short_month_names(...)
+ Parameter:
+ input_collection_type</screen></entry>
+ <entry>Replace strings used when 'getting' short months.</entry>
+ </row>
+ <row>
+ <entry>see the <link linkend="date_time.io_tutorial">tutorial</link> for a complete example.</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void long_month_names(...)
+ Parameter:
+ input_collection_type</screen></entry>
+ <entry>Replace strings used when 'getting' long months.</entry>
+ </row>
+ <row>
+ <entry>see the <link linkend="date_time.io_tutorial">tutorial</link> for a complete example.</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get(...)
+ Common parameters for all
+ 'get' functions:
+ InItrT from
+ InItrT to
+ ios_base
+ Unique parameter for 'get' funcs:
+ gregorian object</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get(..., date)</screen></entry>
+ <entry>Gets a date object from the stream using the format set by <code>format(...)</code> or the default.</entry>
+ </row>
+ <row>
+ <entry><screen>ss.str("2005-Jan-01");
+ss >> d; // default format</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get(..., month)</screen></entry>
+ <entry>Gets a month object from the stream using the format set by <code>month_format(...)</code> or the default.</entry>
+ </row>
+ <row>
+ <entry><screen>ss.str("Feb");
+ss >> m; // default format</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get(..., day_of_week)</screen></entry>
+ <entry>Gets a day of week object from the stream using the format set by <code>weekday_format(...)</code> or the default.</entry>
+ </row>
+ <row>
+ <entry><screen>ss.str("Sun");
+ss >> dow; // default format</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get(..., day)</screen></entry>
+ <entry>Gets a day of month object from the stream as a two digit number.</entry>
+ </row>
+ <row>
+ <entry><screen>"01" // January 1st</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get(..., year)</screen></entry>
+ <entry>Gets a year object from the stream as a number. The number of expected digits depends on the year format.</entry>
+ </row>
+ <row>
+ <entry><screen>ss/str("2005");
+ss >> y; // default format</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get(..., days)</screen></entry>
+ <entry>Gets a days object from the stream as a number.</entry>
+ </row>
+ <row>
+ <entry><screen>ss.str("356");
+ss >> dys; // a full year</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get(..., date_period)</screen></entry>
+ <entry>Gets a date_period from the stream. The format of the dates will use the format set by <code>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.</entry>
+ </row>
+ <row>
+ <entry>see the <link linkend="date_time.io_tutorial">tutorial</link> for a complete example.</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get(..., partial_date)</screen></entry>
+ <entry>Gets a partial_date date_generator object from the stream. The month format used is set by <code>month_format(..)</code> or the default. The day of month is represented as a two digit number.</entry>
+ </row>
+ <row>
+ <entry><screen>"01 Jan" // default formats
+"01 January" // long month format</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get(..., date_generator)
+ Date Generator Type:
+ nth_day_of_the_week_in_month</screen></entry>
+ <entry>Gets a nth_day_of_the_week_in_month object from the stream. The month format is set by <code>month_format(...)</code> or the default. The weekday format is set by <code>weekday_format(...)</code> or the default. The remaining phrase elements are set in the <link linkend ="io_objects.date_generators">date_generator_parser</link>.</entry>
+ </row>
+ <row>
+ <entry><screen>"third Fri in May" // defaults</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get(..., date_generator)
+ Date Generator Type:
+ first_day_of_the_week_in_month</screen></entry>
+ <entry>Gets a first_day_of_the_week_in_month object from the stream. The month format is set by <code>month_format(...)</code> or the default. The weekday format is set by <code>weekday_format(...)</code> or the default. The remaining phrase elements are set in the <link linkend ="io_objects.date_generators">date_generator_parser</link>.</entry>
+ </row>
+ <row>
+ <entry><screen>"first Wed of Jun" // defaults</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get(..., date_generator)
+ Date Generator Type:
+ last_day_of_the_week_in_month</screen></entry>
+ <entry>Gets a last_day_of_the_week_in_month object from the stream. The month format is set by <code>month_format(...)</code> or the default. The weekday format is set by <code>weekday_format(...)</code> or the default. The remaining phrase elements are set in the <link linkend ="io_objects.date_generators">date_generator_parser</link>.</entry>
+ </row>
+ <row>
+ <entry><screen>"last Tue of Mar" // defaults</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get(..., date_generator)
+ Date Generator Type:
+ first_day_of_the_week_after</screen></entry>
+ <entry>Gets a first_day_of_the_week_after object from the stream. The weekday format is set by <code>weekday_format(...)</code> or the default. The remaining phrase elements are set in the <link linkend ="io_objects.date_generators">date_generator_parser</link>.</entry>
+ </row>
+ <row>
+ <entry><screen>"first Sat after" // defaults</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get(..., date_generator)
+ Date Generator Type:
+ first_day_of_the_week_before</screen></entry>
+ <entry>Gets a first_day_of_the_week_before object from the stream. The weekday format is set by <code>weekday_format(...)</code> or the default. The remaining phrase elements are set in the <link linkend ="io_objects.date_generators">date_generator_parser</link>.</entry>
+ </row>
+ <row>
+ <entry><screen>"first Mon before" // defaults</screen></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/date_iterators.xml b/src/boost/libs/date_time/xmldoc/date_iterators.xml
new file mode 100644
index 000000000..fbe42674f
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/date_iterators.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.gregorian.date_iterators">
+ <title>Date Iterators</title>
+
+ <link linkend="iterators_intro">Introduction</link> --
+ <link linkend="iterators_header">Header</link> --
+ <link linkend="iterators_overview">Overview</link>
+
+ <anchor id="iterators_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>
+ Date iterators provide a standard mechanism for iteration through dates. Date iterators are a model of <ulink url="http://www.sgi.com/tech/stl/BidirectionalIterator.html">Bidirectional Iterator</ulink> and can be used to populate collections with dates and other date generation tasks. For example, the <link linkend="date_time.examples.print_month">print month</link> example iterates through all the days in a month and prints them.
+ </para>
+ <para>
+ All of the iterators here derive from boost::gregorian::date_iterator.
+ </para>
+
+ <anchor id="iterators_header" />
+ <bridgehead renderas="sect3">Header</bridgehead>
+ <para>
+ <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</programlisting>
+ </para>
+
+ <anchor id="iterators_overview" />
+ <bridgehead renderas="sect3">Overview</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>date_iterator</screen></entry>
+ <entry>Common (abstract) base class for all day level iterators.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>day_iterator(date start_date, int day_count=1)</screen></entry>
+ <entry>Iterate <code>day_count</code> days at a time. This iterator does not provide postfix increment/decrement operators. Only prefix operators are provided.</entry>
+ </row>
+ <row>
+ <entry><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</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>week_iterator(...)
+ Parameters:
+ date start_date
+ int week_offset (defaults to 1)</screen></entry>
+ <entry>Iterate <code>week_offset</code> weeks at a time. This iterator does not provide postfix increment/decrement operators. Only prefix operators are provided.</entry>
+ </row>
+ <row>
+ <entry><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</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>month_iterator(...)
+ Parameters:
+ date start_date
+ int month_offset (defaults to 1)</screen></entry>
+<entry>Iterate <code>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 <link linkend="snap_to_details">Reversibility of Operations Pitfall</link>. <emphasis role="strong">NOTE:</emphasis> the <code>month_iterator</code> is not effected by this pitfall.) This iterator does not provide postfix increment/decrement operators. Only prefix operators are provided.</entry>
+ </row>
+ <row>
+ <entry><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</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>year_iterator(...)
+ Parameters:
+ date start_date
+ int year_offset (defaults to 1)</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry><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</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/date_period.xml b/src/boost/libs/date_time/xmldoc/date_period.xml
new file mode 100644
index 000000000..e720e02b4
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/date_period.xml
@@ -0,0 +1,434 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2006 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.gregorian.date_period">
+ <title>Date Period</title>
+
+ <link linkend="period_intro">Introduction</link> --
+ <link linkend="period_header">Header</link> --
+ <link linkend="period_construction">Construction</link> --
+ <link linkend="date_period_mutators">Mutators</link> --
+ <link linkend="period_accessors">Accessors</link> --
+ <link linkend="period_convert_to_string">Convert to String</link> --
+ <link linkend="period_operators">Operators</link>
+
+ <anchor id="period_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>
+ 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 <link linkend="date_time.examples.date_period_calc">date period calculation example</link> provides an example of this.
+ </para>
+ <para>
+ 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>last</code> point will always be one unit less that the <code>begin</code> point.
+ </para>
+ <para>
+ Date periods used in combination with infinity values have the ability to represent complex concepts such as 'until further notice'.
+ </para>
+
+ <anchor id="period_header" />
+ <bridgehead renderas="sect3">Header</bridgehead>
+ <para>
+ <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</programlisting>
+ </para>
+
+ <anchor id="period_construction" />
+ <bridgehead renderas="sect3">Construction</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>date_period(date, date)</screen></entry>
+ <entry>Create a period as [begin, end). If end is &lt;= begin then the period will be invalid.</entry>
+ </row>
+ <row>
+ <entry><screen>date_period dp(date(2002,Jan,10),
+ date(2002,Jan,12));</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date_period(date, days)</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry><screen>date_period dp(date(2002,Jan,10),
+ days(2));</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date_period(date_period)</screen></entry>
+ <entry> Copy constructor</entry>
+ </row>
+ <row>
+ <entry><screen>date_period dp1(dp);</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+
+ <anchor id="date_period_mutators" />
+ <bridgehead renderas="sect3">Mutators</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>date_period shift(days)</screen></entry>
+ <entry>Add duration to both begin and end.</entry>
+ </row>
+ <row>
+ <entry>
+ <screen>
+date_period dp(date(2005,Jan,1), days(3));
+dp.shift(days(3));
+// dp == 2005-Jan-04 to 2005-Jan-07
+ </screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date_period expand(days)</screen></entry>
+ <entry>Subtract duration from begin and add duration to end.</entry>
+ </row>
+ <row>
+ <entry>
+ <screen>
+date_period dp(date(2005,Jan,2), days(2));
+dp.expand(days(1));
+// dp == 2005-Jan-01 to 2005-Jan-04
+ </screen>
+ </entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="period_accessors" />
+ <bridgehead renderas="sect3">Accessors</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>date begin()</screen></entry>
+ <entry> Return first day of period.</entry>
+ </row>
+ <row>
+ <entry><screen>date_period dp(date(2002,Jan,1),
+ date(2002,Jan,10));
+dp.begin() --> 2002-Jan-01</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date last()</screen></entry>
+ <entry>Return last date in the period</entry>
+ </row>
+ <row>
+ <entry><screen>date_period dp(date(2002,Jan,1),
+ date(2002,Jan,10));
+dp.last() --> 2002-Jan-09</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date end()</screen></entry>
+ <entry>Return one past the last in period</entry>
+ </row>
+ <row>
+ <entry><screen>date_period dp(date(2002,Jan,1),
+ date(2002,Jan,10));
+dp.end() --> 2002-Jan-10</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>days length()</screen></entry>
+ <entry>Return the length of the date_period</entry>
+ </row>
+ <row>
+ <entry><screen>date_period dp(date(2002,Jan,1),
+ days(2));
+dp.length() --> 2</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_null()</screen></entry>
+ <entry>True if period is not well formed. eg: end less than or equal to begin.</entry>
+ </row>
+ <row>
+ <entry><screen>date_period dp(date(2002,Jan,10),
+ date(2002,Jan,1));
+dp.is_null() --> true</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool contains(date)</screen></entry>
+ <entry>True if date is within the period. Zero length periods cannot contain any points</entry>
+ </row>
+ <row>
+ <entry><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</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool contains(date_period)</screen></entry>
+ <entry>True if date period is within the period</entry>
+ </row>
+ <row>
+ <entry><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) --> true
+dp2.contains(dp1) --> false</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool intersects(date_period)</screen></entry>
+ <entry>True if periods overlap</entry>
+ </row>
+ <row>
+ <entry><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) --> true</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date_period intersection(date_period)</screen></entry>
+ <entry>Calculate the intersection of 2 periods. Null if no intersection.</entry>
+ </row>
+ <row>
+ <entry><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) --> dp2</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date_period is_adjacent(date_period)</screen></entry>
+ <entry>Check if two periods are adjacent, but not overlapping.</entry>
+ </row>
+ <row>
+ <entry><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) --> true</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date_period is_after(date)</screen></entry>
+ <entry>Determine the period is after a given date.</entry>
+ </row>
+ <row>
+ <entry><screen>date_period dp1(date(2002,Jan,10),
+ date(2002,Jan,30));
+date d(2002,Jan,3);
+dp1.is_after(d) --> true</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date_period is_before(date)</screen></entry>
+ <entry>Determine the period is before a given date.</entry>
+ </row>
+ <row>
+ <entry><screen>date_period dp1(date(2002,Jan,1),
+ date(2002,Jan,3));
+date d(2002,Jan,10);
+dp1.is_before(d) --> true</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date_period merge(date_period)</screen></entry>
+ <entry>Returns union of two periods. Null if no intersection.</entry>
+ </row>
+ <row>
+ <entry><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</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date_period span(date_period)</screen></entry>
+ <entry>Combines two periods and any gap between them such that begin = min(p1.begin, p2.begin) and end = max(p1.end , p2.end)</entry>
+ </row>
+ <row>
+ <entry><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</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date_period shift(days)</screen></entry>
+ <entry>Add duration to both begin and end.</entry>
+ </row>
+ <row>
+ <entry><screen>date_period dp1(date(2002,Jan,1),
+ date(2002,Jan,10));
+dp1.shift(days(1));
+// 2002-Jan-02/2002-Jan-11</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date_period expand(days)</screen></entry>
+ <entry>Subtract duration from begin and add duration to end.</entry>
+ </row>
+ <row>
+ <entry><screen>date_period dp1(date(2002,Jan,4),
+ date(2002,Jan,10));
+dp1.expand(days(2));
+// 2002-Jan-02/2002-Jan-12</screen>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+
+ <anchor id="period_convert_to_string" />
+ <bridgehead renderas="sect3">Convert to String</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string to_simple_string(date_period dp)</screen></entry>
+ <entry>To <code>[YYYY-mmm-DD/YYYY-mmm-DD]</code> string where <code>mmm</code> is 3 char month name.</entry>
+ </row>
+ <row>
+ <entry><screen>[2002-Jan-01/2002-Jan-31]</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+
+ <anchor id="period_operators" />
+ <bridgehead renderas="sect3">Operators</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&lt;&lt;</screen></entry>
+ <entry>ostream operator for date_period. Uses facet to format time points. Typical output: [2002-Jan-01/2002-Jan-31].</entry>
+ </row>
+ <row>
+ <entry><screen>std::cout &lt;&lt; dp &lt;&lt; std::endl;</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&gt;&gt;</screen></entry>
+ <entry>istream operator for date_period. Uses facet to parse time points.</entry>
+ </row>
+ <row>
+ <entry><screen>"[2002-Jan-01/2002-Jan-31]"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator==, operator!=,
+operator&gt;, operator&lt;</screen>
+ </entry>
+ <entry>A full complement of comparison operators</entry>
+ </row>
+ <row>
+ <entry><screen>dp1 == dp2, etc</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&lt;</screen></entry>
+ <entry>True if dp1.end() less than dp2.begin()</entry>
+ </row>
+ <row>
+ <entry><screen>dp1 &lt; dp2, etc</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&gt;</screen></entry>
+ <entry>True if dp1.begin() greater than dp2.end()</entry>
+ </row>
+ <row>
+ <entry><screen>dp1 &gt; dp2, etc</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/date_time.xml b/src/boost/libs/date_time/xmldoc/date_time.xml
new file mode 100644
index 000000000..6a6f69679
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/date_time.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<library name="Date Time" dirname="date_time"
+ xmlns:xi="http://www.w3.org/2001/XInclude" id="date_time"
+ last-revision="$Date$">
+<libraryinfo>
+ <author>
+ <firstname>Jeff</firstname>
+ <surname>Garland</surname>
+ </author>
+
+ <copyright>
+ <year>2001</year>
+ <year>2002</year>
+ <year>2003</year>
+ <year>2004</year>
+ <year>2005</year>
+ <holder>CrystalClear Software, Inc</holder>
+ </copyright>
+
+ <legalnotice>
+ <para>Subject to the Boost Software License, Version 1.0. (See accompanying file
+ <filename>LICENSE_1_0.txt</filename> or copy at <ulink
+ url="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</ulink>)</para>
+ </legalnotice>
+
+ <librarypurpose>A set of facilities to ease programming with dates and times.
+ </librarypurpose>
+ <librarycategory name="category:misc"/>
+</libraryinfo>
+
+<title>Boost.Date_Time</title>
+<!-- <section id="date_time.intro"> -->
+ <bridgehead renderas="sect2">Introduction</bridgehead>
+
+ <para>
+ A set of date-time libraries based on generic programming concepts.
+ </para>
+
+ <para>This documentation is also available in PDF format. It can be found at:
+ <simplelist type="horiz" columns="1">
+ <member><ulink url="http://www.crystalclearsoftware.com/libraries/date_time/date_time.pdf" /></member>
+ </simplelist>
+ In addition, a full doxygen reference can be found at:
+ <simplelist type="horiz" columns="1">
+ <member><ulink url="http://www.crystalclearsoftware.com/libraries/date_time/ref_guide/index.html" /></member>
+ </simplelist>
+ The most current version of the documentation can be found at:
+ <simplelist type="horiz" columns="1">
+ <member><ulink url="http://www.crystalclearsoftware.com/libraries/date_time/index.html" /></member>
+ </simplelist>
+ </para>
+ <!-- </section> -->
+
+ <xi:include href="conceptual.xml"/>
+ <xi:include href="usage_examples.xml"/>
+ <xi:include href="gregorian.xml"/>
+ <xi:include href="posix_time.xml"/>
+ <xi:include href="local_time.xml"/>
+ <xi:include href="date_time_io.xml"/>
+ <xi:include href="serialization.xml" />
+ <xi:include href="details.xml"/>
+ <xi:include href="examples.xml"/>
+ <xi:include href="doxy.xml"/>
+<!-- add more sections here -->
+<!-- <xi:include href="local_date_time.xml"/> -->
+
+</library>
diff --git a/src/boost/libs/date_time/xmldoc/date_time_autodoc.xml b/src/boost/libs/date_time/xmldoc/date_time_autodoc.xml
new file mode 100644
index 000000000..2e257d457
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/date_time_autodoc.xml
@@ -0,0 +1,4344 @@
+<?xml version="1.0" standalone="yes"?>
+<library-reference id="date_time_reference"><title>Date Time Reference</title><header name="boost/date_time/adjust_functors.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="day_functor"><template>
+ <template-type-parameter name="date_type"/>
+ </template><purpose>Functor to iterate a fixed number of days. </purpose><typedef name="duration_type"><type>date_type::duration_type</type></typedef>
+<method-group name="public member functions">
+<method name="get_offset" cv="const"><type>duration_type</type><parameter name=""><paramtype>const date_type &amp;</paramtype></parameter></method>
+<method name="get_neg_offset" cv="const"><type>duration_type</type><parameter name=""><paramtype>const date_type &amp;</paramtype></parameter></method>
+</method-group>
+<constructor><parameter name="f"><paramtype>int</paramtype></parameter></constructor>
+</class><class name="month_functor"><template>
+ <template-type-parameter name="date_type"/>
+ </template><purpose>Provides calculation to find next nth month given a date. </purpose><description><para>This adjustment function provides the logic for 'month-based' advancement on a ymd based calendar. The policy it uses to handle the non existant end of month days is to back up to the last day of the month. Also, if the starting date is the last day of a month, this functor will attempt to adjust to the end of the month. </para></description><typedef name="duration_type"><type>date_type::duration_type</type></typedef>
+<typedef name="cal_type"><type>date_type::calendar_type</type></typedef>
+<typedef name="ymd_type"><type>cal_type::ymd_type</type></typedef>
+<typedef name="day_type"><type>cal_type::day_type</type></typedef>
+<method-group name="public member functions">
+<method name="get_offset" cv="const"><type>duration_type</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter></method>
+<method name="get_neg_offset" cv="const"><type>duration_type</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter><purpose>Returns a negative duration_type. </purpose></method>
+</method-group>
+<constructor><parameter name="f"><paramtype>int</paramtype></parameter></constructor>
+</class><class name="week_functor"><template>
+ <template-type-parameter name="date_type"/>
+ </template><purpose>Functor to iterate a over weeks. </purpose><typedef name="duration_type"><type>date_type::duration_type</type></typedef>
+<typedef name="calendar_type"><type>date_type::calendar_type</type></typedef>
+<method-group name="public member functions">
+<method name="get_offset" cv="const"><type>duration_type</type><parameter name=""><paramtype>const date_type &amp;</paramtype></parameter></method>
+<method name="get_neg_offset" cv="const"><type>duration_type</type><parameter name=""><paramtype>const date_type &amp;</paramtype></parameter></method>
+</method-group>
+<constructor><parameter name="f"><paramtype>int</paramtype></parameter></constructor>
+</class><class name="year_functor"><template>
+ <template-type-parameter name="date_type"/>
+ </template><purpose>Functor to iterate by a year adjusting for leap years. </purpose><typedef name="duration_type"><type>date_type::duration_type</type></typedef>
+<method-group name="public member functions">
+<method name="get_offset" cv="const"><type>duration_type</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter></method>
+<method name="get_neg_offset" cv="const"><type>duration_type</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter></method>
+</method-group>
+<constructor><parameter name="f"><paramtype>int</paramtype></parameter></constructor>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/c_local_time_adjustor.hpp">
+<para>Time adjustment calculations based on machine </para><namespace name="boost">
+<namespace name="date_time">
+<class name="c_local_adjustor"><template>
+ <template-type-parameter name="time_type"/>
+ </template><purpose>Adjust to / from utc using the C API. </purpose><description><para>Warning!!! This class assumes that timezone settings of the machine are correct. This can be a very dangerous assumption. </para></description><typedef name="time_duration_type"><type>time_type::time_duration_type</type></typedef>
+<typedef name="date_type"><type>time_type::date_type</type></typedef>
+<typedef name="date_duration_type"><type>date_type::duration_type</type></typedef>
+<method-group name="public static functions">
+<method name="utc_to_local" specifiers="static"><type>time_type</type><parameter name="t"><paramtype>const time_type &amp;</paramtype></parameter><purpose>Convert a utc time to local time. </purpose></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/c_time.hpp">
+<para>Provide workarounds related to the ctime header </para><namespace name="std">
+</namespace>
+<namespace name="boost">
+<namespace name="date_time">
+<struct name="c_time"><purpose>Provides a uniform interface to some 'ctime' functions. </purpose><description><para>Provides a uniform interface to some ctime functions and their '_r' counterparts. The '_r' functions require a pointer to a user created std::tm struct whereas the regular functions use a staticly created struct and return a pointer to that. These wrapper functions require the user to create a std::tm struct and send in a pointer to it. This struct may be used to store the resulting time. The returned pointer may or may not point to this struct, however, it will point to the result of the corresponding function. All functions do proper checking of the C function results and throw exceptions on error. Therefore the functions will never return NULL. </para></description><method-group name="public static functions">
+<method name="localtime" specifiers="static"><type>std::tm *</type><parameter name="t"><paramtype>const std::time_t *</paramtype></parameter><parameter name="result"><paramtype>std::tm *</paramtype></parameter><purpose>requires a pointer to a user created std::tm struct </purpose></method>
+<method name="gmtime" specifiers="static"><type>std::tm *</type><parameter name="t"><paramtype>const std::time_t *</paramtype></parameter><parameter name="result"><paramtype>std::tm *</paramtype></parameter><purpose>requires a pointer to a user created std::tm struct </purpose></method>
+<method name="localtime" specifiers="static"><type>std::tm *</type><parameter name="t"><paramtype>const std::time_t *</paramtype></parameter><parameter name="result"><paramtype>std::tm *</paramtype></parameter><purpose>requires a pointer to a user created std::tm struct </purpose></method>
+<method name="gmtime" specifiers="static"><type>std::tm *</type><parameter name="t"><paramtype>const std::time_t *</paramtype></parameter><parameter name="result"><paramtype>std::tm *</paramtype></parameter><purpose>requires a pointer to a user created std::tm struct </purpose></method>
+</method-group>
+</struct>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/compiler_config.hpp">
+<namespace name="std">
+</namespace>
+</header>
+<header name="boost/date_time/constrained_value.hpp">
+<namespace name="boost">
+<namespace name="CV">
+<class name="constrained_value"><template>
+ <template-type-parameter name="value_policies"/>
+ </template><purpose>A template to specify a constrained basic value type. </purpose><description><para>This template provides a quick way to generate an integer type with a constrained range. The type provides for the ability to specify the min, max, and and error handling policy.</para><para><emphasis role="bold">value policies</emphasis> A class that provides the range limits via the min and max functions as well as a function on_error that determines how errors are handled. A common strategy would be to assert or throw and exception. The on_error is passed both the current value and the new value that is in error. </para></description><typedef name="value_type"><type>value_policies::value_type</type></typedef>
+<method-group name="public member functions">
+<method name="operator value_type" cv="const"><type>BOOST_CXX14_CONSTEXPR</type><purpose>Coerce into the representation type. </purpose></method>
+</method-group>
+<constructor><parameter name="value"><paramtype>value_type</paramtype></parameter></constructor>
+<copy-assignment><type>BOOST_CXX14_CONSTEXPR <classname>constrained_value</classname> &amp;</type><parameter name="v"><paramtype>value_type</paramtype></parameter></copy-assignment>
+<method-group name="public static functions">
+<method name="BOOST_PREVENT_MACRO_SUBSTITUTION" specifiers="static"><type>BOOST_CONSTEXPR value_type max</type><purpose>Return the max allowed value (traits method) </purpose></method>
+<method name="BOOST_PREVENT_MACRO_SUBSTITUTION" specifiers="static"><type>BOOST_CONSTEXPR value_type min</type><purpose>Return the min allowed value (traits method) </purpose></method>
+</method-group>
+<method-group name="private member functions">
+<method name="assign"><type>void</type><parameter name="value"><paramtype>value_type</paramtype></parameter></method>
+</method-group>
+</class><class name="simple_exception_policy"><template>
+ <template-type-parameter name="rep_type"/>
+ <template-nontype-parameter name="min_value"><type>rep_type</type></template-nontype-parameter>
+ <template-nontype-parameter name="max_value"><type>rep_type</type></template-nontype-parameter>
+ <template-type-parameter name="exception_type"/>
+ </template><purpose>Template to shortcut the <classname alt="boost::CV::constrained_value">constrained_value</classname> policy creation process. </purpose><struct name="exception_wrapper"><inherit access="public">exception_type</inherit><method-group name="public member functions">
+<method name="conversion-operator" cv="const"><type>std::out_of_range</type></method>
+</method-group>
+</struct><typedef name="value_type"><type>rep_type</type></typedef>
+<method-group name="public static functions">
+<method name="BOOST_PREVENT_MACRO_SUBSTITUTION" specifiers="static"><type>BOOST_CONSTEXPR rep_type min</type></method>
+<method name="BOOST_PREVENT_MACRO_SUBSTITUTION" specifiers="static"><type>BOOST_CONSTEXPR rep_type max</type></method>
+<method name="on_error" specifiers="static"><type>void</type><parameter name=""><paramtype>rep_type</paramtype></parameter><parameter name=""><paramtype>rep_type</paramtype></parameter><parameter name=""><paramtype>violation_enum</paramtype></parameter></method>
+</method-group>
+</class><enum name="violation_enum"><enumvalue name="min_violation"/><enumvalue name="max_violation"/><purpose>Represent a min or max violation type. </purpose></enum>
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/date.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="date"><template>
+ <template-type-parameter name="T"/>
+ <template-type-parameter name="calendar"/>
+ <template-type-parameter name="duration_type_"/>
+ </template><inherit access="private">boost::less_than_comparable&lt; T, boost::equality_comparable&lt; T &gt; &gt;</inherit><purpose>Representation of timepoint at the one day level resolution. </purpose><description><para>The date template represents an interface shell for a date class that is based on a year-month-day system such as the gregorian or iso systems. It provides basic operations to enable calculation and comparisons.</para><para><emphasis role="bold">Theory</emphasis></para><para>This date representation fundamentally departs from the C tm struct approach. The goal for this type is to provide efficient date operations (add, subtract) and storage (minimize space to represent) in a concrete class. Thus, the date uses a count internally to represent a particular date. The calendar parameter defines the policies for converting the the year-month-day and internal counted form here. Applications that need to perform heavy formatting of the same date repeatedly will perform better by using the year-month-day representation.</para><para>Internally the date uses a day number to represent the date. This is a monotonic time representation. This representation allows for fast comparison as well as simplifying the creation of writing numeric operations. Essentially, the internal day number is like adjusted julian day. The adjustment is determined by the Epoch date which is represented as day 1 of the calendar. Day 0 is reserved for negative infinity so that any actual date is automatically greater than negative infinity. When a date is constructed from a date or formatted for output, the appropriate conversions are applied to create the year, month, day representations. </para></description><typedef name="date_type"><type>T</type></typedef>
+<typedef name="calendar_type"><type>calendar</type></typedef>
+<typedef name="traits_type"><type>calendar::date_traits_type</type></typedef>
+<typedef name="duration_type"><type>duration_type_</type></typedef>
+<typedef name="year_type"><type>calendar::year_type</type></typedef>
+<typedef name="month_type"><type>calendar::month_type</type></typedef>
+<typedef name="day_type"><type>calendar::day_type</type></typedef>
+<typedef name="ymd_type"><type>calendar::ymd_type</type></typedef>
+<typedef name="date_rep_type"><type>calendar::date_rep_type</type></typedef>
+<typedef name="date_int_type"><type>calendar::date_int_type</type></typedef>
+<typedef name="day_of_week_type"><type>calendar::day_of_week_type</type></typedef>
+<method-group name="public member functions">
+<method name="year" cv="const"><type>BOOST_CXX14_CONSTEXPR year_type</type></method>
+<method name="month" cv="const"><type>BOOST_CXX14_CONSTEXPR month_type</type></method>
+<method name="day" cv="const"><type>BOOST_CXX14_CONSTEXPR day_type</type></method>
+<method name="day_of_week" cv="const"><type>BOOST_CXX14_CONSTEXPR day_of_week_type</type></method>
+<method name="year_month_day" cv="const"><type>BOOST_CXX14_CONSTEXPR ymd_type</type></method>
+<method name="operator&lt;" cv="const"><type>BOOST_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const date_type &amp;</paramtype></parameter></method>
+<method name="operator==" cv="const"><type>BOOST_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const date_type &amp;</paramtype></parameter></method>
+<method name="is_special" cv="const"><type>BOOST_CONSTEXPR bool</type><purpose>check to see if date is a special value </purpose></method>
+<method name="is_not_a_date" cv="const"><type>BOOST_CONSTEXPR bool</type><purpose>check to see if date is not a value </purpose></method>
+<method name="is_infinity" cv="const"><type>BOOST_CONSTEXPR bool</type><purpose>check to see if date is one of the infinity values </purpose></method>
+<method name="is_pos_infinity" cv="const"><type>BOOST_CONSTEXPR bool</type><purpose>check to see if date is greater than all possible dates </purpose></method>
+<method name="is_neg_infinity" cv="const"><type>BOOST_CONSTEXPR bool</type><purpose>check to see if date is greater than all possible dates </purpose></method>
+<method name="as_special" cv="const"><type>BOOST_CXX14_CONSTEXPR special_values</type><purpose>return as a special value or a not_special if a normal date </purpose></method>
+<method name="operator-" cv="const"><type>BOOST_CXX14_CONSTEXPR duration_type</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter></method>
+<method name="operator-" cv="const"><type>BOOST_CXX14_CONSTEXPR date_type</type><parameter name="dd"><paramtype>const duration_type &amp;</paramtype></parameter></method>
+<method name="operator-="><type>BOOST_CXX14_CONSTEXPR date_type</type><parameter name="dd"><paramtype>const duration_type &amp;</paramtype></parameter></method>
+<method name="day_count" cv="const"><type>BOOST_CONSTEXPR date_rep_type</type></method>
+<method name="operator+" cv="const"><type>BOOST_CXX14_CONSTEXPR date_type</type><parameter name="dd"><paramtype>const duration_type &amp;</paramtype></parameter></method>
+<method name="operator+="><type>BOOST_CXX14_CONSTEXPR date_type</type><parameter name="dd"><paramtype>const duration_type &amp;</paramtype></parameter></method>
+</method-group>
+<constructor><parameter name="y"><paramtype>year_type</paramtype></parameter><parameter name="m"><paramtype>month_type</paramtype></parameter><parameter name="d"><paramtype>day_type</paramtype></parameter></constructor>
+<constructor><parameter name="ymd"><paramtype>const ymd_type &amp;</paramtype></parameter></constructor>
+<method-group name="protected member functions">
+</method-group>
+<constructor specifiers="explicit"><parameter name="days"><paramtype>date_int_type</paramtype></parameter><description><para>This is a private constructor which allows for the creation of new dates. It is not exposed to users since that would require class users to understand the inner workings of the date class. </para></description></constructor>
+<constructor specifiers="explicit"><parameter name="days"><paramtype>date_rep_type</paramtype></parameter></constructor>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/date_clock_device.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="day_clock"><template>
+ <template-type-parameter name="date_type"/>
+ </template><purpose>A clock providing day level services based on C time_t capabilities. </purpose><description><para>This clock uses Posix interfaces as its implementation and hence uses the timezone settings of the operating system. Incorrect user settings will result in incorrect results for the calls to local_day. </para></description><typedef name="ymd_type"><type>date_type::ymd_type</type></typedef>
+<method-group name="public static functions">
+<method name="local_day" specifiers="static"><type>date_type</type><purpose>Get the local day as a date type. </purpose></method>
+<method name="local_day_ymd" specifiers="static"><type>date_type::ymd_type</type><purpose>Get the local day as a ymd_type. </purpose></method>
+<method name="universal_day_ymd" specifiers="static"><type>date_type::ymd_type</type><purpose>Get the current day in universal date as a ymd_type. </purpose></method>
+<method name="universal_day" specifiers="static"><type>date_type</type><purpose>Get the UTC day as a date type. </purpose></method>
+</method-group>
+<method-group name="private static functions">
+<method name="get_local_time" specifiers="static"><type>::std::tm *</type><parameter name="result"><paramtype>std::tm &amp;</paramtype></parameter></method>
+<method name="get_universal_time" specifiers="static"><type>::std::tm *</type><parameter name="result"><paramtype>std::tm &amp;</paramtype></parameter></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/date_defs.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<enum name="weekdays"><enumvalue name="Sunday"/><enumvalue name="Monday"/><enumvalue name="Tuesday"/><enumvalue name="Wednesday"/><enumvalue name="Thursday"/><enumvalue name="Friday"/><enumvalue name="Saturday"/><purpose>An enumeration of weekday names. </purpose></enum>
+<enum name="months_of_year"><enumvalue name="Jan"><default>=1</default></enumvalue><enumvalue name="Feb"/><enumvalue name="Mar"/><enumvalue name="Apr"/><enumvalue name="May"/><enumvalue name="Jun"/><enumvalue name="Jul"/><enumvalue name="Aug"/><enumvalue name="Sep"/><enumvalue name="Oct"/><enumvalue name="Nov"/><enumvalue name="Dec"/><enumvalue name="NotAMonth"/><enumvalue name="NumMonths"/><purpose>Simple enum to allow for nice programming with Jan, Feb, etc. </purpose></enum>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/date_duration.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="date_duration"><template>
+ <template-type-parameter name="duration_rep_traits"/>
+ </template><inherit access="private">boost::less_than_comparable1&lt; date_duration&lt; duration_rep_traits &gt;, boost::equality_comparable1&lt; date_duration&lt; duration_rep_traits &gt;, boost::addable1&lt; date_duration&lt; duration_rep_traits &gt;, boost::subtractable1&lt; date_duration&lt; duration_rep_traits &gt;, boost::dividable2&lt; date_duration&lt; duration_rep_traits &gt;, int &gt; &gt; &gt; &gt; &gt;</inherit><purpose>Duration type with date level resolution. </purpose><typedef name="duration_rep_type"><type>duration_rep_traits::int_type</type></typedef>
+<typedef name="duration_rep"><type>duration_rep_traits::impl_type</type></typedef>
+<method-group name="public member functions">
+<method name="get_rep" cv="const"><type>BOOST_CXX14_CONSTEXPR duration_rep</type><purpose>returns days_ as it's instantiated type - used for streaming </purpose></method>
+<method name="as_special" cv="const"><type>BOOST_CXX14_CONSTEXPR special_values</type></method>
+<method name="is_special" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type></method>
+<method name="days" cv="const"><type>BOOST_CXX14_CONSTEXPR duration_rep_type</type><purpose>returns days as value, not object. </purpose></method>
+<method name="operator==" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>date_duration</classname> &amp;</paramtype></parameter><purpose>Equality. </purpose></method>
+<method name="operator&lt;" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>date_duration</classname> &amp;</paramtype></parameter><purpose>Less. </purpose></method>
+<method name="operator-="><type>BOOST_CXX14_CONSTEXPR <classname>date_duration</classname> &amp;</type><parameter name="rhs"><paramtype>const <classname>date_duration</classname> &amp;</paramtype></parameter><purpose>Subtract another duration – result is signed. </purpose></method>
+<method name="operator+="><type>BOOST_CXX14_CONSTEXPR <classname>date_duration</classname> &amp;</type><parameter name="rhs"><paramtype>const <classname>date_duration</classname> &amp;</paramtype></parameter><purpose>Add a duration – result is signed. </purpose></method>
+<method name="operator-" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>date_duration</classname></type><purpose>unary- Allows for dd = -date_duration(2); -&gt; dd == -2 </purpose></method>
+<method name="operator/="><type>BOOST_CXX14_CONSTEXPR <classname>date_duration</classname> &amp;</type><parameter name="divisor"><paramtype>int</paramtype></parameter><purpose>Division operations on a duration with an integer. </purpose></method>
+<method name="is_negative" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><purpose>return sign information </purpose></method>
+</method-group>
+<constructor specifiers="explicit"><parameter name="day_count"><paramtype>duration_rep</paramtype></parameter><purpose>Construct from a day count. </purpose></constructor>
+<constructor><parameter name="sv"><paramtype>special_values</paramtype></parameter><description><para>construct from special_values - only works when instantiated with <classname alt="boost::date_time::duration_traits_adapted">duration_traits_adapted</classname> </para></description></constructor>
+<constructor><parameter name="other"><paramtype>const <classname>date_duration</classname>&lt; duration_rep_traits &gt; &amp;</paramtype></parameter><purpose>Construct from another <classname alt="boost::date_time::date_duration">date_duration</classname> (Copy Constructor) </purpose></constructor>
+<method-group name="public static functions">
+<method name="unit" specifiers="static"><type>BOOST_CXX14_CONSTEXPR <classname>date_duration</classname></type><purpose>Returns the smallest duration – used by to calculate 'end'. </purpose></method>
+</method-group>
+</class><struct name="duration_traits_adapted"><description><para>Struct for instantiating <classname alt="boost::date_time::date_duration">date_duration</classname> <emphasis role="bold">WITH</emphasis> special values functionality. Allows for transparent implementation of either date_duration&lt;long&gt; or <classname alt="boost::date_time::date_duration">date_duration</classname>&lt;int_adapter&lt;long&gt; &gt; </para></description><typedef name="int_type"><type>long</type></typedef>
+<typedef name="impl_type"><type><classname>boost::date_time::int_adapter</classname>&lt; long &gt;</type></typedef>
+<method-group name="public static functions">
+<method name="as_number" specifiers="static"><type>BOOST_CXX14_CONSTEXPR int_type</type><parameter name="i"><paramtype><classname>impl_type</classname></paramtype></parameter></method>
+</method-group>
+</struct><struct name="duration_traits_long"><description><para>Struct for instantiating <classname alt="boost::date_time::date_duration">date_duration</classname> with <emphasis role="bold">NO</emphasis> special values functionality. Allows for transparent implementation of either date_duration&lt;long&gt; or <classname alt="boost::date_time::date_duration">date_duration</classname>&lt;int_adapter&lt;long&gt; &gt; </para></description><typedef name="int_type"><type>long</type></typedef>
+<typedef name="impl_type"><type>long</type></typedef>
+<method-group name="public static functions">
+<method name="as_number" specifiers="static"><type>BOOST_CXX14_CONSTEXPR int_type</type><parameter name="i"><paramtype>impl_type</paramtype></parameter></method>
+</method-group>
+</struct>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/date_duration_types.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="months_duration"><template>
+ <template-type-parameter name="base_config"/>
+ </template><purpose>additional duration type that represents a logical month </purpose><description><para>A logical month enables things like: "date(2002,Mar,2) + months(2) -&gt;
+2002-May2". If the date is a last day-of-the-month, the result will also be a last-day-of-the-month. </para></description><method-group name="public member functions">
+<method name="number_of_months" cv="const"><type>int_rep</type></method>
+<method name="get_neg_offset" cv="const"><type>BOOST_CXX14_CONSTEXPR duration_type</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter><purpose>returns a negative duration </purpose></method>
+<method name="get_offset" cv="const"><type>BOOST_CXX14_CONSTEXPR duration_type</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter></method>
+<method name="operator==" cv="const"><type>BOOST_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>months_type</classname> &amp;</paramtype></parameter></method>
+<method name="operator!=" cv="const"><type>BOOST_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>months_type</classname> &amp;</paramtype></parameter></method>
+<method name="operator+" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>months_type</classname></type><parameter name="rhs"><paramtype>const <classname>months_type</classname> &amp;</paramtype></parameter></method>
+<method name="operator+="><type>BOOST_CXX14_CONSTEXPR <classname>months_type</classname> &amp;</type><parameter name="rhs"><paramtype>const <classname>months_type</classname> &amp;</paramtype></parameter></method>
+<method name="operator-" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>months_type</classname></type><parameter name="rhs"><paramtype>const <classname>months_type</classname> &amp;</paramtype></parameter></method>
+<method name="operator-="><type>BOOST_CXX14_CONSTEXPR <classname>months_type</classname> &amp;</type><parameter name="rhs"><paramtype>const <classname>months_type</classname> &amp;</paramtype></parameter></method>
+<method name="operator *" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>months_type</classname></type><parameter name="rhs"><paramtype>const int_type</paramtype></parameter></method>
+<method name="operator *="><type>BOOST_CXX14_CONSTEXPR <classname>months_type</classname> &amp;</type><parameter name="rhs"><paramtype>const int_type</paramtype></parameter></method>
+<method name="operator/" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>months_type</classname></type><parameter name="rhs"><paramtype>const int_type</paramtype></parameter></method>
+<method name="operator/="><type>BOOST_CXX14_CONSTEXPR <classname>months_type</classname> &amp;</type><parameter name="rhs"><paramtype>const int_type</paramtype></parameter></method>
+<method name="operator+" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>months_type</classname></type><parameter name="y"><paramtype>const <classname>years_type</classname> &amp;</paramtype></parameter></method>
+<method name="operator+="><type>BOOST_CXX14_CONSTEXPR <classname>months_type</classname> &amp;</type><parameter name="y"><paramtype>const <classname>years_type</classname> &amp;</paramtype></parameter></method>
+<method name="operator-" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>months_type</classname></type><parameter name="y"><paramtype>const <classname>years_type</classname> &amp;</paramtype></parameter></method>
+<method name="operator-="><type>BOOST_CXX14_CONSTEXPR <classname>months_type</classname> &amp;</type><parameter name="y"><paramtype>const <classname>years_type</classname> &amp;</paramtype></parameter></method>
+</method-group>
+<constructor><parameter name="num"><paramtype>int_rep</paramtype></parameter></constructor>
+<constructor><parameter name="sv"><paramtype>special_values</paramtype></parameter></constructor>
+</class><class name="weeks_duration"><template>
+ <template-type-parameter name="duration_config"/>
+ </template><inherit access="public">boost::date_time::date_duration&lt; duration_config &gt;</inherit><purpose>Additional duration type that represents a number of n*7 days. </purpose><method-group name="public member functions">
+</method-group>
+<constructor><parameter name="w"><paramtype>typename duration_config::impl_type</paramtype></parameter></constructor>
+<constructor><parameter name="sv"><paramtype>special_values</paramtype></parameter></constructor>
+</class><class name="years_duration"><template>
+ <template-type-parameter name="base_config"/>
+ </template><purpose>additional duration type that represents a logical year </purpose><description><para>A logical year enables things like: "date(2002,Mar,2) + years(2) -&gt;
+2004-Mar-2". If the date is a last day-of-the-month, the result will also be a last-day-of-the-month (ie date(2001-Feb-28) + years(3) -&gt; 2004-Feb-29). </para></description><method-group name="public member functions">
+<method name="number_of_years" cv="const"><type>BOOST_CXX14_CONSTEXPR int_rep</type></method>
+<method name="get_neg_offset" cv="const"><type>BOOST_CXX14_CONSTEXPR duration_type</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter><purpose>returns a negative duration </purpose></method>
+<method name="get_offset" cv="const"><type>BOOST_CXX14_CONSTEXPR duration_type</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter></method>
+<method name="operator==" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>years_type</classname> &amp;</paramtype></parameter></method>
+<method name="operator!=" cv="const"><type>bool</type><parameter name="rhs"><paramtype>const <classname>years_type</classname> &amp;</paramtype></parameter></method>
+<method name="operator+" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>years_type</classname></type><parameter name="rhs"><paramtype>const <classname>years_type</classname> &amp;</paramtype></parameter></method>
+<method name="operator+="><type>BOOST_CXX14_CONSTEXPR <classname>years_type</classname> &amp;</type><parameter name="rhs"><paramtype>const <classname>years_type</classname> &amp;</paramtype></parameter></method>
+<method name="operator-" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>years_type</classname></type><parameter name="rhs"><paramtype>const <classname>years_type</classname> &amp;</paramtype></parameter></method>
+<method name="operator-="><type>BOOST_CXX14_CONSTEXPR <classname>years_type</classname> &amp;</type><parameter name="rhs"><paramtype>const <classname>years_type</classname> &amp;</paramtype></parameter></method>
+<method name="operator *" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>years_type</classname></type><parameter name="rhs"><paramtype>const int_type</paramtype></parameter></method>
+<method name="operator *="><type>BOOST_CXX14_CONSTEXPR <classname>years_type</classname> &amp;</type><parameter name="rhs"><paramtype>const int_type</paramtype></parameter></method>
+<method name="operator/" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>years_type</classname></type><parameter name="rhs"><paramtype>const int_type</paramtype></parameter></method>
+<method name="operator/="><type>BOOST_CXX14_CONSTEXPR <classname>years_type</classname> &amp;</type><parameter name="rhs"><paramtype>const int_type</paramtype></parameter></method>
+<method name="operator+" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>months_type</classname></type><parameter name="m"><paramtype>const <classname>months_type</classname> &amp;</paramtype></parameter></method>
+<method name="operator-" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>months_type</classname></type><parameter name="m"><paramtype>const <classname>months_type</classname> &amp;</paramtype></parameter></method>
+</method-group>
+<constructor><parameter name="num"><paramtype>int_rep</paramtype></parameter></constructor>
+<constructor><parameter name="sv"><paramtype>special_values</paramtype></parameter></constructor>
+</class><data-member name="years_duration"><type>class BOOST_SYMBOL_VISIBLE</type></data-member>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/date_facet.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="date_facet"><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="OutItrT"><default>std::ostreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt;</default></template-type-parameter>
+ </template><inherit access="public">facet</inherit><description><para>Class that provides format based I/O facet for date types.</para><para>This class allows the formatting of dates by using format string. Format strings are:</para><para><itemizedlist>
+<listitem><para>A =&gt; long_weekday_format - Full name Ex: Tuesday</para>
+</listitem><listitem><para>a =&gt; short_weekday_format - Three letter abbreviation Ex: Tue</para>
+</listitem><listitem><para>B =&gt; long_month_format - Full name Ex: October</para>
+</listitem><listitem><para>b =&gt; short_month_format - Three letter abbreviation Ex: Oct</para>
+</listitem><listitem><para>x =&gt; standard_format_specifier - defined by the locale</para>
+</listitem><listitem><para>Y-b-d =&gt; default_date_format - YYYY-Mon-dd</para>
+</listitem></itemizedlist>
+</para><para>Default month format == b Default weekday format == a </para></description><typedef name="duration_type"><type>date_type::duration_type</type></typedef>
+<typedef name="day_of_week_type"><type>date_type::day_of_week_type</type></typedef>
+<typedef name="day_type"><type>date_type::day_type</type></typedef>
+<typedef name="month_type"><type>date_type::month_type</type></typedef>
+<typedef name="period_type"><type><classname>boost::date_time::period</classname>&lt; date_type, duration_type &gt;</type></typedef>
+<typedef name="string_type"><type>std::basic_string&lt; CharT &gt;</type></typedef>
+<typedef name="char_type"><type>CharT</type></typedef>
+<typedef name="period_formatter_type"><type><classname>boost::date_time::period_formatter</classname>&lt; CharT &gt;</type></typedef>
+<typedef name="special_values_formatter_type"><type><classname>boost::date_time::special_values_formatter</classname>&lt; CharT &gt;</type></typedef>
+<typedef name="input_collection_type"><type>std::vector&lt; std::basic_string&lt; CharT &gt; &gt;</type></typedef>
+<typedef name="date_gen_formatter_type"><type><classname>date_generator_formatter</classname>&lt; date_type, CharT &gt;</type></typedef>
+<typedef name="partial_date_type"><type><classname>partial_date</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="nth_kday_type"><type><classname>nth_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="first_kday_type"><type><classname>first_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="last_kday_type"><type><classname>last_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="kday_after_type"><type><classname>first_kday_after</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="kday_before_type"><type><classname>first_kday_before</classname>&lt; date_type &gt;</type></typedef>
+<data-member name="long_weekday_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="short_weekday_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="long_month_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="short_month_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="default_period_separator" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="standard_format_specifier" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="iso_format_specifier" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="iso_format_extended_specifier" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="default_date_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="id" specifiers="static"><type>std::locale::id</type></data-member>
+<method-group name="public member functions">
+<method name="__get_id" cv="const"><type>std::locale::id &amp;</type><parameter name=""><paramtype>void</paramtype></parameter></method>
+<method name="format"><type>void</type><parameter name="format_str"><paramtype>const char_type *const</paramtype></parameter></method>
+<method name="set_iso_format" specifiers="virtual"><type>void</type></method>
+<method name="set_iso_extended_format" specifiers="virtual"><type>void</type></method>
+<method name="month_format"><type>void</type><parameter name="format_str"><paramtype>const char_type *const</paramtype></parameter></method>
+<method name="weekday_format"><type>void</type><parameter name="format_str"><paramtype>const char_type *const</paramtype></parameter></method>
+<method name="period_formatter"><type>void</type><parameter name="per_formatter"><paramtype><classname>period_formatter_type</classname></paramtype></parameter></method>
+<method name="special_values_formatter"><type>void</type><parameter name="svf"><paramtype>const <classname>special_values_formatter_type</classname> &amp;</paramtype></parameter></method>
+<method name="short_weekday_names"><type>void</type><parameter name="short_names"><paramtype>const input_collection_type &amp;</paramtype></parameter></method>
+<method name="long_weekday_names"><type>void</type><parameter name="long_names"><paramtype>const input_collection_type &amp;</paramtype></parameter></method>
+<method name="short_month_names"><type>void</type><parameter name="short_names"><paramtype>const input_collection_type &amp;</paramtype></parameter></method>
+<method name="long_month_names"><type>void</type><parameter name="long_names"><paramtype>const input_collection_type &amp;</paramtype></parameter></method>
+<method name="date_gen_phrase_strings"><type>void</type><parameter name="new_strings"><paramtype>const input_collection_type &amp;</paramtype></parameter><parameter name="beg_pos"><paramtype>typename date_gen_formatter_type::phrase_elements</paramtype><default>date_gen_formatter_type::first</default></parameter></method>
+<method name="put" cv="const"><type>OutItrT</type><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fill_char"><paramtype>char_type</paramtype></parameter><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter></method>
+<method name="put" cv="const"><type>OutItrT</type><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fill_char"><paramtype>char_type</paramtype></parameter><parameter name="dd"><paramtype>const duration_type &amp;</paramtype></parameter></method>
+<method name="put" cv="const"><type>OutItrT</type><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fill_char"><paramtype>char_type</paramtype></parameter><parameter name="m"><paramtype>const month_type &amp;</paramtype></parameter></method>
+<method name="put" cv="const"><type>OutItrT</type><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fill_char"><paramtype>char_type</paramtype></parameter><parameter name="day"><paramtype>const day_type &amp;</paramtype></parameter><purpose>puts the day of month </purpose></method>
+<method name="put" cv="const"><type>OutItrT</type><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fill_char"><paramtype>char_type</paramtype></parameter><parameter name="dow"><paramtype>const day_of_week_type &amp;</paramtype></parameter></method>
+<method name="put" cv="const"><type>OutItrT</type><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fill_char"><paramtype>char_type</paramtype></parameter><parameter name="p"><paramtype>const <classname>period_type</classname> &amp;</paramtype></parameter></method>
+<method name="put" cv="const"><type>OutItrT</type><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fill_char"><paramtype>char_type</paramtype></parameter><parameter name="pd"><paramtype>const <classname>partial_date_type</classname> &amp;</paramtype></parameter></method>
+<method name="put" cv="const"><type>OutItrT</type><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fill_char"><paramtype>char_type</paramtype></parameter><parameter name="nkd"><paramtype>const <classname>nth_kday_type</classname> &amp;</paramtype></parameter></method>
+<method name="put" cv="const"><type>OutItrT</type><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fill_char"><paramtype>char_type</paramtype></parameter><parameter name="fkd"><paramtype>const <classname>first_kday_type</classname> &amp;</paramtype></parameter></method>
+<method name="put" cv="const"><type>OutItrT</type><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fill_char"><paramtype>char_type</paramtype></parameter><parameter name="lkd"><paramtype>const <classname>last_kday_type</classname> &amp;</paramtype></parameter></method>
+<method name="put" cv="const"><type>OutItrT</type><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fill_char"><paramtype>char_type</paramtype></parameter><parameter name="fkb"><paramtype>const <classname>kday_before_type</classname> &amp;</paramtype></parameter></method>
+<method name="put" cv="const"><type>OutItrT</type><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fill_char"><paramtype>char_type</paramtype></parameter><parameter name="fka"><paramtype>const <classname>kday_after_type</classname> &amp;</paramtype></parameter></method>
+</method-group>
+<constructor specifiers="explicit"><parameter name="a_ref"><paramtype>::size_t</paramtype><default>0</default></parameter></constructor>
+<constructor specifiers="explicit"><parameter name="format_str"><paramtype>const char_type *</paramtype></parameter><parameter name="short_names"><paramtype>const input_collection_type &amp;</paramtype></parameter><parameter name="ref_count"><paramtype>::size_t</paramtype><default>0</default></parameter></constructor>
+<constructor specifiers="explicit"><parameter name="format_str"><paramtype>const char_type *</paramtype></parameter><parameter name="per_formatter"><paramtype><classname>period_formatter_type</classname></paramtype><default><classname alt="boost::date_time::period_formatter">period_formatter_type</classname>()</default></parameter><parameter name="sv_formatter"><paramtype><classname>special_values_formatter_type</classname></paramtype><default><classname alt="boost::date_time::special_values_formatter">special_values_formatter_type</classname>()</default></parameter><parameter name="dg_formatter"><paramtype><classname>date_gen_formatter_type</classname></paramtype><default><classname alt="boost::date_time::date_generator_formatter">date_gen_formatter_type</classname>()</default></parameter><parameter name="ref_count"><paramtype>::size_t</paramtype><default>0</default></parameter></constructor>
+<method-group name="protected member functions">
+<method name="do_put_special" cv="const" specifiers="virtual"><type>OutItrT</type><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name=""><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name=""><paramtype>char_type</paramtype></parameter><parameter name="sv"><paramtype>const boost::date_time::special_values</paramtype></parameter></method>
+<method name="do_put_tm" cv="const" specifiers="virtual"><type>OutItrT</type><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fill_char"><paramtype>char_type</paramtype></parameter><parameter name="tm_value"><paramtype>const tm &amp;</paramtype></parameter><parameter name="a_format"><paramtype>string_type</paramtype></parameter></method>
+</method-group>
+</class><class name="date_input_facet"><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="InItrT"><default>std::istreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt;</default></template-type-parameter>
+ </template><inherit access="public">facet</inherit><purpose>Input facet. </purpose><typedef name="duration_type"><type>date_type::duration_type</type></typedef>
+<typedef name="day_of_week_type"><type>date_type::day_of_week_type</type></typedef>
+<typedef name="day_type"><type>date_type::day_type</type></typedef>
+<typedef name="month_type"><type>date_type::month_type</type></typedef>
+<typedef name="year_type"><type>date_type::year_type</type></typedef>
+<typedef name="period_type"><type><classname>boost::date_time::period</classname>&lt; date_type, duration_type &gt;</type></typedef>
+<typedef name="string_type"><type>std::basic_string&lt; CharT &gt;</type></typedef>
+<typedef name="char_type"><type>CharT</type></typedef>
+<typedef name="period_parser_type"><type><classname>boost::date_time::period_parser</classname>&lt; date_type, CharT &gt;</type></typedef>
+<typedef name="special_values_parser_type"><type><classname>boost::date_time::special_values_parser</classname>&lt; date_type, CharT &gt;</type></typedef>
+<typedef name="input_collection_type"><type>std::vector&lt; std::basic_string&lt; CharT &gt; &gt;</type></typedef>
+<typedef name="format_date_parser_type"><type><classname>format_date_parser</classname>&lt; date_type, CharT &gt;</type></typedef>
+<typedef name="date_gen_parser_type"><type><classname>date_generator_parser</classname>&lt; date_type, CharT &gt;</type></typedef>
+<typedef name="partial_date_type"><type><classname>partial_date</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="nth_kday_type"><type><classname>nth_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="first_kday_type"><type><classname>first_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="last_kday_type"><type><classname>last_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="kday_after_type"><type><classname>first_kday_after</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="kday_before_type"><type><classname>first_kday_before</classname>&lt; date_type &gt;</type></typedef>
+<data-member name="long_weekday_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="short_weekday_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="long_month_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="short_month_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="four_digit_year_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="two_digit_year_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="default_period_separator" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="standard_format_specifier" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="iso_format_specifier" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="iso_format_extended_specifier" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="default_date_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="id" specifiers="static"><type>std::locale::id</type></data-member>
+<method-group name="public member functions">
+<method name="format"><type>void</type><parameter name="format_str"><paramtype>const char_type *const</paramtype></parameter></method>
+<method name="set_iso_format" specifiers="virtual"><type>void</type></method>
+<method name="set_iso_extended_format" specifiers="virtual"><type>void</type></method>
+<method name="month_format"><type>void</type><parameter name="format_str"><paramtype>const char_type *const</paramtype></parameter></method>
+<method name="weekday_format"><type>void</type><parameter name="format_str"><paramtype>const char_type *const</paramtype></parameter></method>
+<method name="year_format"><type>void</type><parameter name="format_str"><paramtype>const char_type *const</paramtype></parameter></method>
+<method name="period_parser"><type>void</type><parameter name="per_parser"><paramtype><classname>period_parser_type</classname></paramtype></parameter></method>
+<method name="short_weekday_names"><type>void</type><parameter name="weekday_names"><paramtype>const input_collection_type &amp;</paramtype></parameter></method>
+<method name="long_weekday_names"><type>void</type><parameter name="weekday_names"><paramtype>const input_collection_type &amp;</paramtype></parameter></method>
+<method name="short_month_names"><type>void</type><parameter name="month_names"><paramtype>const input_collection_type &amp;</paramtype></parameter></method>
+<method name="long_month_names"><type>void</type><parameter name="month_names"><paramtype>const input_collection_type &amp;</paramtype></parameter></method>
+<method name="date_gen_element_strings"><type>void</type><parameter name="col"><paramtype>const input_collection_type &amp;</paramtype></parameter></method>
+<method name="date_gen_element_strings"><type>void</type><parameter name="first"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="second"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="third"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="fourth"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="fifth"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="last"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="before"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="after"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="of"><paramtype>const string_type &amp;</paramtype></parameter></method>
+<method name="special_values_parser"><type>void</type><parameter name="sv_parser"><paramtype><classname>special_values_parser_type</classname></paramtype></parameter></method>
+<method name="get" cv="const"><type>InItrT</type><parameter name="from"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="to"><paramtype>InItrT &amp;</paramtype></parameter><parameter name=""><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="d"><paramtype>date_type &amp;</paramtype></parameter></method>
+<method name="get" cv="const"><type>InItrT</type><parameter name="from"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="to"><paramtype>InItrT &amp;</paramtype></parameter><parameter name=""><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="m"><paramtype>month_type &amp;</paramtype></parameter></method>
+<method name="get" cv="const"><type>InItrT</type><parameter name="from"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="to"><paramtype>InItrT &amp;</paramtype></parameter><parameter name=""><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="wd"><paramtype>day_of_week_type &amp;</paramtype></parameter></method>
+<method name="get" cv="const"><type>InItrT</type><parameter name="from"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="to"><paramtype>InItrT &amp;</paramtype></parameter><parameter name=""><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="d"><paramtype>day_type &amp;</paramtype></parameter><purpose>Expects 1 or 2 digit day range: 1-31. </purpose></method>
+<method name="get" cv="const"><type>InItrT</type><parameter name="from"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="to"><paramtype>InItrT &amp;</paramtype></parameter><parameter name=""><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="y"><paramtype>year_type &amp;</paramtype></parameter></method>
+<method name="get" cv="const"><type>InItrT</type><parameter name="from"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="to"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="dd"><paramtype>duration_type &amp;</paramtype></parameter></method>
+<method name="get" cv="const"><type>InItrT</type><parameter name="from"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="to"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="p"><paramtype><classname>period_type</classname> &amp;</paramtype></parameter></method>
+<method name="get" cv="const"><type>InItrT</type><parameter name="from"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="to"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="nkd"><paramtype><classname>nth_kday_type</classname> &amp;</paramtype></parameter></method>
+<method name="get" cv="const"><type>InItrT</type><parameter name="from"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="to"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="pd"><paramtype><classname>partial_date_type</classname> &amp;</paramtype></parameter></method>
+<method name="get" cv="const"><type>InItrT</type><parameter name="from"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="to"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fkd"><paramtype><classname>first_kday_type</classname> &amp;</paramtype></parameter></method>
+<method name="get" cv="const"><type>InItrT</type><parameter name="from"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="to"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="lkd"><paramtype><classname>last_kday_type</classname> &amp;</paramtype></parameter></method>
+<method name="get" cv="const"><type>InItrT</type><parameter name="from"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="to"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fkb"><paramtype><classname>kday_before_type</classname> &amp;</paramtype></parameter></method>
+<method name="get" cv="const"><type>InItrT</type><parameter name="from"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="to"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fka"><paramtype><classname>kday_after_type</classname> &amp;</paramtype></parameter></method>
+</method-group>
+<constructor specifiers="explicit"><parameter name="a_ref"><paramtype>::size_t</paramtype><default>0</default></parameter></constructor>
+<constructor specifiers="explicit"><parameter name="format_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="a_ref"><paramtype>::size_t</paramtype><default>0</default></parameter></constructor>
+<constructor specifiers="explicit"><parameter name="format_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="date_parser"><paramtype>const <classname>format_date_parser_type</classname> &amp;</paramtype></parameter><parameter name="sv_parser"><paramtype>const <classname>special_values_parser_type</classname> &amp;</paramtype></parameter><parameter name="per_parser"><paramtype>const <classname>period_parser_type</classname> &amp;</paramtype></parameter><parameter name="date_gen_parser"><paramtype>const <classname>date_gen_parser_type</classname> &amp;</paramtype></parameter><parameter name="ref_count"><paramtype>::size_t</paramtype><default>0</default></parameter></constructor>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/date_format_simple.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="simple_format"><template>
+ <template-type-parameter name="charT"/>
+ </template><purpose>Class to provide simple basic formatting rules. </purpose><method-group name="public static functions">
+<method name="not_a_date" specifiers="static"><type>const charT *</type><purpose>String used printed is date is invalid. </purpose></method>
+<method name="pos_infinity" specifiers="static"><type>const charT *</type><purpose>String used to for positive infinity value. </purpose></method>
+<method name="neg_infinity" specifiers="static"><type>const charT *</type><purpose>String used to for positive infinity value. </purpose></method>
+<method name="month_format" specifiers="static"><type>month_format_spec</type><purpose>Describe month format. </purpose></method>
+<method name="date_order" specifiers="static"><type>ymd_order_spec</type></method>
+<method name="has_date_sep_chars" specifiers="static"><type>bool</type><purpose>This format uses '-' to separate date elements. </purpose></method>
+<method name="year_sep_char" specifiers="static"><type>charT</type><purpose>Char to sep? </purpose></method>
+<method name="month_sep_char" specifiers="static"><type>charT</type><purpose>char between year-month </purpose></method>
+<method name="day_sep_char" specifiers="static"><type>charT</type><purpose>Char to separate month-day. </purpose></method>
+<method name="hour_sep_char" specifiers="static"><type>charT</type><purpose>char between date-hours </purpose></method>
+<method name="minute_sep_char" specifiers="static"><type>charT</type><purpose>char between hour and minute </purpose></method>
+<method name="second_sep_char" specifiers="static"><type>charT</type><purpose>char for second </purpose></method>
+</method-group>
+</class><class-specialization name="simple_format"><template>
+ </template><specialization><template-arg>wchar_t</template-arg></specialization><purpose>Specialization of formmating rules for wchar_t. </purpose><method-group name="public static functions">
+<method name="not_a_date" specifiers="static"><type>const wchar_t *</type><purpose>String used printed is date is invalid. </purpose></method>
+<method name="pos_infinity" specifiers="static"><type>const wchar_t *</type><purpose>String used to for positive infinity value. </purpose></method>
+<method name="neg_infinity" specifiers="static"><type>const wchar_t *</type><purpose>String used to for positive infinity value. </purpose></method>
+<method name="month_format" specifiers="static"><type>month_format_spec</type><purpose>Describe month format. </purpose></method>
+<method name="date_order" specifiers="static"><type>ymd_order_spec</type></method>
+<method name="has_date_sep_chars" specifiers="static"><type>bool</type><purpose>This format uses '-' to separate date elements. </purpose></method>
+<method name="year_sep_char" specifiers="static"><type>wchar_t</type><purpose>Char to sep? </purpose></method>
+<method name="month_sep_char" specifiers="static"><type>wchar_t</type><purpose>char between year-month </purpose></method>
+<method name="day_sep_char" specifiers="static"><type>wchar_t</type><purpose>Char to separate month-day. </purpose></method>
+<method name="hour_sep_char" specifiers="static"><type>wchar_t</type><purpose>char between date-hours </purpose></method>
+<method name="minute_sep_char" specifiers="static"><type>wchar_t</type><purpose>char between hour and minute </purpose></method>
+<method name="second_sep_char" specifiers="static"><type>wchar_t</type><purpose>char for second </purpose></method>
+</method-group>
+</class-specialization>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/date_formatting.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/date_formatting_limited.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="date_formatter"><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="format_type"/>
+ </template><purpose>Convert a date to string using format policies. </purpose><method-group name="public static functions">
+<method name="date_to_string" specifiers="static"><type>std::string</type><parameter name="d"><paramtype>date_type</paramtype></parameter><purpose>Convert to a date to standard string using format policies. </purpose></method>
+<method name="date_to_string" specifiers="static"><type>string_type</type><parameter name="d"><paramtype>date_type</paramtype></parameter><purpose>Convert to a date to standard string using format policies. </purpose></method>
+</method-group>
+</class><class name="month_formatter"><template>
+ <template-type-parameter name="month_type"/>
+ <template-type-parameter name="format_type"/>
+ </template><purpose>Formats a month as as string into an ostream. </purpose><method-group name="public static functions">
+<method name="format_month" specifiers="static"><type>std::ostream &amp;</type><parameter name="month"><paramtype>const month_type &amp;</paramtype></parameter><parameter name="os"><paramtype>std::ostream &amp;</paramtype></parameter><purpose>Formats a month as as string into an ostream. </purpose><description><para>This function demands that month_type provide functions for converting to short and long strings if that capability is used. </para></description></method>
+<method name="format_month" specifiers="static"><type>ostream_type &amp;</type><parameter name="month"><paramtype>const month_type &amp;</paramtype></parameter><parameter name="os"><paramtype>ostream_type &amp;</paramtype></parameter><purpose>Formats a month as as string into an ostream. </purpose><description><para>This function demands that month_type provide functions for converting to short and long strings if that capability is used. </para></description></method>
+</method-group>
+</class><class name="ymd_formatter"><template>
+ <template-type-parameter name="ymd_type"/>
+ <template-type-parameter name="format_type"/>
+ </template><purpose>Convert ymd to a standard string formatting policies. </purpose><method-group name="public static functions">
+<method name="ymd_to_string" specifiers="static"><type>std::string</type><parameter name="ymd"><paramtype>ymd_type</paramtype></parameter><purpose>Convert ymd to a standard string formatting policies. </purpose><description><para>This is standard code for handling date formatting with year-month-day based date information. This function uses the format_type to control whether the string will contain separator characters, and if so what the character will be. In addtion, it can format the month as either an integer or a string as controled by the formatting policy </para></description></method>
+<method name="ymd_to_string" specifiers="static"><type>std::basic_string&lt; charT &gt;</type><parameter name="ymd"><paramtype>ymd_type</paramtype></parameter><purpose>Convert ymd to a standard string formatting policies. </purpose><description><para>This is standard code for handling date formatting with year-month-day based date information. This function uses the format_type to control whether the string will contain separator characters, and if so what the character will be. In addtion, it can format the month as either an integer or a string as controled by the formatting policy </para></description></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/date_formatting_locales.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="ostream_date_formatter"><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="facet_type"/>
+ <template-type-parameter name="charT"><default>char</default></template-type-parameter>
+ </template><purpose>Convert a date to string using format policies. </purpose><typedef name="ostream_type"><type>std::basic_ostream&lt; charT &gt;</type></typedef>
+<typedef name="ymd_type"><type>date_type::ymd_type</type></typedef>
+<method-group name="public static functions">
+<method name="date_put" specifiers="static"><type>void</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter><parameter name="os"><paramtype>ostream_type &amp;</paramtype></parameter><parameter name="f"><paramtype>const facet_type &amp;</paramtype></parameter><purpose>Put date into an ostream. </purpose></method>
+<method name="date_put" specifiers="static"><type>void</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter><parameter name="os"><paramtype>ostream_type &amp;</paramtype></parameter><purpose>Put date into an ostream. </purpose></method>
+</method-group>
+</class><class name="ostream_month_formatter"><template>
+ <template-type-parameter name="facet_type"/>
+ <template-type-parameter name="charT"><default>char</default></template-type-parameter>
+ </template><purpose>Formats a month as as string into an ostream. </purpose><typedef name="month_type"><type>facet_type::month_type</type></typedef>
+<typedef name="ostream_type"><type>std::basic_ostream&lt; charT &gt;</type></typedef>
+<method-group name="public static functions">
+<method name="format_month" specifiers="static"><type>void</type><parameter name="month"><paramtype>const month_type &amp;</paramtype></parameter><parameter name="os"><paramtype>ostream_type &amp;</paramtype></parameter><parameter name="f"><paramtype>const facet_type &amp;</paramtype></parameter><purpose>Formats a month as as string into an output iterator. </purpose></method>
+</method-group>
+</class><class name="ostream_weekday_formatter"><template>
+ <template-type-parameter name="weekday_type"/>
+ <template-type-parameter name="facet_type"/>
+ <template-type-parameter name="charT"><default>char</default></template-type-parameter>
+ </template><purpose>Formats a weekday. </purpose><typedef name="month_type"><type>facet_type::month_type</type></typedef>
+<typedef name="ostream_type"><type>std::basic_ostream&lt; charT &gt;</type></typedef>
+<method-group name="public static functions">
+<method name="format_weekday" specifiers="static"><type>void</type><parameter name="wd"><paramtype>const weekday_type &amp;</paramtype></parameter><parameter name="os"><paramtype>ostream_type &amp;</paramtype></parameter><parameter name="f"><paramtype>const facet_type &amp;</paramtype></parameter><parameter name="as_long_string"><paramtype>bool</paramtype></parameter><purpose>Formats a month as as string into an output iterator. </purpose></method>
+</method-group>
+</class><class name="ostream_ymd_formatter"><template>
+ <template-type-parameter name="ymd_type"/>
+ <template-type-parameter name="facet_type"/>
+ <template-type-parameter name="charT"><default>char</default></template-type-parameter>
+ </template><purpose>Convert ymd to a standard string formatting policies. </purpose><typedef name="month_type"><type>ymd_type::month_type</type></typedef>
+<typedef name="month_formatter_type"><type><classname>ostream_month_formatter</classname>&lt; facet_type, charT &gt;</type></typedef>
+<typedef name="ostream_type"><type>std::basic_ostream&lt; charT &gt;</type></typedef>
+<typedef name="foo_type"><type>std::basic_string&lt; charT &gt;</type></typedef>
+<method-group name="public static functions">
+<method name="ymd_put" specifiers="static"><type>void</type><parameter name="ymd"><paramtype>ymd_type</paramtype></parameter><parameter name="os"><paramtype>ostream_type &amp;</paramtype></parameter><parameter name="f"><paramtype>const facet_type &amp;</paramtype></parameter><purpose>Convert ymd to a standard string formatting policies. </purpose><description><para>This is standard code for handling date formatting with year-month-day based date information. This function uses the format_type to control whether the string will contain separator characters, and if so what the character will be. In addtion, it can format the month as either an integer or a string as controled by the formatting policy </para></description></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/date_generator_formatter.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="date_generator_formatter"><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="OutItrT"><default>std::ostreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt;</default></template-type-parameter>
+ </template><purpose>Formats date_generators for output. </purpose><description><para>Formatting of date_generators follows specific orders for the various types of date_generators.<itemizedlist>
+<listitem><para><classname alt="boost::date_time::partial_date">partial_date</classname> =&gt; "dd Month"</para>
+</listitem><listitem><para>nth_day_of_the_week_in_month =&gt; "nth weekday of month"</para>
+</listitem><listitem><para>first_day_of_the_week_in_month =&gt; "first weekday of month"</para>
+</listitem><listitem><para>last_day_of_the_week_in_month =&gt; "last weekday of month"</para>
+</listitem><listitem><para>first_day_of_the_week_after =&gt; "weekday after"</para>
+</listitem><listitem><para>first_day_of_the_week_before =&gt; "weekday before" While the order of the elements in these phrases cannot be changed, the elements themselves can be. Weekday and Month get their formats and names from the <classname alt="boost::date_time::date_facet">date_facet</classname>. The remaining elements are stored in the <classname alt="boost::date_time::date_generator_formatter">date_generator_formatter</classname> and can be customized upon construction or via a member function. The default elements are those shown in the examples above. </para>
+</listitem></itemizedlist>
+</para></description><enum name="phrase_elements"><enumvalue name="first"><default>=0</default></enumvalue><enumvalue name="second"/><enumvalue name="third"/><enumvalue name="fourth"/><enumvalue name="fifth"/><enumvalue name="last"/><enumvalue name="before"/><enumvalue name="after"/><enumvalue name="of"/><enumvalue name="number_of_phrase_elements"/></enum>
+<typedef name="partial_date_type"><type><classname>partial_date</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="nth_kday_type"><type><classname>nth_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="first_kday_type"><type><classname>first_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="last_kday_type"><type><classname>last_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="kday_after_type"><type><classname>first_kday_after</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="kday_before_type"><type><classname>first_kday_before</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="char_type"><type>CharT</type></typedef>
+<typedef name="string_type"><type>std::basic_string&lt; char_type &gt;</type></typedef>
+<typedef name="collection_type"><type>std::vector&lt; string_type &gt;</type></typedef>
+<data-member name="first_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="second_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="third_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="fourth_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="fifth_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="last_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="before_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="after_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="of_string" specifiers="static"><type>const char_type</type></data-member>
+<method-group name="public member functions">
+<method name="elements"><type>void</type><parameter name="new_strings"><paramtype>const collection_type &amp;</paramtype></parameter><parameter name="beg_pos"><paramtype>phrase_elements</paramtype><default>first</default></parameter><purpose>Replace the set of phrase elements with those contained in new_strings. </purpose><description><para>The order of the strings in the given collection is important. They must follow:<itemizedlist>
+<listitem><para>first, second, third, fourth, fifth, last, before, after, of.</para>
+</listitem></itemizedlist>
+</para><para>It is not necessary to send in a complete set if only a few elements are to be replaced as long as the correct beg_pos is used.</para><para>Ex: To keep the default first through fifth elements, but replace the rest with a collection of:<itemizedlist>
+<listitem><para>"final", "prior", "following", "in". The beg_pos of date_generator_formatter::last would be used. </para>
+</listitem></itemizedlist>
+</para></description></method>
+<method name="put_partial_date" cv="const"><type>OutItrT</type><template>
+ <template-type-parameter name="facet_type"/>
+ </template><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="a_fill"><paramtype>CharT</paramtype></parameter><parameter name="pd"><paramtype>const <classname>partial_date_type</classname> &amp;</paramtype></parameter><parameter name="facet"><paramtype>const facet_type &amp;</paramtype></parameter><purpose>Put a <classname alt="boost::date_time::partial_date">partial_date</classname> =&gt; "dd Month". </purpose></method>
+<method name="put_nth_kday" cv="const"><type>OutItrT</type><template>
+ <template-type-parameter name="facet_type"/>
+ </template><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="a_fill"><paramtype>CharT</paramtype></parameter><parameter name="nkd"><paramtype>const <classname>nth_kday_type</classname> &amp;</paramtype></parameter><parameter name="facet"><paramtype>const facet_type &amp;</paramtype></parameter><purpose>Put an nth_day_of_the_week_in_month =&gt; "nth weekday of month". </purpose></method>
+<method name="put_first_kday" cv="const"><type>OutItrT</type><template>
+ <template-type-parameter name="facet_type"/>
+ </template><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="a_fill"><paramtype>CharT</paramtype></parameter><parameter name="fkd"><paramtype>const <classname>first_kday_type</classname> &amp;</paramtype></parameter><parameter name="facet"><paramtype>const facet_type &amp;</paramtype></parameter><purpose>Put a first_day_of_the_week_in_month =&gt; "first weekday of month". </purpose></method>
+<method name="put_last_kday" cv="const"><type>OutItrT</type><template>
+ <template-type-parameter name="facet_type"/>
+ </template><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="a_fill"><paramtype>CharT</paramtype></parameter><parameter name="lkd"><paramtype>const <classname>last_kday_type</classname> &amp;</paramtype></parameter><parameter name="facet"><paramtype>const facet_type &amp;</paramtype></parameter><purpose>Put a last_day_of_the_week_in_month =&gt; "last weekday of month". </purpose></method>
+<method name="put_kday_before" cv="const"><type>OutItrT</type><template>
+ <template-type-parameter name="facet_type"/>
+ </template><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="a_fill"><paramtype>CharT</paramtype></parameter><parameter name="fkb"><paramtype>const <classname>kday_before_type</classname> &amp;</paramtype></parameter><parameter name="facet"><paramtype>const facet_type &amp;</paramtype></parameter><purpose>Put a first_day_of_the_week_before =&gt; "weekday before". </purpose></method>
+<method name="put_kday_after" cv="const"><type>OutItrT</type><template>
+ <template-type-parameter name="facet_type"/>
+ </template><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="a_fill"><paramtype>CharT</paramtype></parameter><parameter name="fka"><paramtype>const <classname>kday_after_type</classname> &amp;</paramtype></parameter><parameter name="facet"><paramtype>const facet_type &amp;</paramtype></parameter><purpose>Put a first_day_of_the_week_after =&gt; "weekday after". </purpose></method>
+</method-group>
+<constructor><purpose>Default format elements used. </purpose></constructor>
+<constructor><parameter name="first_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="second_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="third_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="fourth_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="fifth_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="last_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="before_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="after_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="of_str"><paramtype>const string_type &amp;</paramtype></parameter><purpose>Constructor that allows for a custom set of phrase elements. </purpose></constructor>
+<method-group name="private member functions">
+<method name="put_string" cv="const"><type>OutItrT</type><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="str"><paramtype>const string_type &amp;</paramtype></parameter><purpose>helper function to put the various member string into stream </purpose></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/date_generator_parser.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="date_generator_parser"><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="charT"/>
+ </template><purpose>Class for date_generator parsing. </purpose><description><para>The elements of a date_generator "phrase" are parsed from the input stream in a particular order. All elements are required and the order in which they appear cannot change, however, the elements themselves can be changed. The default elements and their order are as follows:</para><para><itemizedlist>
+<listitem><para><classname alt="boost::date_time::partial_date">partial_date</classname> =&gt; "dd Month"</para>
+</listitem><listitem><para>nth_day_of_the_week_in_month =&gt; "nth weekday of month"</para>
+</listitem><listitem><para>first_day_of_the_week_in_month =&gt; "first weekday of month"</para>
+</listitem><listitem><para>last_day_of_the_week_in_month =&gt; "last weekday of month"</para>
+</listitem><listitem><para>first_day_of_the_week_after =&gt; "weekday after"</para>
+</listitem><listitem><para>first_day_of_the_week_before =&gt; "weekday before"</para>
+</listitem></itemizedlist>
+</para><para>Weekday and Month names and formats are handled via the <classname alt="boost::date_time::date_input_facet">date_input_facet</classname>. </para></description><enum name="phrase_elements"><enumvalue name="first"><default>=0</default></enumvalue><enumvalue name="second"/><enumvalue name="third"/><enumvalue name="fourth"/><enumvalue name="fifth"/><enumvalue name="last"/><enumvalue name="before"/><enumvalue name="after"/><enumvalue name="of"/><enumvalue name="number_of_phrase_elements"/></enum>
+<typedef name="string_type"><type>std::basic_string&lt; charT &gt;</type></typedef>
+<typedef name="stream_itr_type"><type>std::istreambuf_iterator&lt; charT &gt;</type></typedef>
+<typedef name="month_type"><type>date_type::month_type</type></typedef>
+<typedef name="day_of_week_type"><type>date_type::day_of_week_type</type></typedef>
+<typedef name="day_type"><type>date_type::day_type</type></typedef>
+<typedef name="parse_tree_type"><type><classname>string_parse_tree</classname>&lt; charT &gt;</type></typedef>
+<typedef name="match_results"><type><classname>parse_tree_type::parse_match_result_type</classname></type></typedef>
+<typedef name="collection_type"><type>std::vector&lt; std::basic_string&lt; charT &gt; &gt;</type></typedef>
+<typedef name="partial_date_type"><type><classname>partial_date</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="nth_kday_type"><type><classname>nth_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="first_kday_type"><type><classname>first_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="last_kday_type"><type><classname>last_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="kday_after_type"><type><classname>first_kday_after</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="kday_before_type"><type><classname>first_kday_before</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="char_type"><type>charT</type></typedef>
+<data-member name="first_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="second_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="third_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="fourth_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="fifth_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="last_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="before_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="after_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="of_string" specifiers="static"><type>const char_type</type></data-member>
+<method-group name="public member functions">
+<method name="element_strings"><type>void</type><parameter name="first_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="second_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="third_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="fourth_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="fifth_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="last_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="before_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="after_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="of_str"><paramtype>const string_type &amp;</paramtype></parameter><purpose>Replace strings that determine nth week for generator. </purpose></method>
+<method name="element_strings"><type>void</type><parameter name="col"><paramtype>const collection_type &amp;</paramtype></parameter></method>
+<method name="get_partial_date_type" cv="const"><type><classname>partial_date_type</classname></type><template>
+ <template-type-parameter name="facet_type"/>
+ </template><parameter name="sitr"><paramtype>stream_itr_type &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>stream_itr_type &amp;</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="facet"><paramtype>const facet_type &amp;</paramtype></parameter><purpose>returns <classname alt="boost::date_time::partial_date">partial_date</classname> parsed from stream </purpose></method>
+<method name="get_nth_kday_type" cv="const"><type><classname>nth_kday_type</classname></type><template>
+ <template-type-parameter name="facet_type"/>
+ </template><parameter name="sitr"><paramtype>stream_itr_type &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>stream_itr_type &amp;</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="facet"><paramtype>const facet_type &amp;</paramtype></parameter><purpose>returns nth_kday_of_week parsed from stream </purpose></method>
+<method name="get_first_kday_type" cv="const"><type><classname>first_kday_type</classname></type><template>
+ <template-type-parameter name="facet_type"/>
+ </template><parameter name="sitr"><paramtype>stream_itr_type &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>stream_itr_type &amp;</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="facet"><paramtype>const facet_type &amp;</paramtype></parameter><purpose>returns first_kday_of_week parsed from stream </purpose></method>
+<method name="get_last_kday_type" cv="const"><type><classname>last_kday_type</classname></type><template>
+ <template-type-parameter name="facet_type"/>
+ </template><parameter name="sitr"><paramtype>stream_itr_type &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>stream_itr_type &amp;</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="facet"><paramtype>const facet_type &amp;</paramtype></parameter><purpose>returns last_kday_of_week parsed from stream </purpose></method>
+<method name="get_kday_before_type" cv="const"><type><classname>kday_before_type</classname></type><template>
+ <template-type-parameter name="facet_type"/>
+ </template><parameter name="sitr"><paramtype>stream_itr_type &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>stream_itr_type &amp;</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="facet"><paramtype>const facet_type &amp;</paramtype></parameter><purpose>returns first_kday_of_week parsed from stream </purpose></method>
+<method name="get_kday_after_type" cv="const"><type><classname>kday_after_type</classname></type><template>
+ <template-type-parameter name="facet_type"/>
+ </template><parameter name="sitr"><paramtype>stream_itr_type &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>stream_itr_type &amp;</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="facet"><paramtype>const facet_type &amp;</paramtype></parameter><purpose>returns first_kday_of_week parsed from stream </purpose></method>
+</method-group>
+<constructor><purpose>Creates a <classname alt="boost::date_time::date_generator_parser">date_generator_parser</classname> with the default set of "element_strings". </purpose></constructor>
+<constructor><parameter name="first_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="second_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="third_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="fourth_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="fifth_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="last_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="before_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="after_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="of_str"><paramtype>const string_type &amp;</paramtype></parameter><purpose>Creates a <classname alt="boost::date_time::date_generator_parser">date_generator_parser</classname> using a user defined set of element strings. </purpose></constructor>
+<method-group name="private member functions">
+<method name="extract_element" cv="const"><type>void</type><parameter name="sitr"><paramtype>stream_itr_type &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>stream_itr_type &amp;</paramtype></parameter><parameter name="ele"><paramtype>typename date_generator_parser::phrase_elements</paramtype></parameter><purpose>Extracts phrase element from input. Throws ios_base::failure on error. </purpose></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/date_generators.hpp">
+<para>Definition and implementation of date algorithm templates </para><namespace name="boost">
+<namespace name="date_time">
+<class name="first_kday_after"><template>
+ <template-type-parameter name="date_type"/>
+ </template><purpose>Calculate something like "First Sunday after Jan 1,2002. </purpose><description><para>Date generator that takes a date and finds kday after <programlisting language="c++">typedef boost::date_time::first_kday_after&lt;date&gt; firstkdayafter;
+firstkdayafter fkaf(Monday);
+fkaf.get_date(date(2002,Feb,1));
+</programlisting> </para></description><typedef name="calendar_type"><type>date_type::calendar_type</type></typedef>
+<typedef name="day_of_week_type"><type>calendar_type::day_of_week_type</type></typedef>
+<typedef name="duration_type"><type>date_type::duration_type</type></typedef>
+<method-group name="public member functions">
+<method name="get_date" cv="const"><type>date_type</type><parameter name="start_day"><paramtype>date_type</paramtype></parameter><purpose>Return next kday given. </purpose></method>
+<method name="day_of_week" cv="const"><type>day_of_week_type</type></method>
+</method-group>
+<constructor><parameter name="dow"><paramtype>day_of_week_type</paramtype></parameter></constructor>
+</class><class name="first_kday_before"><template>
+ <template-type-parameter name="date_type"/>
+ </template><purpose>Calculate something like "First Sunday before Jan 1,2002. </purpose><description><para>Date generator that takes a date and finds kday after <programlisting language="c++">typedef boost::date_time::first_kday_before&lt;date&gt; firstkdaybefore;
+firstkdaybefore fkbf(Monday);
+fkbf.get_date(date(2002,Feb,1));
+</programlisting> </para></description><typedef name="calendar_type"><type>date_type::calendar_type</type></typedef>
+<typedef name="day_of_week_type"><type>calendar_type::day_of_week_type</type></typedef>
+<typedef name="duration_type"><type>date_type::duration_type</type></typedef>
+<method-group name="public member functions">
+<method name="get_date" cv="const"><type>date_type</type><parameter name="start_day"><paramtype>date_type</paramtype></parameter><purpose>Return next kday given. </purpose></method>
+<method name="day_of_week" cv="const"><type>day_of_week_type</type></method>
+</method-group>
+<constructor><parameter name="dow"><paramtype>day_of_week_type</paramtype></parameter></constructor>
+</class><class name="first_kday_of_month"><template>
+ <template-type-parameter name="date_type"/>
+ </template><inherit access="public">boost::date_time::year_based_generator&lt; date_type &gt;</inherit><purpose>Useful generator functor for finding holidays and daylight savings. </purpose><description><para>Similar to <classname alt="boost::date_time::nth_kday_of_month">nth_kday_of_month</classname>, but requires less paramters </para></description><typedef name="calendar_type"><type>date_type::calendar_type</type></typedef>
+<typedef name="day_of_week_type"><type>calendar_type::day_of_week_type</type></typedef>
+<typedef name="month_type"><type>calendar_type::month_type</type></typedef>
+<typedef name="year_type"><type>calendar_type::year_type</type></typedef>
+<typedef name="duration_type"><type>date_type::duration_type</type></typedef>
+<method-group name="public member functions">
+<method name="get_date" cv="const" specifiers="virtual"><type>date_type</type><parameter name="year"><paramtype>year_type</paramtype></parameter><purpose>Return a concrete date when provided with a year specific year. </purpose></method>
+<method name="month" cv="const"><type>month_type</type></method>
+<method name="day_of_week" cv="const"><type>day_of_week_type</type></method>
+<method name="to_string" cv="const" specifiers="virtual"><type>std::string</type><purpose>Returns string suitable for use in POSIX time zone string. </purpose><description><para>Returns a string formatted as "M4.1.0" ==&gt; 1st Sunday in April. </para></description></method>
+</method-group>
+<constructor><parameter name="dow"><paramtype>day_of_week_type</paramtype><description><para>The day of week, eg: Sunday, Monday, etc </para></description></parameter><parameter name="m"><paramtype>month_type</paramtype><description><para>The month of the year, eg: Jan, Feb, Mar, etc </para></description></parameter><purpose>Specify the first 'Sunday' in 'April' spec. </purpose><description><para>
+</para></description></constructor>
+</class><class name="last_kday_of_month"><template>
+ <template-type-parameter name="date_type"><purpose><para>A date class that exports day_of_week, month_type, etc. </para></purpose></template-type-parameter>
+ </template><inherit access="public">boost::date_time::year_based_generator&lt; date_type &gt;</inherit><purpose>Calculate something like Last Sunday of January. </purpose><description><para>Useful generator functor for finding holidays and daylight savings Get the last day of the month and then calculate the difference to the last previous day.
+</para></description><typedef name="calendar_type"><type>date_type::calendar_type</type></typedef>
+<typedef name="day_of_week_type"><type>calendar_type::day_of_week_type</type></typedef>
+<typedef name="month_type"><type>calendar_type::month_type</type></typedef>
+<typedef name="year_type"><type>calendar_type::year_type</type></typedef>
+<typedef name="duration_type"><type>date_type::duration_type</type></typedef>
+<method-group name="public member functions">
+<method name="get_date" cv="const" specifiers="virtual"><type>date_type</type><parameter name="year"><paramtype>year_type</paramtype></parameter><purpose>Return a concrete date when provided with a year specific year. </purpose></method>
+<method name="month" cv="const"><type>month_type</type></method>
+<method name="day_of_week" cv="const"><type>day_of_week_type</type></method>
+<method name="to_string" cv="const" specifiers="virtual"><type>std::string</type><purpose>Returns string suitable for use in POSIX time zone string. </purpose><description><para>Returns a string formatted as "M4.5.0" ==&gt; last Sunday in April. </para></description></method>
+</method-group>
+<constructor><parameter name="dow"><paramtype>day_of_week_type</paramtype><description><para>The day of week, eg: Sunday, Monday, etc </para></description></parameter><parameter name="m"><paramtype>month_type</paramtype><description><para>The month of the year, eg: Jan, Feb, Mar, etc </para></description></parameter><purpose>Specify the date spec like last 'Sunday' in 'April' spec. </purpose><description><para>
+</para></description></constructor>
+</class><class name="nth_kday_of_month"><template>
+ <template-type-parameter name="date_type"/>
+ </template><inherit access="public">boost::date_time::year_based_generator&lt; date_type &gt;</inherit><purpose>Useful generator functor for finding holidays. </purpose><description><para>Based on the idea in Cal. Calc. for finding holidays that are the 'first Monday of September'. When instantiated with 'fifth' kday of month, the result will be the last kday of month which can be the fourth or fifth depending on the structure of the month.</para><para>The algorithm here basically guesses for the first day of the month. Then finds the first day of the correct type. That is, if the first of the month is a Tuesday and it needs Wenesday then we simply increment by a day and then we can add the length of a week until we get to the 'nth kday'. There are probably more efficient algorithms based on using a mod 7, but this one works reasonably well for basic applications. </para></description><enum name="week_num"><enumvalue name="first"><default>=1</default></enumvalue><enumvalue name="second"/><enumvalue name="third"/><enumvalue name="fourth"/><enumvalue name="fifth"/></enum>
+<typedef name="calendar_type"><type>date_type::calendar_type</type></typedef>
+<typedef name="day_of_week_type"><type>calendar_type::day_of_week_type</type></typedef>
+<typedef name="month_type"><type>calendar_type::month_type</type></typedef>
+<typedef name="year_type"><type>calendar_type::year_type</type></typedef>
+<typedef name="duration_type"><type>date_type::duration_type</type></typedef>
+<method-group name="public member functions">
+<method name="get_date" cv="const" specifiers="virtual"><type>date_type</type><parameter name="y"><paramtype>year_type</paramtype></parameter><purpose>Return a concrete date when provided with a year specific year. </purpose></method>
+<method name="month" cv="const"><type>month_type</type></method>
+<method name="nth_week" cv="const"><type>week_num</type></method>
+<method name="day_of_week" cv="const"><type>day_of_week_type</type></method>
+<method name="nth_week_as_str" cv="const"><type>const char *</type></method>
+<method name="to_string" cv="const" specifiers="virtual"><type>std::string</type><purpose>Returns string suitable for use in POSIX time zone string. </purpose><description><para>Returns a string formatted as "M4.3.0" ==&gt; 3rd Sunday in April. </para></description></method>
+</method-group>
+<constructor><parameter name="week_no"><paramtype>week_num</paramtype></parameter><parameter name="dow"><paramtype>day_of_week_type</paramtype></parameter><parameter name="m"><paramtype>month_type</paramtype></parameter></constructor>
+</class><class name="partial_date"><template>
+ <template-type-parameter name="date_type"/>
+ </template><inherit access="public">boost::date_time::year_based_generator&lt; date_type &gt;</inherit><purpose>Generates a date by applying the year to the given month and day. </purpose><description><para>Example usage: <programlisting language="c++">partial_date pd(1, Jan);
+partial_date pd2(70);
+date d = pd.get_date(2002); //2002-Jan-01
+date d2 = pd2.get_date(2002); //2002-Mar-10
+</programlisting> </para></description><typedef name="calendar_type"><type>date_type::calendar_type</type></typedef>
+<typedef name="day_type"><type>calendar_type::day_type</type></typedef>
+<typedef name="month_type"><type>calendar_type::month_type</type></typedef>
+<typedef name="year_type"><type>calendar_type::year_type</type></typedef>
+<typedef name="duration_type"><type>date_type::duration_type</type></typedef>
+<typedef name="duration_rep"><type>duration_type::duration_rep</type></typedef>
+<method-group name="public member functions">
+<method name="get_date" cv="const" specifiers="virtual"><type>date_type</type><parameter name="y"><paramtype>year_type</paramtype></parameter><purpose>Return a concrete date when provided with a year specific year. </purpose><description><para>Will throw an 'invalid_argument' exception if a <classname alt="boost::date_time::partial_date">partial_date</classname> object, instantiated with Feb-29, has get_date called with a non-leap year. Example: <programlisting language="c++">partial_date pd(29, Feb);
+pd.get_date(2003); // throws invalid_argument exception
+pg.get_date(2000); // returns 2000-2-29
+</programlisting> </para></description></method>
+<method name="operator()" cv="const"><type>date_type</type><parameter name="y"><paramtype>year_type</paramtype></parameter></method>
+<method name="operator==" cv="const"><type>bool</type><parameter name="rhs"><paramtype>const <classname>partial_date</classname> &amp;</paramtype></parameter></method>
+<method name="operator&lt;" cv="const"><type>bool</type><parameter name="rhs"><paramtype>const <classname>partial_date</classname> &amp;</paramtype></parameter></method>
+<method name="month" cv="const"><type>month_type</type></method>
+<method name="day" cv="const"><type>day_type</type></method>
+<method name="to_string" cv="const" specifiers="virtual"><type>std::string</type><purpose>Returns string suitable for use in POSIX time zone string. </purpose><description><para>Returns string formatted with up to 3 digits: Jan-01 == "0" Feb-29 == "58" Dec-31 == "365" </para></description></method>
+</method-group>
+<constructor><parameter name="d"><paramtype>day_type</paramtype></parameter><parameter name="m"><paramtype>month_type</paramtype></parameter></constructor>
+<constructor><parameter name="days"><paramtype>duration_rep</paramtype></parameter><purpose>Partial date created from number of days into year. Range 1-366. </purpose><description><para>Allowable values range from 1 to 366. 1=Jan1, 366=Dec31. If argument exceeds range, <classname alt="boost::date_time::partial_date">partial_date</classname> will be created with closest in-range value. 60 will always be Feb29, if get_date() is called with a non-leap year an exception will be thrown </para></description></constructor>
+</class><class name="year_based_generator"><template>
+ <template-type-parameter name="date_type"><purpose><para>The type representing a date. This type must export a calender_type which defines a year_type. </para></purpose></template-type-parameter>
+ </template><purpose>Base class for all generators that take a year and produce a date. </purpose><description><para>This class is a base class for polymorphic function objects that take a year and produce a concrete date.
+</para></description><typedef name="calendar_type"><type>date_type::calendar_type</type></typedef>
+<typedef name="year_type"><type>calendar_type::year_type</type></typedef>
+<method-group name="public member functions">
+<method name="get_date" cv="const = 0" specifiers="virtual"><type>date_type</type><parameter name="y"><paramtype>year_type</paramtype></parameter></method>
+<method name="to_string" cv="const = 0" specifiers="virtual"><type>std::string</type><purpose>Returns a string for use in a POSIX time_zone string. </purpose></method>
+</method-group>
+<constructor/>
+<destructor/>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<function name="nth_as_str"><type>const char *</type><parameter name="ele"><paramtype>int</paramtype></parameter><purpose>Returns nth arg as string. 1 -&gt; "first", 2 -&gt; "second", max is 5. </purpose></function>
+<function name="days_until_weekday"><type>date_type::duration_type</type><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="weekday_type"/>
+ </template><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter><parameter name="wd"><paramtype>const weekday_type &amp;</paramtype></parameter><purpose>Calculates the number of days until the next weekday. </purpose><description><para>Calculates the number of days until the next weekday. If the date given falls on a Sunday and the given weekday is Tuesday the result will be 2 days </para></description></function>
+<function name="days_before_weekday"><type>date_type::duration_type</type><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="weekday_type"/>
+ </template><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter><parameter name="wd"><paramtype>const weekday_type &amp;</paramtype></parameter><purpose>Calculates the number of days since the previous weekday. </purpose><description><para>Calculates the number of days since the previous weekday If the date given falls on a Sunday and the given weekday is Tuesday the result will be 5 days. The answer will be a positive number because Tuesday is 5 days before Sunday, not -5 days before. </para></description></function>
+<function name="next_weekday"><type>date_type</type><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="weekday_type"/>
+ </template><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter><parameter name="wd"><paramtype>const weekday_type &amp;</paramtype></parameter><purpose>Generates a date object representing the date of the following weekday from the given date. </purpose><description><para>Generates a date object representing the date of the following weekday from the given date. If the date given is 2004-May-9 (a Sunday) and the given weekday is Tuesday then the resulting date will be 2004-May-11. </para></description></function>
+<function name="previous_weekday"><type>date_type</type><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="weekday_type"/>
+ </template><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter><parameter name="wd"><paramtype>const weekday_type &amp;</paramtype></parameter><purpose>Generates a date object representing the date of the previous weekday from the given date. </purpose><description><para>Generates a date object representing the date of the previous weekday from the given date. If the date given is 2004-May-9 (a Sunday) and the given weekday is Tuesday then the resulting date will be 2004-May-4. </para></description></function>
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/date_iterator.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="date_itr"><template>
+ <template-type-parameter name="offset_functor"/>
+ <template-type-parameter name="date_type"/>
+ </template><inherit access="public">boost::date_time::date_itr_base&lt; date_type &gt;</inherit><purpose>Overrides the base date iterator providing hook for functors. </purpose><typedef name="duration_type"><type>date_type::duration_type</type></typedef>
+<method-group name="public member functions">
+</method-group>
+<constructor><parameter name="d"><paramtype>date_type</paramtype></parameter><parameter name="factor"><paramtype>int</paramtype><default>1</default></parameter></constructor>
+<method-group name="private member functions">
+<method name="get_offset" cv="const" specifiers="virtual"><type>duration_type</type><parameter name="current"><paramtype>const date_type &amp;</paramtype></parameter></method>
+<method name="get_neg_offset" cv="const" specifiers="virtual"><type>duration_type</type><parameter name="current"><paramtype>const date_type &amp;</paramtype></parameter></method>
+</method-group>
+</class><class name="date_itr_base"><template>
+ <template-type-parameter name="date_type"/>
+ </template><purpose>Base date iterator type. </purpose><description><para>This class provides the skeleton for the creation of iterators. New and interesting interators can be created by plugging in a new function that derives the next value from the current state. generation of various types of -based information.</para><para><emphasis role="bold">Template Parameters</emphasis></para><para><emphasis role="bold">date_type</emphasis></para><para>The date_type is a concrete date_type. The date_type must define a duration_type and a calendar_type. </para></description><typedef name="duration_type"><type>date_type::duration_type</type></typedef>
+<typedef name="value_type"><type>date_type</type></typedef>
+<typedef name="iterator_category"><type>std::input_iterator_tag</type></typedef>
+<method-group name="public member functions">
+<method name="operator++"><type><classname>date_itr_base</classname> &amp;</type></method>
+<method name="operator--"><type><classname>date_itr_base</classname> &amp;</type></method>
+<method name="get_offset" cv="const = 0" specifiers="virtual"><type>duration_type</type><parameter name="current"><paramtype>const date_type &amp;</paramtype></parameter></method>
+<method name="get_neg_offset" cv="const = 0" specifiers="virtual"><type>duration_type</type><parameter name="current"><paramtype>const date_type &amp;</paramtype></parameter></method>
+<method name="operator *"><type>date_type</type></method>
+<method name="operator-&gt;"><type>date_type *</type></method>
+<method name="operator&lt;"><type>bool</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter></method>
+<method name="operator&lt;="><type>bool</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter></method>
+<method name="operator&gt;"><type>bool</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter></method>
+<method name="operator&gt;="><type>bool</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter></method>
+<method name="operator=="><type>bool</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter></method>
+<method name="operator!="><type>bool</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter></method>
+</method-group>
+<constructor><parameter name="d"><paramtype>date_type</paramtype></parameter></constructor>
+<destructor/>
+</class><enum name="date_resolutions"><enumvalue name="day"/><enumvalue name="week"/><enumvalue name="months"/><enumvalue name="year"/><enumvalue name="decade"/><enumvalue name="century"/><enumvalue name="NumDateResolutions"/><purpose>An iterator over dates with varying resolution (day, week, month, year, etc) </purpose></enum>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/date_names_put.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="all_date_names_put"><template>
+ <template-type-parameter name="Config"/>
+ <template-type-parameter name="charT"><default>char</default></template-type-parameter>
+ <template-type-parameter name="OutputIterator"><default>std::ostreambuf_iterator&lt;charT&gt;</default></template-type-parameter>
+ </template><inherit access="public">boost::date_time::date_names_put&lt; Config, charT, OutputIterator &gt;</inherit><purpose>A date name output facet that takes an array of char* to define strings. </purpose><typedef name="iter_type"><type>OutputIterator</type></typedef>
+<typedef name="month_enum"><type>Config::month_enum</type></typedef>
+<typedef name="weekday_enum"><type>Config::weekday_enum</type></typedef>
+<typedef name="special_value_enum"><type>Config::special_value_enum</type></typedef>
+<method-group name="public member functions">
+<method name="get_short_month_names" cv="const"><type>const charT *const *</type></method>
+<method name="get_long_month_names" cv="const"><type>const charT *const *</type></method>
+<method name="get_special_value_names" cv="const"><type>const charT *const *</type></method>
+<method name="get_short_weekday_names" cv="const"><type>const charT *const *</type></method>
+<method name="get_long_weekday_names" cv="const"><type>const charT *const *</type></method>
+</method-group>
+<constructor><parameter name="month_short_names"><paramtype>const charT *const</paramtype></parameter><parameter name="month_long_names"><paramtype>const charT *const</paramtype></parameter><parameter name="special_value_names"><paramtype>const charT *const</paramtype></parameter><parameter name="weekday_short_names"><paramtype>const charT *const</paramtype></parameter><parameter name="weekday_long_names"><paramtype>const charT *const</paramtype></parameter><parameter name="separator_char"><paramtype>charT</paramtype><default>'-'</default></parameter><parameter name="order_spec"><paramtype>ymd_order_spec</paramtype><default>ymd_order_iso</default></parameter><parameter name="month_format"><paramtype>month_format_spec</paramtype><default>month_as_short_string</default></parameter></constructor>
+<method-group name="protected member functions">
+<method name="do_put_month_short" cv="const" specifiers="virtual"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><parameter name="moy"><paramtype>month_enum</paramtype></parameter><purpose>Generic facet that takes array of chars. </purpose></method>
+<method name="do_put_month_long" cv="const" specifiers="virtual"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><parameter name="moy"><paramtype>month_enum</paramtype></parameter><purpose>Long month names. </purpose></method>
+<method name="do_put_special_value" cv="const" specifiers="virtual"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><parameter name="sv"><paramtype>special_value_enum</paramtype></parameter><purpose>Special values names. </purpose></method>
+<method name="do_put_weekday_short" cv="const" specifiers="virtual"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><parameter name="wd"><paramtype>weekday_enum</paramtype></parameter></method>
+<method name="do_put_weekday_long" cv="const" specifiers="virtual"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><parameter name="wd"><paramtype>weekday_enum</paramtype></parameter></method>
+<method name="do_month_sep_char" cv="const" specifiers="virtual"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><purpose>char between year-month </purpose></method>
+<method name="do_day_sep_char" cv="const" specifiers="virtual"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><purpose>Char to separate month-day. </purpose></method>
+<method name="do_date_order" cv="const" specifiers="virtual"><type>ymd_order_spec</type><purpose>Set the date ordering. </purpose></method>
+<method name="do_month_format" cv="const" specifiers="virtual"><type>month_format_spec</type><purpose>Set the date ordering. </purpose></method>
+</method-group>
+</class><class name="date_names_put"><template>
+ <template-type-parameter name="Config"/>
+ <template-type-parameter name="charT"><default>char</default></template-type-parameter>
+ <template-type-parameter name="OutputIterator"><default>std::ostreambuf_iterator&lt;charT&gt;</default></template-type-parameter>
+ </template><inherit access="public">facet</inherit><purpose>Output facet base class for gregorian dates. </purpose><description><para>This class is a base class for date facets used to localize the names of months and the names of days in the week.</para><para>Requirements of Config<itemizedlist>
+<listitem><para>define an enumeration month_enum that enumerates the months. The enumeration should be '1' based eg: Jan==1</para>
+</listitem><listitem><para>define as_short_string and as_long_string</para>
+</listitem></itemizedlist>
+</para><para>(see langer &amp; kreft p334). </para></description><typedef name="iter_type"><type>OutputIterator</type></typedef>
+<typedef name="month_type"><type>Config::month_type</type></typedef>
+<typedef name="month_enum"><type>Config::month_enum</type></typedef>
+<typedef name="weekday_enum"><type>Config::weekday_enum</type></typedef>
+<typedef name="special_value_enum"><type>Config::special_value_enum</type></typedef>
+<typedef name="string_type"><type>std::basic_string&lt; charT &gt;</type></typedef>
+<typedef name="char_type"><type>charT</type></typedef>
+<data-member name="default_special_value_names" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="separator" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="id" specifiers="static"><type>std::locale::id</type><purpose>Generate storage location for a std::locale::id. </purpose></data-member>
+<method-group name="public member functions">
+<method name="__get_id" cv="const"><type>std::locale::id &amp;</type><parameter name=""><paramtype>void</paramtype></parameter></method>
+<method name="put_special_value" cv="const"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><parameter name="sv"><paramtype>special_value_enum</paramtype></parameter></method>
+<method name="put_month_short" cv="const"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><parameter name="moy"><paramtype>month_enum</paramtype></parameter></method>
+<method name="put_month_long" cv="const"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><parameter name="moy"><paramtype>month_enum</paramtype></parameter></method>
+<method name="put_weekday_short" cv="const"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><parameter name="wd"><paramtype>weekday_enum</paramtype></parameter></method>
+<method name="put_weekday_long" cv="const"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><parameter name="wd"><paramtype>weekday_enum</paramtype></parameter></method>
+<method name="has_date_sep_chars" cv="const"><type>bool</type></method>
+<method name="year_sep_char" cv="const"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter></method>
+<method name="month_sep_char" cv="const"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><purpose>char between year-month </purpose></method>
+<method name="day_sep_char" cv="const"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><purpose>Char to separate month-day. </purpose></method>
+<method name="date_order" cv="const"><type>ymd_order_spec</type><purpose>Determines the order to put the date elements. </purpose></method>
+<method name="month_format" cv="const"><type>month_format_spec</type><purpose>Determines if month is displayed as integer, short or long string. </purpose></method>
+</method-group>
+<constructor/>
+<method-group name="protected member functions">
+<method name="do_put_month_short" cv="const" specifiers="virtual"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><parameter name="moy"><paramtype>month_enum</paramtype></parameter><purpose>Default facet implementation uses month_type defaults. </purpose></method>
+<method name="do_put_month_long" cv="const" specifiers="virtual"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><parameter name="moy"><paramtype>month_enum</paramtype></parameter><purpose>Default facet implementation uses month_type defaults. </purpose></method>
+<method name="do_put_special_value" cv="const" specifiers="virtual"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><parameter name="sv"><paramtype>special_value_enum</paramtype></parameter><purpose>Default facet implementation for special value types. </purpose></method>
+<method name="do_put_weekday_short" cv="const" specifiers="virtual"><type>void</type><parameter name=""><paramtype>iter_type &amp;</paramtype></parameter><parameter name=""><paramtype>weekday_enum</paramtype></parameter></method>
+<method name="do_put_weekday_long" cv="const" specifiers="virtual"><type>void</type><parameter name=""><paramtype>iter_type &amp;</paramtype></parameter><parameter name=""><paramtype>weekday_enum</paramtype></parameter></method>
+<method name="do_has_date_sep_chars" cv="const" specifiers="virtual"><type>bool</type></method>
+<method name="do_year_sep_char" cv="const" specifiers="virtual"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter></method>
+<method name="do_month_sep_char" cv="const" specifiers="virtual"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><purpose>char between year-month </purpose></method>
+<method name="do_day_sep_char" cv="const" specifiers="virtual"><type>void</type><parameter name="oitr"><paramtype>iter_type &amp;</paramtype></parameter><purpose>Char to separate month-day. </purpose></method>
+<method name="do_date_order" cv="const" specifiers="virtual"><type>ymd_order_spec</type><purpose>Default for date order. </purpose></method>
+<method name="do_month_format" cv="const" specifiers="virtual"><type>month_format_spec</type><purpose>Default month format. </purpose></method>
+<method name="put_string" cv="const"><type>void</type><parameter name="oi"><paramtype>iter_type &amp;</paramtype></parameter><parameter name="s"><paramtype>const charT *const</paramtype></parameter></method>
+<method name="put_string" cv="const"><type>void</type><parameter name="oi"><paramtype>iter_type &amp;</paramtype></parameter><parameter name="s1"><paramtype>const string_type &amp;</paramtype></parameter></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/date_parsing.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<function name="convert_to_lower"><type>std::string</type><parameter name="inp"><paramtype>std::string</paramtype></parameter><purpose>A function to replace the std::transform( , , ,tolower) construct. </purpose><description><para>This function simply takes a string, and changes all the characters in that string to lowercase (according to the default system locale). In the event that a compiler does not support locales, the old C style tolower() is used. </para></description></function>
+<function name="month_str_to_ushort"><type>unsigned short</type><template>
+ <template-type-parameter name="month_type"/>
+ </template><parameter name="s"><paramtype>std::string const &amp;</paramtype></parameter><purpose>Helper function for parse_date. </purpose></function>
+<function name="parse_date"><type>date_type</type><template>
+ <template-type-parameter name="date_type"/>
+ </template><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter><parameter name="order_spec"><paramtype>int</paramtype><default>ymd_order_iso</default></parameter><purpose>Generic function to parse a delimited date (eg: 2002-02-10) </purpose><description><para>Accepted formats are: "2003-02-10" or " 2003-Feb-10" or "2003-Feburary-10" The order in which the Month, Day, &amp; Year appear in the argument string can be accomodated by passing in the appropriate ymd_order_spec </para></description></function>
+<function name="parse_undelimited_date"><type>date_type</type><template>
+ <template-type-parameter name="date_type"/>
+ </template><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter><purpose>Generic function to parse undelimited date (eg: 20020201) </purpose></function>
+<function name="from_stream_type"><type>date_type</type><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="iterator_type"/>
+ </template><parameter name="beg"><paramtype>iterator_type &amp;</paramtype></parameter><parameter name="end"><paramtype>iterator_type const &amp;</paramtype></parameter><parameter name=""><paramtype>char</paramtype></parameter><purpose>Helper function for 'date gregorian::from_stream()'. </purpose><description><para>Creates a string from the iterators that reference the begining &amp; end of a char[] or string. All elements are used in output string </para></description></function>
+<function name="from_stream_type"><type>date_type</type><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="iterator_type"/>
+ </template><parameter name="beg"><paramtype>iterator_type &amp;</paramtype></parameter><parameter name=""><paramtype>iterator_type const &amp;</paramtype></parameter><parameter name=""><paramtype>std::string const &amp;</paramtype></parameter><purpose>Helper function for 'date gregorian::from_stream()'. </purpose><description><para>Returns the first string found in the stream referenced by the begining &amp; end iterators </para></description></function>
+<function name="from_stream_type"><type>date_type</type><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="iterator_type"/>
+ </template><parameter name="beg"><paramtype>iterator_type &amp;</paramtype></parameter><parameter name="end"><paramtype>iterator_type const &amp;</paramtype></parameter><parameter name=""><paramtype>wchar_t</paramtype></parameter><purpose>Helper function for 'date gregorian::from_stream()'. </purpose><description><para>Creates a string from the iterators that reference the begining &amp; end of a wstring. All elements are used in output string </para></description></function>
+<function name="from_stream_type"><type>date_type</type><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="iterator_type"/>
+ </template><parameter name="beg"><paramtype>iterator_type &amp;</paramtype></parameter><parameter name=""><paramtype>iterator_type const &amp;</paramtype></parameter><parameter name=""><paramtype>std::wstring const &amp;</paramtype></parameter><purpose>Helper function for 'date gregorian::from_stream()'. </purpose><description><para>Creates a string from the first wstring found in the stream referenced by the begining &amp; end iterators </para></description></function>
+<function name="from_simple_string_type"><type><classname>period</classname>&lt; date_type, typename date_type::duration_type &gt;</type><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="s"><paramtype>const std::basic_string&lt; charT &gt; &amp;</paramtype></parameter><purpose>function called by wrapper functions: date_period_from_(w)string() </purpose></function>
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/dst_rules.hpp">
+<para>Contains template class to provide static dst rule calculations </para><namespace name="boost">
+<namespace name="date_time">
+<class name="dst_calc_engine"><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="time_duration_type"/>
+ <template-type-parameter name="dst_traits"/>
+ </template><purpose>Compile-time configurable daylight savings time calculation engine. </purpose><typedef name="year_type"><type>date_type::year_type</type></typedef>
+<typedef name="calendar_type"><type>date_type::calendar_type</type></typedef>
+<typedef name="dstcalc"><type><classname>dst_calculator</classname>&lt; date_type, time_duration_type &gt;</type></typedef>
+<method-group name="public static functions">
+<method name="local_is_dst" specifiers="static"><type>time_is_dst_result</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter><parameter name="td"><paramtype>const time_duration_type &amp;</paramtype></parameter><purpose>Calculates if the given local time is dst or not. </purpose><description><para>Determines if the time is really in DST or not. Also checks for invalid and ambiguous.
+</para></description></method>
+<method name="is_dst_boundary_day" specifiers="static"><type>bool</type><parameter name="d"><paramtype>date_type</paramtype></parameter></method>
+<method name="dst_offset" specifiers="static"><type>time_duration_type</type><purpose>The time of day for the dst transition (eg: typically 01:00:00 or 02:00:00) </purpose></method>
+<method name="local_dst_start_day" specifiers="static"><type>date_type</type><parameter name="year"><paramtype>year_type</paramtype></parameter></method>
+<method name="local_dst_end_day" specifiers="static"><type>date_type</type><parameter name="year"><paramtype>year_type</paramtype></parameter></method>
+</method-group>
+</class><class name="dst_calculator"><template>
+ <template-type-parameter name="date_type_"/>
+ <template-type-parameter name="time_duration_type_"/>
+ </template><purpose>Dynamic class used to caluclate dst transition information. </purpose><typedef name="time_duration_type"><type>time_duration_type_</type></typedef>
+<typedef name="date_type"><type>date_type_</type></typedef>
+<method-group name="public static functions">
+<method name="process_local_dst_start_day" specifiers="static"><type>time_is_dst_result</type><parameter name="time_of_day"><paramtype>const time_duration_type &amp;</paramtype><description><para>Time offset in the day for the local time </para></description></parameter><parameter name="dst_start_offset_minutes"><paramtype>unsigned int</paramtype><description><para>Local day offset for start of dst </para></description></parameter><parameter name="dst_length_minutes"><paramtype>long</paramtype><description><para>Number of minutes to adjust clock forward </para></description></parameter><purpose>Check the local time offset when on dst start day. </purpose><description><para>On this dst transition, the time label between the transition boundary and the boudary + the offset are invalid times. If before the boundary then still not in dst.
+
+</para></description></method>
+<method name="process_local_dst_end_day" specifiers="static"><type>time_is_dst_result</type><parameter name="time_of_day"><paramtype>const time_duration_type &amp;</paramtype><description><para>Time offset in the day for the local time </para></description></parameter><parameter name="dst_end_offset_minutes"><paramtype>unsigned int</paramtype><description><para>Local time of day for end of dst </para></description></parameter><parameter name="dst_length_minutes"><paramtype>long</paramtype></parameter><purpose>Check the local time offset when on the last day of dst. </purpose><description><para>This is the calculation for the DST end day. On that day times prior to the conversion time - dst_length (1 am in US) are still in dst. Times between the above and the switch time are ambiguous. Times after the start_offset are not in dst.
+
+</para></description></method>
+<method name="local_is_dst" specifiers="static"><type>time_is_dst_result</type><parameter name="current_day"><paramtype>const date_type &amp;</paramtype><description><para>The day to check for dst </para></description></parameter><parameter name="time_of_day"><paramtype>const time_duration_type &amp;</paramtype><description><para>Time offset within the day to check </para></description></parameter><parameter name="dst_start_day"><paramtype>const date_type &amp;</paramtype><description><para>Starting day of dst for the given locality </para></description></parameter><parameter name="dst_start_offset"><paramtype>const time_duration_type &amp;</paramtype><description><para>Time offset within day for dst boundary </para></description></parameter><parameter name="dst_end_day"><paramtype>const date_type &amp;</paramtype><description><para>Ending day of dst for the given locality </para></description></parameter><parameter name="dst_end_offset"><paramtype>const time_duration_type &amp;</paramtype><description><para>Time offset within day given in dst for dst boundary </para></description></parameter><parameter name="dst_length"><paramtype>const time_duration_type &amp;</paramtype></parameter><purpose>Calculates if the given local time is dst or not. </purpose><description><para>Determines if the time is really in DST or not. Also checks for invalid and ambiguous.
+
+</para></description></method>
+<method name="local_is_dst" specifiers="static"><type>time_is_dst_result</type><parameter name="current_day"><paramtype>const date_type &amp;</paramtype><description><para>The day to check for dst </para></description></parameter><parameter name="time_of_day"><paramtype>const time_duration_type &amp;</paramtype><description><para>Time offset within the day to check </para></description></parameter><parameter name="dst_start_day"><paramtype>const date_type &amp;</paramtype><description><para>Starting day of dst for the given locality </para></description></parameter><parameter name="dst_start_offset_minutes"><paramtype>unsigned int</paramtype><description><para>Offset within day for dst boundary (eg 120 for US which is 02:00:00) </para></description></parameter><parameter name="dst_end_day"><paramtype>const date_type &amp;</paramtype><description><para>Ending day of dst for the given locality </para></description></parameter><parameter name="dst_end_offset_minutes"><paramtype>unsigned int</paramtype><description><para>Offset within day given in dst for dst boundary (eg 120 for US which is 02:00:00) </para></description></parameter><parameter name="dst_length_minutes"><paramtype>long</paramtype><description><para>Length of dst adjusment (eg: 60 for US) </para></description></parameter><purpose>Calculates if the given local time is dst or not. </purpose><description><para>Determines if the time is really in DST or not. Also checks for invalid and ambiguous.
+
+</para></description></method>
+</method-group>
+</class><class name="null_dst_rules"><template>
+ <template-type-parameter name="date_type_"/>
+ <template-type-parameter name="time_duration_type_"/>
+ </template><purpose>Used for local time adjustments in places that don't use dst. </purpose><typedef name="time_duration_type"><type>time_duration_type_</type></typedef>
+<typedef name="date_type"><type>date_type_</type></typedef>
+<method-group name="public static functions">
+<method name="local_is_dst" specifiers="static"><type>time_is_dst_result</type><parameter name=""><paramtype>const date_type &amp;</paramtype></parameter><parameter name=""><paramtype>const time_duration_type &amp;</paramtype></parameter><purpose>Calculates if the given local time is dst or not. </purpose><description><para>
+</para></description></method>
+<method name="utc_is_dst" specifiers="static"><type>time_is_dst_result</type><parameter name=""><paramtype>const date_type &amp;</paramtype></parameter><parameter name=""><paramtype>const time_duration_type &amp;</paramtype></parameter><purpose>Calculates if the given utc time is in dst. </purpose></method>
+<method name="is_dst_boundary_day" specifiers="static"><type>bool</type><parameter name=""><paramtype>date_type</paramtype></parameter></method>
+<method name="dst_offset" specifiers="static"><type>time_duration_type</type></method>
+</method-group>
+</class><class name="us_dst_rules"><template>
+ <template-type-parameter name="date_type_"/>
+ <template-type-parameter name="time_duration_type_"/>
+ <template-nontype-parameter name="dst_start_offset_minutes"><type>unsigned int</type><default>120</default></template-nontype-parameter>
+ <template-nontype-parameter name="dst_length_minutes"><type>short</type><default>60</default></template-nontype-parameter>
+ </template><purpose>Depricated: Class to calculate dst boundaries for US time zones. </purpose><typedef name="time_duration_type"><type>time_duration_type_</type></typedef>
+<typedef name="date_type"><type>date_type_</type></typedef>
+<typedef name="year_type"><type>date_type::year_type</type></typedef>
+<typedef name="calendar_type"><type>date_type::calendar_type</type></typedef>
+<typedef name="lkday"><type><classname>date_time::last_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="fkday"><type><classname>date_time::first_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="nkday"><type><classname>date_time::nth_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="dstcalc"><type><classname>dst_calculator</classname>&lt; date_type, time_duration_type &gt;</type></typedef>
+<method-group name="public static functions">
+<method name="local_is_dst" specifiers="static"><type>time_is_dst_result</type><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter><parameter name="td"><paramtype>const time_duration_type &amp;</paramtype></parameter><purpose>Calculates if the given local time is dst or not. </purpose><description><para>Determines if the time is really in DST or not. Also checks for invalid and ambiguous.
+</para></description></method>
+<method name="is_dst_boundary_day" specifiers="static"><type>bool</type><parameter name="d"><paramtype>date_type</paramtype></parameter></method>
+<method name="local_dst_start_day" specifiers="static"><type>date_type</type><parameter name="year"><paramtype>year_type</paramtype></parameter></method>
+<method name="local_dst_end_day" specifiers="static"><type>date_type</type><parameter name="year"><paramtype>year_type</paramtype></parameter></method>
+<method name="dst_offset" specifiers="static"><type>time_duration_type</type></method>
+</method-group>
+</class><enum name="time_is_dst_result"><enumvalue name="is_not_in_dst"/><enumvalue name="is_in_dst"/><enumvalue name="ambiguous"/><enumvalue name="invalid_time_label"/></enum>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/dst_transition_generators.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="day_calc_dst_rule"><template>
+ <template-type-parameter name="spec"><purpose><para>Provides a specifiction of the function object types used to generate start and end days of daylight savings as well as the date type. </para></purpose></template-type-parameter>
+ </template><inherit access="public">boost::date_time::dst_day_calc_rule&lt; spec::date_type &gt;</inherit><purpose>Canonical form for a class that provides day rule calculation. </purpose><description><para>This class is used to generate specific sets of dst rules</para><para>
+</para></description><typedef name="date_type"><type>spec::date_type</type></typedef>
+<typedef name="year_type"><type>date_type::year_type</type></typedef>
+<typedef name="start_rule"><type>spec::start_rule</type></typedef>
+<typedef name="end_rule"><type>spec::end_rule</type></typedef>
+<method-group name="public member functions">
+<method name="start_day" cv="const" specifiers="virtual"><type>date_type</type><parameter name="y"><paramtype>year_type</paramtype></parameter></method>
+<method name="start_rule_as_string" cv="const" specifiers="virtual"><type>std::string</type></method>
+<method name="end_day" cv="const" specifiers="virtual"><type>date_type</type><parameter name="y"><paramtype>year_type</paramtype></parameter></method>
+<method name="end_rule_as_string" cv="const" specifiers="virtual"><type>std::string</type></method>
+</method-group>
+<constructor><parameter name="dst_start"><paramtype>start_rule</paramtype></parameter><parameter name="dst_end"><paramtype>end_rule</paramtype></parameter></constructor>
+</class><class name="dst_day_calc_rule"><template>
+ <template-type-parameter name="date_type"/>
+ </template><purpose>Defines base interface for calculating start and end date of daylight savings. </purpose><typedef name="year_type"><type>date_type::year_type</type></typedef>
+<method-group name="public member functions">
+<method name="start_day" cv="const = 0" specifiers="virtual"><type>date_type</type><parameter name="y"><paramtype>year_type</paramtype></parameter></method>
+<method name="start_rule_as_string" cv="const = 0" specifiers="virtual"><type>std::string</type></method>
+<method name="end_day" cv="const = 0" specifiers="virtual"><type>date_type</type><parameter name="y"><paramtype>year_type</paramtype></parameter></method>
+<method name="end_rule_as_string" cv="const = 0" specifiers="virtual"><type>std::string</type></method>
+</method-group>
+<destructor/>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/filetime_functions.hpp">
+<para>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. </para><namespace name="boost">
+<namespace name="date_time">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<function name="time_from_ftime"><type>TimeT</type><template>
+ <template-type-parameter name="TimeT"/>
+ <template-type-parameter name="FileTimeT"/>
+ </template><parameter name="ft"><paramtype>const FileTimeT &amp;</paramtype></parameter><purpose>Create a time object from an initialized FILETIME struct. </purpose><description><para>Create a time object from an initialized FILETIME struct. A FILETIME struct holds 100-nanosecond units (0.0000001). When built with microsecond resolution the file_time's sub second value will be truncated. Nanosecond resolution has no truncation.</para><para><note><para>The function is templated on the FILETIME type, so that it can be used with both native FILETIME and the ad-hoc boost::detail::winapi::FILETIME_ type. </para>
+</note>
+</para></description></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/find_match.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<function name="find_match"><type>short</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="short_names"><paramtype>const charT *const *</paramtype></parameter><parameter name="long_names"><paramtype>const charT *const *</paramtype></parameter><parameter name="size"><paramtype>short</paramtype></parameter><parameter name="s"><paramtype>const std::basic_string&lt; charT &gt; &amp;</paramtype></parameter><purpose>Find index of a string in either of 2 arrays. </purpose><description><para>find_match searches both arrays for a match to 's'. Both arrays must contain 'size' elements. The index of the match is returned. If no match is found, 'size' is returned. Ex. "Jan" returns 0, "Dec" returns 11, "Tue" returns 2. 'size' can be sent in with: (greg_month::max)() (which 12), (greg_weekday::max)() + 1 (which is 7) or date_time::NumSpecialValues </para></description></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/format_date_parser.hpp">
+<namespace name="std">
+</namespace>
+<namespace name="boost">
+<namespace name="date_time">
+<class name="format_date_parser"><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="charT"/>
+ </template><purpose>Class with generic date parsing using a format string. </purpose><description><para>The following is the set of recognized format specifiers<itemizedlist>
+<listitem><para>a - Short weekday name</para>
+</listitem><listitem><para>A - Long weekday name</para>
+</listitem><listitem><para>b - Abbreviated month name</para>
+</listitem><listitem><para>B - Full month name</para>
+</listitem><listitem><para>d - Day of the month as decimal 01 to 31</para>
+</listitem><listitem><para>j - Day of year as decimal from 001 to 366</para>
+</listitem><listitem><para>m - Month name as a decimal 01 to 12</para>
+</listitem><listitem><para>U - Week number 00 to 53 with first Sunday as the first day of week 1?</para>
+</listitem><listitem><para>w - Weekday as decimal number 0 to 6 where Sunday == 0</para>
+</listitem><listitem><para>W - Week number 00 to 53 where Monday is first day of week 1</para>
+</listitem><listitem><para>x - facet default date representation</para>
+</listitem><listitem><para>y - Year without the century - eg: 04 for 2004</para>
+</listitem><listitem><para>Y - Year with century</para>
+</listitem></itemizedlist>
+</para><para>The weekday specifiers (a and A) do not add to the date construction, but they provide a way to skip over the weekday names for formats that provide them.</para><para>todo – Another interesting feature that this approach could provide is an option to fill in any missing fields with the current values from the clock. So if you have m-d the parser would detect the missing year value and fill it in using the clock.</para><para>todo – What to do with the x. x in the classic facet is just bad... </para></description><typedef name="string_type"><type>std::basic_string&lt; charT &gt;</type></typedef>
+<typedef name="stringstream_type"><type>std::basic_istringstream&lt; charT &gt;</type></typedef>
+<typedef name="stream_itr_type"><type>std::istreambuf_iterator&lt; charT &gt;</type></typedef>
+<typedef name="const_itr"><type>string_type::const_iterator</type></typedef>
+<typedef name="year_type"><type>date_type::year_type</type></typedef>
+<typedef name="month_type"><type>date_type::month_type</type></typedef>
+<typedef name="day_type"><type>date_type::day_type</type></typedef>
+<typedef name="duration_type"><type>date_type::duration_type</type></typedef>
+<typedef name="day_of_week_type"><type>date_type::day_of_week_type</type></typedef>
+<typedef name="day_of_year_type"><type>date_type::day_of_year_type</type></typedef>
+<typedef name="parse_tree_type"><type><classname>string_parse_tree</classname>&lt; charT &gt;</type></typedef>
+<typedef name="match_results"><type><classname>parse_tree_type::parse_match_result_type</classname></type></typedef>
+<typedef name="input_collection_type"><type>std::vector&lt; std::basic_string&lt; charT &gt; &gt;</type></typedef>
+<method-group name="public member functions">
+<method name="format" cv="const"><type>string_type</type></method>
+<method name="format"><type>void</type><parameter name="format_str"><paramtype>string_type</paramtype></parameter></method>
+<method name="short_month_names"><type>void</type><parameter name="month_names"><paramtype>const input_collection_type &amp;</paramtype></parameter></method>
+<method name="long_month_names"><type>void</type><parameter name="month_names"><paramtype>const input_collection_type &amp;</paramtype></parameter></method>
+<method name="short_weekday_names"><type>void</type><parameter name="weekday_names"><paramtype>const input_collection_type &amp;</paramtype></parameter></method>
+<method name="long_weekday_names"><type>void</type><parameter name="weekday_names"><paramtype>const input_collection_type &amp;</paramtype></parameter></method>
+<method name="parse_date" cv="const"><type>date_type</type><parameter name="value"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="format_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="sv_parser"><paramtype>const <classname>special_values_parser</classname>&lt; date_type, charT &gt; &amp;</paramtype></parameter></method>
+<method name="parse_date" cv="const"><type>date_type</type><parameter name="sitr"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="sv_parser"><paramtype>const <classname>special_values_parser</classname>&lt; date_type, charT &gt; &amp;</paramtype></parameter></method>
+<method name="parse_date" cv="const"><type>date_type</type><parameter name="sitr"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="format_str"><paramtype>string_type</paramtype></parameter><parameter name="sv_parser"><paramtype>const <classname>special_values_parser</classname>&lt; date_type, charT &gt; &amp;</paramtype></parameter><description><para>Of all the objects that the <classname alt="boost::date_time::format_date_parser">format_date_parser</classname> can parse, only a date can be a special value. Therefore, only parse_date checks for special_values. </para></description></method>
+<method name="parse_month" cv="const"><type>month_type</type><parameter name="sitr"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="format_str"><paramtype>string_type</paramtype></parameter><purpose>Throws bad_month if unable to parse. </purpose></method>
+<method name="parse_month" cv="const"><type>month_type</type><parameter name="sitr"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="format_str"><paramtype>string_type</paramtype></parameter><parameter name="mr"><paramtype><classname>match_results</classname> &amp;</paramtype></parameter><purpose>Throws bad_month if unable to parse. </purpose></method>
+<method name="parse_var_day_of_month" cv="const"><type>day_type</type><parameter name="sitr"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><purpose>Expects 1 or 2 digits 1-31. Throws bad_day_of_month if unable to parse. </purpose></method>
+<method name="parse_day_of_month" cv="const"><type>day_type</type><parameter name="sitr"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><purpose>Expects 2 digits 01-31. Throws bad_day_of_month if unable to parse. </purpose></method>
+<method name="parse_weekday" cv="const"><type>day_of_week_type</type><parameter name="sitr"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="format_str"><paramtype>string_type</paramtype></parameter></method>
+<method name="parse_weekday" cv="const"><type>day_of_week_type</type><parameter name="sitr"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="format_str"><paramtype>string_type</paramtype></parameter><parameter name="mr"><paramtype><classname>match_results</classname> &amp;</paramtype></parameter></method>
+<method name="parse_year" cv="const"><type>year_type</type><parameter name="sitr"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="format_str"><paramtype>string_type</paramtype></parameter><purpose>throws bad_year if unable to parse </purpose></method>
+<method name="parse_year" cv="const"><type>year_type</type><parameter name="sitr"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="format_str"><paramtype>string_type</paramtype></parameter><parameter name="mr"><paramtype><classname>match_results</classname> &amp;</paramtype></parameter><purpose>throws bad_year if unable to parse </purpose></method>
+</method-group>
+<constructor><parameter name="format_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="month_short_names"><paramtype>const input_collection_type &amp;</paramtype></parameter><parameter name="month_long_names"><paramtype>const input_collection_type &amp;</paramtype></parameter><parameter name="weekday_short_names"><paramtype>const input_collection_type &amp;</paramtype></parameter><parameter name="weekday_long_names"><paramtype>const input_collection_type &amp;</paramtype></parameter></constructor>
+<constructor><parameter name="format_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="locale"><paramtype>const std::locale &amp;</paramtype></parameter></constructor>
+<constructor><parameter name="fdp"><paramtype>const <classname>format_date_parser</classname>&lt; date_type, charT &gt; &amp;</paramtype></parameter></constructor>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<function name="fixed_string_to_int"><type>int_type</type><template>
+ <template-type-parameter name="int_type"/>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="itr"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="mr"><paramtype><classname>parse_match_result</classname>&lt; charT &gt; &amp;</paramtype></parameter><parameter name="length"><paramtype>unsigned int</paramtype></parameter><parameter name="fill_char"><paramtype>const charT &amp;</paramtype></parameter><purpose>Helper function for parsing fixed length strings into integers. </purpose><description><para>Will consume 'length' number of characters from stream. Consumed character are transfered to <classname alt="boost::date_time::parse_match_result">parse_match_result</classname> struct. Returns '-1' if no number can be parsed or incorrect number of digits in stream. </para></description></function>
+<function name="fixed_string_to_int"><type>int_type</type><template>
+ <template-type-parameter name="int_type"/>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="itr"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="mr"><paramtype><classname>parse_match_result</classname>&lt; charT &gt; &amp;</paramtype></parameter><parameter name="length"><paramtype>unsigned int</paramtype></parameter><purpose>Helper function for parsing fixed length strings into integers. </purpose><description><para>Will consume 'length' number of characters from stream. Consumed character are transfered to <classname alt="boost::date_time::parse_match_result">parse_match_result</classname> struct. Returns '-1' if no number can be parsed or incorrect number of digits in stream. </para></description></function>
+<function name="var_string_to_int"><type>int_type</type><template>
+ <template-type-parameter name="int_type"/>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="itr"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>const std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="max_length"><paramtype>unsigned int</paramtype></parameter><purpose>Helper function for parsing varied length strings into integers. </purpose><description><para>Will consume 'max_length' characters from stream only if those characters are digits. Returns '-1' if no number can be parsed. Will not parse a number preceeded by a '+' or '-'. </para></description></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/gregorian_calendar.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="gregorian_calendar_base"><template>
+ <template-type-parameter name="ymd_type_"><purpose><para>Struct type representing the year, month, day. The ymd_type must define a of types for the year, month, and day. These types need to be arithmetic types. </para></purpose></template-type-parameter>
+ <template-type-parameter name="date_int_type_"><purpose><para>Underlying type for the date count. Must be an arithmetic type. </para></purpose></template-type-parameter>
+ </template><purpose>An implementation of the Gregorian calendar. </purpose><description><para>This is a parameterized implementation of a proleptic Gregorian Calendar that can be used in the creation of date systems or just to perform calculations. All the methods of this class are static functions, so the intent is to never create instances of this class.
+</para></description><typedef name="ymd_type"><purpose>define a type a date split into components </purpose><type>ymd_type_</type></typedef>
+<typedef name="month_type"><purpose>define a type for representing months </purpose><type>ymd_type::month_type</type></typedef>
+<typedef name="day_type"><purpose>define a type for representing days </purpose><type>ymd_type::day_type</type></typedef>
+<typedef name="year_type"><purpose>Type to hold a stand alone year value (eg: 2002) </purpose><type>ymd_type::year_type</type></typedef>
+<typedef name="date_int_type"><purpose>Define the integer type to use for internal calculations. </purpose><type>date_int_type_</type></typedef>
+<method-group name="public static functions">
+<method name="day_of_week" specifiers="static"><type>BOOST_CXX14_CONSTEXPR unsigned short</type><parameter name="ymd"><paramtype>const ymd_type &amp;</paramtype></parameter></method>
+<method name="week_number" specifiers="static"><type>BOOST_CXX14_CONSTEXPR int</type><parameter name="ymd"><paramtype>const ymd_type &amp;</paramtype></parameter></method>
+<method name="day_number" specifiers="static"><type>BOOST_CXX14_CONSTEXPR date_int_type</type><parameter name="ymd"><paramtype>const ymd_type &amp;</paramtype></parameter></method>
+<method name="julian_day_number" specifiers="static"><type>BOOST_CXX14_CONSTEXPR date_int_type</type><parameter name="ymd"><paramtype>const ymd_type &amp;</paramtype></parameter></method>
+<method name="modjulian_day_number" specifiers="static"><type>BOOST_CXX14_CONSTEXPR date_int_type</type><parameter name="ymd"><paramtype>const ymd_type &amp;</paramtype></parameter></method>
+<method name="from_day_number" specifiers="static"><type>BOOST_CXX14_CONSTEXPR ymd_type</type><parameter name=""><paramtype>date_int_type</paramtype></parameter></method>
+<method name="from_julian_day_number" specifiers="static"><type>BOOST_CXX14_CONSTEXPR ymd_type</type><parameter name=""><paramtype>date_int_type</paramtype></parameter></method>
+<method name="from_modjulian_day_number" specifiers="static"><type>BOOST_CXX14_CONSTEXPR ymd_type</type><parameter name=""><paramtype>date_int_type</paramtype></parameter></method>
+<method name="is_leap_year" specifiers="static"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name=""><paramtype>year_type</paramtype></parameter></method>
+<method name="end_of_month_day" specifiers="static"><type>BOOST_CXX14_CONSTEXPR unsigned short</type><parameter name="y"><paramtype>year_type</paramtype></parameter><parameter name="m"><paramtype>month_type</paramtype></parameter></method>
+<method name="epoch" specifiers="static"><type>BOOST_CXX14_CONSTEXPR ymd_type</type></method>
+<method name="days_in_week" specifiers="static"><type>BOOST_CXX14_CONSTEXPR unsigned short</type></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/int_adapter.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="int_adapter"><template>
+ <template-type-parameter name="int_type_"/>
+ </template><purpose>Adapter to create integer types with +-infinity, and not a value. </purpose><description><para>This class is used internally in counted date/time representations. It adds the floating point like features of infinities and not a number. It also provides mathmatical operations with consideration to special values following these rules: <programlisting language="c++">+infinity - infinity == Not A Number (NAN)
+ infinity * non-zero == infinity
+ infinity * zero == NAN
++infinity * -integer == -infinity
+ infinity / infinity == NAN
+ infinity * infinity == infinity
+</programlisting> </para></description><typedef name="int_type"><type>int_type_</type></typedef>
+<method-group name="public member functions">
+<method name="is_infinity" cv="const"><type>BOOST_CONSTEXPR bool</type></method>
+<method name="is_pos_infinity" cv="const"><type>BOOST_CONSTEXPR bool</type></method>
+<method name="is_neg_infinity" cv="const"><type>BOOST_CONSTEXPR bool</type></method>
+<method name="is_nan" cv="const"><type>BOOST_CONSTEXPR bool</type></method>
+<method name="is_special" cv="const"><type>BOOST_CONSTEXPR bool</type></method>
+<method name="operator==" cv="const"><type>BOOST_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>int_adapter</classname> &amp;</paramtype></parameter></method>
+<method name="operator==" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const int &amp;</paramtype></parameter></method>
+<method name="operator!=" cv="const"><type>BOOST_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>int_adapter</classname> &amp;</paramtype></parameter></method>
+<method name="operator!=" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const int &amp;</paramtype></parameter></method>
+<method name="operator&lt;" cv="const"><type>BOOST_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>int_adapter</classname> &amp;</paramtype></parameter></method>
+<method name="operator&lt;" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const int &amp;</paramtype></parameter></method>
+<method name="operator&gt;" cv="const"><type>BOOST_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>int_adapter</classname> &amp;</paramtype></parameter></method>
+<method name="as_number" cv="const"><type>BOOST_CONSTEXPR int_type</type></method>
+<method name="as_special" cv="const"><type>BOOST_CONSTEXPR special_values</type><purpose>Returns either special value type or is_not_special. </purpose></method>
+<method name="operator+" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>int_adapter</classname></type><template>
+ <template-type-parameter name="rhs_type"/>
+ </template><parameter name="rhs"><paramtype>const <classname>int_adapter</classname>&lt; rhs_type &gt; &amp;</paramtype></parameter><description><para>Operator allows for adding dissimilar <classname alt="boost::date_time::int_adapter">int_adapter</classname> types. The return type will match that of the the calling object's type </para></description></method>
+<method name="operator+" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>int_adapter</classname></type><parameter name="rhs"><paramtype>const int_type</paramtype></parameter></method>
+<method name="operator-" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>int_adapter</classname></type><template>
+ <template-type-parameter name="rhs_type"/>
+ </template><parameter name="rhs"><paramtype>const <classname>int_adapter</classname>&lt; rhs_type &gt; &amp;</paramtype></parameter><description><para>Operator allows for subtracting dissimilar <classname alt="boost::date_time::int_adapter">int_adapter</classname> types. The return type will match that of the the calling object's type </para></description></method>
+<method name="operator-" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>int_adapter</classname></type><parameter name="rhs"><paramtype>const int_type</paramtype></parameter></method>
+<method name="operator *" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>int_adapter</classname></type><parameter name="rhs"><paramtype>const <classname>int_adapter</classname> &amp;</paramtype></parameter></method>
+<method name="operator *" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>int_adapter</classname></type><parameter name="rhs"><paramtype>const int</paramtype></parameter><description><para>Provided for cases when automatic conversion from 'int' to '<classname alt="boost::date_time::int_adapter">int_adapter</classname>' causes incorrect results. </para></description></method>
+<method name="operator/" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>int_adapter</classname></type><parameter name="rhs"><paramtype>const <classname>int_adapter</classname> &amp;</paramtype></parameter></method>
+<method name="operator/" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>int_adapter</classname></type><parameter name="rhs"><paramtype>const int</paramtype></parameter><description><para>Provided for cases when automatic conversion from 'int' to '<classname alt="boost::date_time::int_adapter">int_adapter</classname>' causes incorrect results. </para></description></method>
+<method name="operator%" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>int_adapter</classname></type><parameter name="rhs"><paramtype>const <classname>int_adapter</classname> &amp;</paramtype></parameter></method>
+<method name="operator%" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>int_adapter</classname></type><parameter name="rhs"><paramtype>const int</paramtype></parameter><description><para>Provided for cases when automatic conversion from 'int' to '<classname alt="boost::date_time::int_adapter">int_adapter</classname>' causes incorrect results. </para></description></method>
+</method-group>
+<constructor><parameter name="v"><paramtype>int_type</paramtype></parameter></constructor>
+<method-group name="public static functions">
+<method name="has_infinity" specifiers="static"><type>BOOST_CONSTEXPR bool</type></method>
+<method name="pos_infinity" specifiers="static"><type>BOOST_CONSTEXPR <classname>int_adapter</classname></type></method>
+<method name="neg_infinity" specifiers="static"><type>BOOST_CONSTEXPR <classname>int_adapter</classname></type></method>
+<method name="not_a_number" specifiers="static"><type>BOOST_CONSTEXPR <classname>int_adapter</classname></type></method>
+<method name="BOOST_PREVENT_MACRO_SUBSTITUTION" specifiers="static"><type>BOOST_CONSTEXPR <classname>int_adapter</classname> max</type></method>
+<method name="BOOST_PREVENT_MACRO_SUBSTITUTION" specifiers="static"><type>BOOST_CONSTEXPR <classname>int_adapter</classname> min</type></method>
+<method name="from_special" specifiers="static"><type>BOOST_CXX14_CONSTEXPR <classname>int_adapter</classname></type><parameter name="sv"><paramtype>special_values</paramtype></parameter></method>
+<method name="is_inf" specifiers="static"><type>BOOST_CONSTEXPR bool</type><parameter name="v"><paramtype>int_type</paramtype></parameter></method>
+<method name="is_neg_inf" specifiers="static"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="v"><paramtype>int_type</paramtype></parameter></method>
+<method name="is_pos_inf" specifiers="static"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="v"><paramtype>int_type</paramtype></parameter></method>
+<method name="is_not_a_number" specifiers="static"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="v"><paramtype>int_type</paramtype></parameter></method>
+<method name="to_special" specifiers="static"><type>BOOST_CXX14_CONSTEXPR special_values</type><parameter name="v"><paramtype>int_type</paramtype></parameter><purpose>Returns either special value type or is_not_special. </purpose></method>
+<method name="maxcount" specifiers="static"><type>BOOST_CONSTEXPR int_type</type></method>
+</method-group>
+<method-group name="private member functions">
+<method name="compare" cv="const"><type>BOOST_CXX14_CONSTEXPR int</type><parameter name="rhs"><paramtype>const <classname>int_adapter</classname> &amp;</paramtype></parameter><purpose>returns -1, 0, 1, or 2 if 'this' is &lt;, ==, &gt;, or 'nan comparison' rhs </purpose></method>
+<method name="mult_div_specials" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>int_adapter</classname></type><parameter name="rhs"><paramtype>const <classname>int_adapter</classname> &amp;</paramtype></parameter><purpose>Assumes at least 'this' or 'rhs' is a special value. </purpose></method>
+<method name="mult_div_specials" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>int_adapter</classname></type><parameter name="rhs"><paramtype>const int &amp;</paramtype></parameter><purpose>Assumes 'this' is a special value. </purpose></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; charT, traits &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ <template-type-parameter name="traits"/>
+ <template-type-parameter name="int_type"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; charT, traits &gt; &amp;</paramtype></parameter><parameter name="ia"><paramtype>const <classname>int_adapter</classname>&lt; int_type &gt; &amp;</paramtype></parameter><description><para>Expected output is either a numeric representation or a special values representation.<sbr/>
+ Ex. "12", "+infinity", "not-a-number", etc. </para></description></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/iso_format.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="iso_extended_format"><template>
+ <template-type-parameter name="charT"/>
+ </template><inherit access="public">boost::date_time::iso_format_base&lt; charT &gt;</inherit><purpose>Extended format uses seperators YYYY-MM-DD. </purpose><method-group name="public static functions">
+<method name="has_date_sep_chars" specifiers="static"><type>bool</type><purpose>Extended format needs char separators. </purpose></method>
+</method-group>
+</class><class name="iso_format"><template>
+ <template-type-parameter name="charT"/>
+ </template><inherit access="public">boost::date_time::iso_format_base&lt; charT &gt;</inherit><purpose>Format description for iso normal YYYYMMDD. </purpose><method-group name="public static functions">
+<method name="has_date_sep_chars" specifiers="static"><type>bool</type><purpose>The ios standard format doesn't use char separators. </purpose></method>
+</method-group>
+</class><class name="iso_format_base"><template>
+ <template-type-parameter name="charT"/>
+ </template><purpose>Class to provide common iso formatting spec. </purpose><method-group name="public static functions">
+<method name="month_format" specifiers="static"><type>month_format_spec</type><purpose>Describe month format – its an integer in iso format. </purpose></method>
+<method name="not_a_date" specifiers="static"><type>const charT *</type><purpose>String used printed is date is invalid. </purpose></method>
+<method name="pos_infinity" specifiers="static"><type>const charT *</type><purpose>String used to for positive infinity value. </purpose></method>
+<method name="neg_infinity" specifiers="static"><type>const charT *</type><purpose>String used to for positive infinity value. </purpose></method>
+<method name="year_sep_char" specifiers="static"><type>charT</type><purpose>ISO char for a year – used in durations. </purpose></method>
+<method name="month_sep_char" specifiers="static"><type>charT</type><purpose>ISO char for a month. </purpose></method>
+<method name="day_sep_char" specifiers="static"><type>charT</type><purpose>ISO char for a day. </purpose></method>
+<method name="hour_sep_char" specifiers="static"><type>charT</type><purpose>char for minute </purpose></method>
+<method name="minute_sep_char" specifiers="static"><type>charT</type><purpose>char for minute </purpose></method>
+<method name="second_sep_char" specifiers="static"><type>charT</type><purpose>char for second </purpose></method>
+<method name="period_start_char" specifiers="static"><type>charT</type><purpose>ISO char for a period. </purpose></method>
+<method name="time_start_char" specifiers="static"><type>charT</type><purpose>Used in time in mixed strings to set start of time. </purpose></method>
+<method name="week_start_char" specifiers="static"><type>charT</type><purpose>Used in mixed strings to identify start of a week number. </purpose></method>
+<method name="period_sep_char" specifiers="static"><type>charT</type><purpose>Separators for periods. </purpose></method>
+<method name="time_sep_char" specifiers="static"><type>charT</type><purpose>Separator for hh:mm:ss. </purpose></method>
+<method name="fractional_time_sep_char" specifiers="static"><type>charT</type><purpose>Preferred Separator for hh:mm:ss,decimal_fraction. </purpose></method>
+<method name="is_component_sep" specifiers="static"><type>bool</type><parameter name="sep"><paramtype>charT</paramtype></parameter></method>
+<method name="is_fractional_time_sep" specifiers="static"><type>bool</type><parameter name="sep"><paramtype>charT</paramtype></parameter></method>
+<method name="is_timezone_sep" specifiers="static"><type>bool</type><parameter name="sep"><paramtype>charT</paramtype></parameter></method>
+<method name="element_sep_char" specifiers="static"><type>charT</type></method>
+</method-group>
+</class><class-specialization name="iso_format_base"><template>
+ </template><specialization><template-arg>wchar_t</template-arg></specialization><purpose>Class to provide common iso formatting spec. </purpose><method-group name="public static functions">
+<method name="month_format" specifiers="static"><type>month_format_spec</type><purpose>Describe month format – its an integer in iso format. </purpose></method>
+<method name="not_a_date" specifiers="static"><type>const wchar_t *</type><purpose>String used printed is date is invalid. </purpose></method>
+<method name="pos_infinity" specifiers="static"><type>const wchar_t *</type><purpose>String used to for positive infinity value. </purpose></method>
+<method name="neg_infinity" specifiers="static"><type>const wchar_t *</type><purpose>String used to for positive infinity value. </purpose></method>
+<method name="year_sep_char" specifiers="static"><type>wchar_t</type><purpose>ISO char for a year – used in durations. </purpose></method>
+<method name="month_sep_char" specifiers="static"><type>wchar_t</type><purpose>ISO char for a month. </purpose></method>
+<method name="day_sep_char" specifiers="static"><type>wchar_t</type><purpose>ISO char for a day. </purpose></method>
+<method name="hour_sep_char" specifiers="static"><type>wchar_t</type><purpose>char for minute </purpose></method>
+<method name="minute_sep_char" specifiers="static"><type>wchar_t</type><purpose>char for minute </purpose></method>
+<method name="second_sep_char" specifiers="static"><type>wchar_t</type><purpose>char for second </purpose></method>
+<method name="period_start_char" specifiers="static"><type>wchar_t</type><purpose>ISO char for a period. </purpose></method>
+<method name="time_start_char" specifiers="static"><type>wchar_t</type><purpose>Used in time in mixed strings to set start of time. </purpose></method>
+<method name="week_start_char" specifiers="static"><type>wchar_t</type><purpose>Used in mixed strings to identify start of a week number. </purpose></method>
+<method name="period_sep_char" specifiers="static"><type>wchar_t</type><purpose>Separators for periods. </purpose></method>
+<method name="time_sep_char" specifiers="static"><type>wchar_t</type><purpose>Separator for hh:mm:ss. </purpose></method>
+<method name="fractional_time_sep_char" specifiers="static"><type>wchar_t</type><purpose>Preferred Separator for hh:mm:ss,decimal_fraction. </purpose></method>
+<method name="is_component_sep" specifiers="static"><type>bool</type><parameter name="sep"><paramtype>wchar_t</paramtype></parameter></method>
+<method name="is_fractional_time_sep" specifiers="static"><type>bool</type><parameter name="sep"><paramtype>wchar_t</paramtype></parameter></method>
+<method name="is_timezone_sep" specifiers="static"><type>bool</type><parameter name="sep"><paramtype>wchar_t</paramtype></parameter></method>
+<method name="element_sep_char" specifiers="static"><type>wchar_t</type></method>
+</method-group>
+</class-specialization>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/local_time_adjustor.hpp">
+<para>Time adjustment calculations for local times </para><namespace name="boost">
+<namespace name="date_time">
+<class name="dynamic_local_time_adjustor"><template>
+ <template-type-parameter name="time_type"/>
+ <template-type-parameter name="dst_rules"/>
+ </template><inherit access="public">dst_rules</inherit><purpose>Allow sliding utc adjustment with fixed dst rules. </purpose><typedef name="time_duration_type"><type>time_type::time_duration_type</type></typedef>
+<typedef name="date_type"><type>time_type::date_type</type></typedef>
+<method-group name="public member functions">
+<method name="utc_offset"><type>time_duration_type</type><parameter name="is_dst"><paramtype>bool</paramtype></parameter><purpose>Presumes local time. </purpose></method>
+</method-group>
+<constructor><parameter name="utc_offset"><paramtype>time_duration_type</paramtype></parameter></constructor>
+</class><class name="local_adjustor"><template>
+ <template-type-parameter name="time_type"/>
+ <template-nontype-parameter name="utc_offset"><type>short</type></template-nontype-parameter>
+ <template-type-parameter name="dst_rule"/>
+ </template><purpose>Template that simplifies the creation of local time calculator. </purpose><description><para>Use this template to create the timezone to utc convertors as required.</para><para>This class will also work for other regions that don't use dst and have a utc offset which is an integral number of hours.</para><para><emphasis role="bold">Template Parameters</emphasis> -time_type – Time class to use -utc_offset – Number hours local time is adjust from utc -use_dst – true (default) if region uses dst, false otherwise For example: <programlisting language="c++"> //eastern timezone is utc-5
+typedef date_time::local_adjustor&lt;ptime, -5, us_dst&gt; us_eastern;
+typedef date_time::local_adjustor&lt;ptime, -6, us_dst&gt; us_central;
+typedef date_time::local_adjustor&lt;ptime, -7, us_dst&gt; us_mountain;
+typedef date_time::local_adjustor&lt;ptime, -8, us_dst&gt; us_pacific;
+typedef date_time::local_adjustor&lt;ptime, -7, no_dst&gt; us_arizona;
+</programlisting> </para></description><typedef name="time_duration_type"><type>time_type::time_duration_type</type></typedef>
+<typedef name="date_type"><type>time_type::date_type</type></typedef>
+<typedef name="dst_adjustor"><type><classname>static_local_time_adjustor</classname>&lt; time_type, dst_rule, <classname>utc_adjustment</classname>&lt; time_duration_type, utc_offset &gt; &gt;</type></typedef>
+<method-group name="public static functions">
+<method name="utc_to_local" specifiers="static"><type>time_type</type><parameter name="t"><paramtype>const time_type &amp;</paramtype></parameter><purpose>Convert a utc time to local time. </purpose></method>
+<method name="local_to_utc" specifiers="static"><type>time_type</type><parameter name="t"><paramtype>const time_type &amp;</paramtype></parameter><parameter name="dst"><paramtype>date_time::dst_flags</paramtype><default>date_time::calculate</default></parameter><purpose>Convert a local time to utc. </purpose></method>
+</method-group>
+</class><class name="static_local_time_adjustor"><template>
+ <template-type-parameter name="time_type"/>
+ <template-type-parameter name="dst_rules"/>
+ <template-type-parameter name="utc_offset_rules"/>
+ </template><inherit access="public">dst_rules</inherit><inherit access="public">utc_offset_rules</inherit><purpose>Embed the rules for local time adjustments at compile time. </purpose><typedef name="time_duration_type"><type>time_type::time_duration_type</type></typedef>
+<typedef name="date_type"><type>time_type::date_type</type></typedef>
+<method-group name="public static functions">
+<method name="utc_to_local_offset" specifiers="static"><type>time_duration_type</type><parameter name="t"><paramtype>const time_type &amp;</paramtype><description><para>UTC time to calculate offset to local time This adjustment depends on the following observations about the workings of the DST boundary offset. Since UTC time labels are monotonically increasing we can determine if a given local time is in DST or not and therefore adjust the offset appropriately.</para></description></parameter><purpose>Calculates the offset from a utc time to local based on dst and utc offset. </purpose><description><para>
+The logic is as follows. Starting with UTC time use the offset to create a label for an non-dst adjusted local time. Then call dst_rules::local_is_dst with the non adjust local time. The results of this function will either unabiguously decide that the initial local time is in dst or return an illegal or ambiguous result. An illegal result only occurs at the end of dst (where labels are skipped) and indicates that dst has ended. An ambiguous result means that we need to recheck by making a dst adjustment and then rechecking. If the dst offset is added to the utc time and the recheck proves non-ambiguous then we are past the boundary. If it is still ambiguous then we are ahead of the boundary and dst is still in effect.</para><para>TODO – check if all dst offsets are positive. If not then the algorithm needs to check for this and reverse the illegal/ambiguous logic. </para></description></method>
+<method name="local_to_utc_offset" specifiers="static"><type>time_duration_type</type><parameter name="t"><paramtype>const time_type &amp;</paramtype></parameter><parameter name="dst"><paramtype>date_time::dst_flags</paramtype><default>date_time::calculate</default></parameter><purpose>Get the offset to UTC given a local time. </purpose></method>
+</method-group>
+</class><class name="utc_adjustment"><template>
+ <template-type-parameter name="time_duration_type"/>
+ <template-nontype-parameter name="hours"><type>short</type></template-nontype-parameter>
+ <template-nontype-parameter name="minutes"><type>unsigned short</type><default>0</default></template-nontype-parameter>
+ </template><purpose>Provides a base offset adjustment from utc. </purpose><method-group name="public static functions">
+<method name="local_to_utc_base_offset" specifiers="static"><type>time_duration_type</type></method>
+<method name="utc_to_local_base_offset" specifiers="static"><type>time_duration_type</type></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+<function name="dummy_to_prevent_msvc6_ice"><type>void</type></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/local_timezone_defs.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<struct name="acst_dst_trait"><template>
+ <template-type-parameter name="date_type"/>
+ </template><typedef name="day_of_week_type"><type>date_type::day_of_week_type</type></typedef>
+<typedef name="month_type"><type>date_type::month_type</type></typedef>
+<typedef name="year_type"><type>date_type::year_type</type></typedef>
+<typedef name="start_rule_functor"><type><classname>date_time::last_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="end_rule_functor"><type><classname>date_time::last_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<method-group name="public static functions">
+<method name="start_day" specifiers="static"><type>day_of_week_type</type><parameter name=""><paramtype>year_type</paramtype></parameter></method>
+<method name="start_month" specifiers="static"><type>month_type</type><parameter name=""><paramtype>year_type</paramtype></parameter></method>
+<method name="end_day" specifiers="static"><type>day_of_week_type</type><parameter name=""><paramtype>year_type</paramtype></parameter></method>
+<method name="end_month" specifiers="static"><type>month_type</type><parameter name=""><paramtype>year_type</paramtype></parameter></method>
+<method name="dst_start_offset_minutes" specifiers="static"><type>int</type></method>
+<method name="dst_end_offset_minutes" specifiers="static"><type>int</type></method>
+<method name="dst_shift_length_minutes" specifiers="static"><type>int</type></method>
+<method name="local_dst_start_day" specifiers="static"><type>date_type</type><parameter name="year"><paramtype>year_type</paramtype></parameter></method>
+<method name="local_dst_end_day" specifiers="static"><type>date_type</type><parameter name="year"><paramtype>year_type</paramtype></parameter></method>
+</method-group>
+</struct><struct name="eu_dst_trait"><template>
+ <template-type-parameter name="date_type"/>
+ </template><purpose>Rules for daylight savings start in the EU (Last Sun in Mar) </purpose><description><para>These amount to the following:<itemizedlist>
+<listitem><para>Start of dst day is last Sunday in March</para>
+</listitem><listitem><para>End day of dst is last Sunday in Oct</para>
+</listitem><listitem><para>Going forward switch time is 2:00 am (offset 120 minutes)</para>
+</listitem><listitem><para>Going back switch time is 3:00 am (off set 180 minutes)</para>
+</listitem><listitem><para>Shift duration is one hour (60 minutes) </para>
+</listitem></itemizedlist>
+</para></description><typedef name="day_of_week_type"><type>date_type::day_of_week_type</type></typedef>
+<typedef name="month_type"><type>date_type::month_type</type></typedef>
+<typedef name="year_type"><type>date_type::year_type</type></typedef>
+<typedef name="start_rule_functor"><type><classname>date_time::last_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="end_rule_functor"><type><classname>date_time::last_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<method-group name="public static functions">
+<method name="start_day" specifiers="static"><type>day_of_week_type</type><parameter name=""><paramtype>year_type</paramtype></parameter></method>
+<method name="start_month" specifiers="static"><type>month_type</type><parameter name=""><paramtype>year_type</paramtype></parameter></method>
+<method name="end_day" specifiers="static"><type>day_of_week_type</type><parameter name=""><paramtype>year_type</paramtype></parameter></method>
+<method name="end_month" specifiers="static"><type>month_type</type><parameter name=""><paramtype>year_type</paramtype></parameter></method>
+<method name="dst_start_offset_minutes" specifiers="static"><type>int</type></method>
+<method name="dst_end_offset_minutes" specifiers="static"><type>int</type></method>
+<method name="dst_shift_length_minutes" specifiers="static"><type>int</type></method>
+<method name="local_dst_start_day" specifiers="static"><type>date_type</type><parameter name="year"><paramtype>year_type</paramtype></parameter></method>
+<method name="local_dst_end_day" specifiers="static"><type>date_type</type><parameter name="year"><paramtype>year_type</paramtype></parameter></method>
+</method-group>
+</struct><struct name="uk_dst_trait"><template>
+ <template-type-parameter name="date_type"/>
+ </template><inherit access="public">boost::date_time::eu_dst_trait&lt; date_type &gt;</inherit><purpose>Alternative dst traits for some parts of the United Kingdom. </purpose><method-group name="public static functions">
+<method name="dst_start_offset_minutes" specifiers="static"><type>int</type></method>
+<method name="dst_end_offset_minutes" specifiers="static"><type>int</type></method>
+<method name="dst_shift_length_minutes" specifiers="static"><type>int</type></method>
+</method-group>
+</struct><struct name="us_dst_trait"><template>
+ <template-type-parameter name="date_type"/>
+ </template><purpose>Specification for daylight savings start rules in US. </purpose><description><para>This class is used to configure <classname alt="boost::date_time::dst_calc_engine">dst_calc_engine</classname> template typically as follows: <programlisting language="c++">using namespace boost::gregorian;
+using namespace boost::posix_time;
+typedef us_dst_trait&lt;date&gt; us_dst_traits;
+typedef boost::date_time::dst_calc_engine&lt;date, time_duration,
+ us_dst_traits&gt;
+ us_dst_calc;
+//calculate the 2002 transition day of USA April 7 2002
+date dst_start = us_dst_calc::local_dst_start_day(2002);
+
+//calculate the 2002 transition day of USA Oct 27 2002
+date dst_end = us_dst_calc::local_dst_end_day(2002);
+
+//check if a local time is in dst or not -- posible answers
+//are yes, no, invalid time label, ambiguous
+ptime t(...some time...);
+if (us_dst::local_is_dst(t.date(), t.time_of_day())
+ == boost::date_time::is_not_in_dst)
+{
+
+}
+</programlisting> This generates a type suitable for the calculation of dst transitions for the United States. Of course other templates can be used for other locales. </para></description><typedef name="day_of_week_type"><type>date_type::day_of_week_type</type></typedef>
+<typedef name="month_type"><type>date_type::month_type</type></typedef>
+<typedef name="year_type"><type>date_type::year_type</type></typedef>
+<typedef name="start_rule_functor"><type><classname>date_time::nth_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="end_rule_functor"><type><classname>date_time::first_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="start_rule_functor_pre2007"><type><classname>date_time::first_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<typedef name="end_rule_functor_pre2007"><type><classname>date_time::last_kday_of_month</classname>&lt; date_type &gt;</type></typedef>
+<method-group name="public static functions">
+<method name="start_day" specifiers="static"><type>day_of_week_type</type><parameter name=""><paramtype>year_type</paramtype></parameter></method>
+<method name="start_month" specifiers="static"><type>month_type</type><parameter name="y"><paramtype>year_type</paramtype></parameter></method>
+<method name="end_day" specifiers="static"><type>day_of_week_type</type><parameter name=""><paramtype>year_type</paramtype></parameter></method>
+<method name="end_month" specifiers="static"><type>month_type</type><parameter name="y"><paramtype>year_type</paramtype></parameter></method>
+<method name="local_dst_start_day" specifiers="static"><type>date_type</type><parameter name="year"><paramtype>year_type</paramtype></parameter></method>
+<method name="local_dst_end_day" specifiers="static"><type>date_type</type><parameter name="year"><paramtype>year_type</paramtype></parameter></method>
+<method name="dst_start_offset_minutes" specifiers="static"><type>int</type></method>
+<method name="dst_end_offset_minutes" specifiers="static"><type>int</type></method>
+<method name="dst_shift_length_minutes" specifiers="static"><type>int</type></method>
+</method-group>
+</struct>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/locale_config.hpp">
+</header>
+<header name="boost/date_time/microsec_time_clock.hpp">
+<para>This file contains a high resolution time clock implementation. </para><namespace name="boost">
+<namespace name="date_time">
+<class name="microsec_clock"><template>
+ <template-type-parameter name="time_type"/>
+ </template><purpose>A clock providing microsecond level resolution. </purpose><description><para>A high precision clock that measures the local time at a resolution up to microseconds and adjusts to the resolution of the time system. For example, for the a library configuration with nano second resolution, the last 3 places of the fractional seconds will always be 000 since there are 1000 nano-seconds in a micro second. </para></description><typedef name="date_type"><type>time_type::date_type</type></typedef>
+<typedef name="time_duration_type"><type>time_type::time_duration_type</type></typedef>
+<typedef name="resolution_traits_type"><type>time_duration_type::rep_type</type></typedef>
+<method-group name="public static functions">
+<method name="local_time" specifiers="static"><type>time_type</type><template>
+ <template-type-parameter name="time_zone_type"/>
+ </template><parameter name="tz_ptr"><paramtype>shared_ptr&lt; time_zone_type &gt;</paramtype></parameter><purpose>return a local time object for the given zone, based on computer clock </purpose></method>
+<method name="local_time" specifiers="static"><type>time_type</type><purpose>Returns the local time based on computer clock settings. </purpose></method>
+<method name="universal_time" specifiers="static"><type>time_type</type><purpose>Returns the UTC time based on computer settings. </purpose></method>
+</method-group>
+<method-group name="private static functions">
+<method name="create_time" specifiers="static"><type>time_type</type><parameter name="converter"><paramtype>time_converter</paramtype></parameter></method>
+<method name="file_time_to_microseconds" specifiers="static"><type>boost::uint64_t</type><parameter name="ft"><paramtype>boost::winapi::FILETIME_ const &amp;</paramtype></parameter><description><para>The function converts file_time into number of microseconds elapsed since 1970-Jan-01</para><para><note><para>Only dates after 1970-Jan-01 are supported. Dates before will be wrapped. </para>
+</note>
+</para></description></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/parse_format_base.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<enum name="month_format_spec"><enumvalue name="month_as_integer"/><enumvalue name="month_as_short_string"/><enumvalue name="month_as_long_string"/><purpose>Enum for distinguishing parsing and formatting options. </purpose></enum>
+<enum name="ymd_order_spec"><enumvalue name="ymd_order_iso"/><enumvalue name="ymd_order_dmy"/><enumvalue name="ymd_order_us"/><purpose>Enum for distinguishing the order of Month, Day, &amp; Year. </purpose><description><para>Enum for distinguishing the order in which Month, Day, &amp; Year will appear in a date string </para></description></enum>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/period.hpp">
+<para>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. </para><namespace name="boost">
+<namespace name="date_time">
+<class name="period"><template>
+ <template-type-parameter name="point_rep"/>
+ <template-type-parameter name="duration_rep"/>
+ </template><inherit access="private">boost::less_than_comparable&lt; period&lt; point_rep, duration_rep &gt;, boost::equality_comparable&lt; period&lt; point_rep, duration_rep &gt; &gt; &gt;</inherit><purpose>Provides generalized period type useful in date-time systems. </purpose><description><para>This template uses a class to represent a time point within the period and another class to represent a duration. As a result, this class is not appropriate for use when the number and duration representation are the same (eg: in the regular number domain).</para><para>A period can be specified by providing either the begining point and a duration or the begining point and the end point( end is NOT part of the period but 1 unit past it. A period will be "invalid" if either end_point &lt;= begin_point or the given duration is &lt;= 0. Any valid period will return false for is_null().</para><para>Zero length periods are also considered invalid. Zero length periods are periods where the begining and end points are the same, or, the given duration is zero. For a zero length period, the last point will be one unit less than the begining point.</para><para>In the case that the begin and last are the same, the period has a length of one unit.</para><para>The best way to handle periods is usually to provide a begining point and a duration. So, day1 + 7 days is a week period which includes all of the first day and 6 more days (eg: Sun to Sat). </para></description><typedef name="point_type"><type>point_rep</type></typedef>
+<typedef name="duration_type"><type>duration_rep</type></typedef>
+<method-group name="public member functions">
+<method name="begin" cv="const"><type>BOOST_CXX14_CONSTEXPR point_rep</type><purpose>Return the first element in the period. </purpose></method>
+<method name="end" cv="const"><type>BOOST_CXX14_CONSTEXPR point_rep</type><purpose>Return one past the last element. </purpose></method>
+<method name="last" cv="const"><type>BOOST_CXX14_CONSTEXPR point_rep</type><purpose>Return the last item in the period. </purpose></method>
+<method name="length" cv="const"><type>BOOST_CXX14_CONSTEXPR duration_rep</type><purpose>Return the length of the period. </purpose></method>
+<method name="is_null" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><purpose>True if period is ill formed (length is zero or less) </purpose></method>
+<method name="operator==" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>period</classname> &amp;</paramtype></parameter><purpose>Equality operator. </purpose></method>
+<method name="operator&lt;" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>period</classname> &amp;</paramtype></parameter><purpose>Strict as defined by rhs.last &lt;= lhs.last. </purpose></method>
+<method name="shift"><type>BOOST_CXX14_CONSTEXPR void</type><parameter name="d"><paramtype>const duration_rep &amp;</paramtype></parameter><purpose>Shift the start and end by the specified amount. </purpose></method>
+<method name="expand"><type>BOOST_CXX14_CONSTEXPR void</type><parameter name="d"><paramtype>const duration_rep &amp;</paramtype></parameter><description><para>Expands the size of the period by the duration on both ends.</para><para>So before expand <programlisting language="c++"> [-------]
+^ ^ ^ ^ ^ ^ ^
+1 2 3 4 5 6 7
+</programlisting> After expand(2) <programlisting language="c++">[----------------------]
+^ ^ ^ ^ ^ ^ ^
+1 2 3 4 5 6 7
+</programlisting> </para></description></method>
+<method name="contains" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="point"><paramtype>const point_rep &amp;</paramtype></parameter><purpose>True if the point is inside the period, zero length periods contain no points. </purpose></method>
+<method name="contains" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="other"><paramtype>const <classname>period</classname> &amp;</paramtype></parameter><purpose>True if this period fully contains (or equals) the other period. </purpose></method>
+<method name="intersects" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="other"><paramtype>const <classname>period</classname> &amp;</paramtype></parameter><purpose>True if the periods overlap in any way. </purpose></method>
+<method name="is_adjacent" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="other"><paramtype>const <classname>period</classname> &amp;</paramtype></parameter><purpose>True if periods are next to each other without a gap. </purpose></method>
+<method name="is_before" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="point"><paramtype>const point_rep &amp;</paramtype></parameter><purpose>True if all of the period is prior to the passed point or end &lt;= t. </purpose></method>
+<method name="is_after" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="point"><paramtype>const point_rep &amp;</paramtype></parameter><purpose>True if all of the period is prior or t &lt; start. </purpose></method>
+<method name="intersection" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>period</classname></type><parameter name="other"><paramtype>const <classname>period</classname> &amp;</paramtype></parameter><purpose>Returns the period of intersection or invalid range no intersection. </purpose></method>
+<method name="merge" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>period</classname></type><parameter name="other"><paramtype>const <classname>period</classname> &amp;</paramtype></parameter><purpose>Returns the union of intersecting periods – or null period. </purpose></method>
+<method name="span" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>period</classname></type><parameter name="other"><paramtype>const <classname>period</classname> &amp;</paramtype></parameter><purpose>Combine two periods with earliest start and latest end. </purpose><description><para>Combines two periods and any gap between them such that start = min(p1.start, p2.start) end = max(p1.end , p2.end) <programlisting language="c++"> [---p1---)
+ [---p2---)
+result:
+ [-----------p3----------)
+</programlisting> </para></description></method>
+</method-group>
+<constructor><parameter name="first_point"><paramtype>point_rep</paramtype></parameter><parameter name="end_point"><paramtype>point_rep</paramtype></parameter><purpose>create a period from begin to last eg: [begin,end) </purpose><description><para>If end &lt;= begin then the period will be invalid </para></description></constructor>
+<constructor><parameter name="first_point"><paramtype>point_rep</paramtype></parameter><parameter name="len"><paramtype>duration_rep</paramtype></parameter><purpose>create a period as [begin, begin+len) </purpose><description><para>If len is &lt;= 0 then the period will be invalid </para></description></constructor>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/period_formatter.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="period_formatter"><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="OutItrT"><default>std::ostreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt;</default></template-type-parameter>
+ </template><purpose>Not a facet, but a class used to specify and control period formats. </purpose><description><para>Provides settings for the following:<itemizedlist>
+<listitem><para>period_separator – default '/'</para>
+</listitem><listitem><para>period_open_start_delimeter – default '['</para>
+</listitem><listitem><para>period_open_range_end_delimeter – default ')'</para>
+</listitem><listitem><para>period_closed_range_end_delimeter – default ']'</para>
+</listitem><listitem><para>display_as_open_range, display_as_closed_range – default closed_range</para>
+</listitem></itemizedlist>
+</para><para>Thus the default formatting for a period is as follows: <programlisting language="c++">[period.start()/period.last()]
+</programlisting> So for a typical date_period this would be <programlisting language="c++">[2004-Jan-04/2004-Feb-01]
+</programlisting> where the date formatting is controlled by the date facet </para></description><enum name="range_display_options"><enumvalue name="AS_OPEN_RANGE"/><enumvalue name="AS_CLOSED_RANGE"/></enum>
+<typedef name="string_type"><type>std::basic_string&lt; CharT &gt;</type></typedef>
+<typedef name="char_type"><type>CharT</type></typedef>
+<typedef name="const_itr_type"><type>std::basic_string&lt; char_type &gt;::const_iterator</type></typedef>
+<typedef name="collection_type"><type>std::vector&lt; std::basic_string&lt; CharT &gt; &gt;</type></typedef>
+<data-member name="default_period_separator" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="default_period_start_delimeter" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="default_period_open_range_end_delimeter" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="default_period_closed_range_end_delimeter" specifiers="static"><type>const char_type</type></data-member>
+<method-group name="public member functions">
+<method name="put_period_separator" cv="const"><type>OutItrT</type><parameter name="oitr"><paramtype>OutItrT &amp;</paramtype></parameter><purpose>Puts the characters between period elements into stream – default is /. </purpose></method>
+<method name="put_period_start_delimeter" cv="const"><type>OutItrT</type><parameter name="oitr"><paramtype>OutItrT &amp;</paramtype></parameter><purpose>Puts the period start characters into stream – default is [. </purpose></method>
+<method name="put_period_end_delimeter" cv="const"><type>OutItrT</type><parameter name="oitr"><paramtype>OutItrT &amp;</paramtype></parameter><purpose>Puts the period end characters into stream as controled by open/closed range setting. </purpose></method>
+<method name="range_option" cv="const"><type>range_display_options</type></method>
+<method name="range_option" cv="const"><type>void</type><parameter name="option"><paramtype>range_display_options</paramtype></parameter><purpose>Reset the range_option control. </purpose></method>
+<method name="delimiter_strings"><type>void</type><parameter name="separator"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="start_delim"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="open_end_delim"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="closed_end_delim"><paramtype>const string_type &amp;</paramtype></parameter><purpose>Change the delimiter strings. </purpose></method>
+<method name="put_period" cv="const"><type>OutItrT</type><template>
+ <template-type-parameter name="period_type"/>
+ <template-type-parameter name="facet_type"/>
+ </template><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="a_fill"><paramtype>char_type</paramtype></parameter><parameter name="p"><paramtype>const period_type &amp;</paramtype></parameter><parameter name="facet"><paramtype>const facet_type &amp;</paramtype></parameter><purpose>Generic code to output a period – no matter the period type. </purpose><description><para>This generic code will output any period using a facet to to output the 'elements'. For example, in the case of a date_period the elements will be instances of a date which will be formatted according the to setup in the passed facet parameter.</para><para>The steps for formatting a period are always the same:<itemizedlist>
+<listitem><para>put the start delimiter</para>
+</listitem><listitem><para>put start element</para>
+</listitem><listitem><para>put the separator</para>
+</listitem><listitem><para>put either last or end element depending on range settings</para>
+</listitem><listitem><para>put end delimeter depending on range settings</para>
+</listitem></itemizedlist>
+</para><para>Thus for a typical date period the result might look like this: <programlisting language="c++">[March 01, 2004/June 07, 2004] &lt;-- closed range
+[March 01, 2004/June 08, 2004) &lt;-- open range
+</programlisting> </para></description></method>
+</method-group>
+<constructor><parameter name="range_option_in"><paramtype>range_display_options</paramtype><default>AS_CLOSED_RANGE</default></parameter><parameter name="period_separator"><paramtype>const char_type *const</paramtype><default>default_period_separator</default></parameter><parameter name="period_start_delimeter"><paramtype>const char_type *const</paramtype><default>default_period_start_delimeter</default></parameter><parameter name="period_open_range_end_delimeter"><paramtype>const char_type *const</paramtype><default>default_period_open_range_end_delimeter</default></parameter><parameter name="period_closed_range_end_delimeter"><paramtype>const char_type *const</paramtype><default>default_period_closed_range_end_delimeter</default></parameter><purpose>Constructor that sets up period formatter options – default should suffice most cases. </purpose></constructor>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/period_parser.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="period_parser"><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="CharT"/>
+ </template><purpose>Not a facet, but a class used to specify and control period parsing. </purpose><description><para>Provides settings for the following:<itemizedlist>
+<listitem><para>period_separator – default '/'</para>
+</listitem><listitem><para>period_open_start_delimeter – default '['</para>
+</listitem><listitem><para>period_open_range_end_delimeter – default ')'</para>
+</listitem><listitem><para>period_closed_range_end_delimeter – default ']'</para>
+</listitem><listitem><para>display_as_open_range, display_as_closed_range – default closed_range</para>
+</listitem></itemizedlist>
+</para><para>For a typical date_period, the contents of the input stream would be <programlisting language="c++">[2004-Jan-04/2004-Feb-01]
+</programlisting> where the date format is controlled by the date facet </para></description><enum name="period_range_option"><enumvalue name="AS_OPEN_RANGE"/><enumvalue name="AS_CLOSED_RANGE"/></enum>
+<typedef name="string_type"><type>std::basic_string&lt; CharT &gt;</type></typedef>
+<typedef name="char_type"><type>CharT</type></typedef>
+<typedef name="stream_itr_type"><type>std::istreambuf_iterator&lt; CharT &gt;</type></typedef>
+<typedef name="parse_tree_type"><type><classname>string_parse_tree</classname>&lt; CharT &gt;</type></typedef>
+<typedef name="match_results"><type><classname>parse_tree_type::parse_match_result_type</classname></type></typedef>
+<typedef name="collection_type"><type>std::vector&lt; std::basic_string&lt; CharT &gt; &gt;</type></typedef>
+<data-member name="default_period_separator" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="default_period_start_delimeter" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="default_period_open_range_end_delimeter" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="default_period_closed_range_end_delimeter" specifiers="static"><type>const char_type</type></data-member>
+<method-group name="public member functions">
+<method name="range_option" cv="const"><type>period_range_option</type></method>
+<method name="range_option"><type>void</type><parameter name="option"><paramtype>period_range_option</paramtype></parameter></method>
+<method name="delimiter_strings" cv="const"><type>collection_type</type></method>
+<method name="delimiter_strings"><type>void</type><parameter name="separator"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="start_delim"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="open_end_delim"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="closed_end_delim"><paramtype>const string_type &amp;</paramtype></parameter></method>
+<method name="get_period" cv="const"><type>period_type</type><template>
+ <template-type-parameter name="period_type"/>
+ <template-type-parameter name="duration_type"/>
+ <template-type-parameter name="facet_type"/>
+ </template><parameter name="sitr"><paramtype>stream_itr_type &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>stream_itr_type &amp;</paramtype></parameter><parameter name="a_ios"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name=""><paramtype>const period_type &amp;</paramtype></parameter><parameter name="dur_unit"><paramtype>const duration_type &amp;</paramtype></parameter><parameter name="facet"><paramtype>const facet_type &amp;</paramtype></parameter><purpose>Generic code to parse a period – no matter the period type. </purpose><description><para>This generic code will parse any period using a facet to to get the 'elements'. For example, in the case of a date_period the elements will be instances of a date which will be parsed according the to setup in the passed facet parameter.</para><para>The steps for parsing a period are always the same:<itemizedlist>
+<listitem><para>consume the start delimiter</para>
+</listitem><listitem><para>get start element</para>
+</listitem><listitem><para>consume the separator</para>
+</listitem><listitem><para>get either last or end element depending on range settings</para>
+</listitem><listitem><para>consume the end delimeter depending on range settings</para>
+</listitem></itemizedlist>
+</para><para>Thus for a typical date period the contents of the input stream might look like this: <programlisting language="c++">[March 01, 2004/June 07, 2004] &lt;-- closed range
+[March 01, 2004/June 08, 2004) &lt;-- open range
+</programlisting> </para></description></method>
+</method-group>
+<constructor><parameter name="range_opt"><paramtype>period_range_option</paramtype><default>AS_CLOSED_RANGE</default></parameter><parameter name="period_separator"><paramtype>const char_type *const</paramtype><default>default_period_separator</default></parameter><parameter name="period_start_delimeter"><paramtype>const char_type *const</paramtype><default>default_period_start_delimeter</default></parameter><parameter name="period_open_range_end_delimeter"><paramtype>const char_type *const</paramtype><default>default_period_open_range_end_delimeter</default></parameter><parameter name="period_closed_range_end_delimeter"><paramtype>const char_type *const</paramtype><default>default_period_closed_range_end_delimeter</default></parameter><purpose>Constructor that sets up period parser options. </purpose></constructor>
+<constructor><parameter name="p_parser"><paramtype>const <classname>period_parser</classname>&lt; date_type, CharT &gt; &amp;</paramtype></parameter></constructor>
+<method-group name="private member functions">
+<method name="consume_delim" cv="const"><type>void</type><parameter name="sitr"><paramtype>stream_itr_type &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>stream_itr_type &amp;</paramtype></parameter><parameter name="delim"><paramtype>const string_type &amp;</paramtype></parameter><purpose>throws ios_base::failure if delimiter and parsed data do not match </purpose></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/special_defs.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<enum name="special_values"><enumvalue name="not_a_date_time"/><enumvalue name="neg_infin"/><enumvalue name="pos_infin"/><enumvalue name="min_date_time"/><enumvalue name="max_date_time"/><enumvalue name="not_special"/><enumvalue name="NumSpecialValues"/></enum>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/special_values_formatter.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="special_values_formatter"><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="OutItrT"><default>std::ostreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt;</default></template-type-parameter>
+ </template><purpose>Class that provides generic formmatting ostream formatting for special values. </purpose><description><para>This class provides for the formmating of special values to an output stream. In particular, it produces strings for the values of negative and positive infinity as well as not_a_date_time.</para><para>While not a facet, this class is used by the date and time facets for formatting special value types. </para></description><typedef name="string_type"><type>std::basic_string&lt; CharT &gt;</type></typedef>
+<typedef name="char_type"><type>CharT</type></typedef>
+<typedef name="collection_type"><type>std::vector&lt; string_type &gt;</type></typedef>
+<data-member name="default_special_value_names" specifiers="static"><type>const char_type</type><purpose>Storage for the strings used to indicate special values. </purpose></data-member>
+<method-group name="public member functions">
+<method name="put_special" cv="const"><type>OutItrT</type><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="value"><paramtype>const boost::date_time::special_values &amp;</paramtype></parameter></method>
+</method-group>
+<constructor><purpose>Construct special values formatter using default strings. </purpose><description><para>Default strings are not-a-date-time -infinity +infinity </para></description></constructor>
+<constructor><parameter name="begin"><paramtype>const char_type *const *</paramtype></parameter><parameter name="end"><paramtype>const char_type *const *</paramtype></parameter><purpose>Construct special values formatter from array of strings. </purpose><description><para>This constructor will take pair of iterators from an array of strings that represent the special values and copy them for use in formatting special values. <programlisting language="c++">const char* const special_value_names[]={"nadt","-inf","+inf" };
+
+special_value_formatter svf(&amp;special_value_names[0], &amp;special_value_names[3]);
+</programlisting> </para></description></constructor>
+<constructor><parameter name="beg"><paramtype>typename collection_type::iterator</paramtype></parameter><parameter name="end"><paramtype>typename collection_type::iterator</paramtype></parameter></constructor>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/special_values_parser.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="special_values_parser"><template>
+ <template-type-parameter name="date_type"/>
+ <template-type-parameter name="charT"/>
+ </template><purpose>Class for special_value parsing. </purpose><description><para>TODO: add doc-comments for which elements can be changed Parses input stream for strings representing special_values. Special values parsed are:<itemizedlist>
+<listitem><para>not_a_date_time</para>
+</listitem><listitem><para>neg_infin</para>
+</listitem><listitem><para>pod_infin</para>
+</listitem><listitem><para>min_date_time</para>
+</listitem><listitem><para>max_date_time </para>
+</listitem></itemizedlist>
+</para></description><typedef name="string_type"><type>std::basic_string&lt; charT &gt;</type></typedef>
+<typedef name="stringstream_type"><type>std::basic_stringstream&lt; charT &gt;</type></typedef>
+<typedef name="stream_itr_type"><type>std::istreambuf_iterator&lt; charT &gt;</type></typedef>
+<typedef name="duration_type"><type>date_type::duration_type</type></typedef>
+<typedef name="parse_tree_type"><type><classname>string_parse_tree</classname>&lt; charT &gt;</type></typedef>
+<typedef name="match_results"><type><classname>parse_tree_type::parse_match_result_type</classname></type></typedef>
+<typedef name="collection_type"><type>std::vector&lt; std::basic_string&lt; charT &gt; &gt;</type></typedef>
+<typedef name="char_type"><type>charT</type></typedef>
+<data-member name="nadt_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="neg_inf_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="pos_inf_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="min_date_time_string" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="max_date_time_string" specifiers="static"><type>const char_type</type></data-member>
+<method-group name="public member functions">
+<method name="sv_strings"><type>void</type><parameter name="nadt_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="neg_inf_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="pos_inf_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="min_dt_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="max_dt_str"><paramtype>const string_type &amp;</paramtype></parameter><purpose>Replace special value strings. </purpose></method>
+<method name="match" cv="const"><type>bool</type><parameter name="sitr"><paramtype>stream_itr_type &amp;</paramtype><description><para>the start iterator </para></description></parameter><parameter name="str_end"><paramtype>stream_itr_type &amp;</paramtype><description><para>the end iterator </para></description></parameter><parameter name="mr"><paramtype><classname>match_results</classname> &amp;</paramtype><description><para>the match result: mr.current_match is set to the corresponding special_value or -1 </para></description></parameter><description><para>Given an input iterator, attempt to match it to a known special value
+
+</para></description><returns><para>whether something matched </para>
+</returns></method>
+</method-group>
+<constructor><purpose>Creates a <classname alt="boost::date_time::special_values_parser">special_values_parser</classname> with the default set of "sv_strings". </purpose></constructor>
+<constructor><parameter name="nadt_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="neg_inf_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="pos_inf_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="min_dt_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="max_dt_str"><paramtype>const string_type &amp;</paramtype></parameter><purpose>Creates a <classname alt="boost::date_time::special_values_parser">special_values_parser</classname> using a user defined set of element strings. </purpose></constructor>
+<constructor><parameter name="beg"><paramtype>typename collection_type::iterator</paramtype></parameter><parameter name="end"><paramtype>typename collection_type::iterator</paramtype></parameter></constructor>
+<constructor><parameter name="svp"><paramtype>const <classname>special_values_parser</classname>&lt; date_type, charT &gt; &amp;</paramtype></parameter></constructor>
+<method-group name="public static functions">
+<method name="likely" specifiers="static"><type>bool</type><parameter name="str"><paramtype>const string_type &amp;</paramtype><description><para>the string to check </para></description></parameter><description><para>The parser is expensive to create, and not thread-safe so it cannot be static therefore given a string, determine if it is likely to be a special value. A negative response is a definite no, whereas a positive is only likely and match() should be called and return value checked.
+
+</para></description><returns><para>false if it is definitely not a special value </para>
+</returns></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/string_convert.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+
+
+
+
+
+
+
+
+
+
+
+<function name="convert_string_type"><type>std::basic_string&lt; OutputT &gt;</type><template>
+ <template-type-parameter name="InputT"/>
+ <template-type-parameter name="OutputT"/>
+ </template><parameter name="inp_str"><paramtype>const std::basic_string&lt; InputT &gt; &amp;</paramtype></parameter><purpose>Converts a string from one value_type to another. </purpose><description><para>Converts a wstring to a string (or a string to wstring). If both template parameters are of same type, a copy of the input string is returned. </para></description></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/string_parse_tree.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<struct name="parse_match_result"><template>
+ <template-type-parameter name="charT"/>
+ </template><enum name="PARSE_STATE"><enumvalue name="PARSE_ERROR"><default>= -1</default></enumvalue></enum>
+<typedef name="string_type"><type>std::basic_string&lt; charT &gt;</type></typedef>
+<data-member name="cache"><type>string_type</type></data-member>
+<data-member name="match_depth"><type>unsigned short</type></data-member>
+<data-member name="current_match"><type>short</type></data-member>
+<method-group name="public member functions">
+<method name="remaining" cv="const"><type>string_type</type></method>
+<method name="last_char" cv="const"><type>charT</type></method>
+<method name="has_remaining" cv="const"><type>bool</type><purpose>Returns true if more characters were parsed than was necessary. </purpose><description><para>Should be used in conjunction with last_char() to get the remaining character. </para></description></method>
+</method-group>
+<constructor/>
+</struct><struct name="string_parse_tree"><template>
+ <template-type-parameter name="charT"/>
+ </template><purpose>Recursive data structure to allow efficient parsing of various strings. </purpose><description><para>This class provides a quick lookup by building what amounts to a tree data structure. It also features a match function which can can handle nasty input interators by caching values as it recurses the tree so that it can backtrack as needed. </para></description><typedef name="ptree_coll"><type>std::multimap&lt; charT, <classname>string_parse_tree</classname>&lt; charT &gt; &gt;</type></typedef>
+<typedef name="ptree_coll"><type>std::multimap&lt; charT, <classname>string_parse_tree</classname> &gt;</type></typedef>
+<typedef name="value_type"><type>ptree_coll::value_type</type></typedef>
+<typedef name="iterator"><type>ptree_coll::iterator</type></typedef>
+<typedef name="const_iterator"><type>ptree_coll::const_iterator</type></typedef>
+<typedef name="string_type"><type>std::basic_string&lt; charT &gt;</type></typedef>
+<typedef name="collection_type"><type>std::vector&lt; std::basic_string&lt; charT &gt; &gt;</type></typedef>
+<typedef name="parse_match_result_type"><type><classname>parse_match_result</classname>&lt; charT &gt;</type></typedef>
+<data-member name="m_next_chars"><type>ptree_coll</type></data-member>
+<data-member name="m_value"><type>short</type></data-member>
+<method-group name="public member functions">
+<method name="insert"><type>void</type><parameter name="s"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="value"><paramtype>unsigned short</paramtype></parameter></method>
+<method name="match" cv="const"><type>short</type><parameter name="sitr"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="result"><paramtype><classname>parse_match_result_type</classname> &amp;</paramtype></parameter><parameter name="level"><paramtype>unsigned int &amp;</paramtype></parameter><purpose>Recursive function that finds a matching string in the tree. </purpose><description><para>Must check match_results::has_remaining() after match() is called. This is required so the user can determine if stream iterator is already pointing to the expected character or not (match() might advance sitr to next char in stream).</para><para>A <classname alt="boost::date_time::parse_match_result">parse_match_result</classname> that has been returned from a failed match attempt can be sent in to the match function of a different <classname alt="boost::date_time::string_parse_tree">string_parse_tree</classname> to attempt a match there. Use the iterators for the partially consumed stream, the <classname alt="boost::date_time::parse_match_result">parse_match_result</classname> object, and '0' for the level parameter. </para></description></method>
+<method name="match" cv="const"><type><classname>parse_match_result_type</classname></type><parameter name="sitr"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>std::istreambuf_iterator&lt; charT &gt; &amp;</paramtype></parameter><description><para>Must check match_results::has_remaining() after match() is called. This is required so the user can determine if stream iterator is already pointing to the expected character or not (match() might advance sitr to next char in stream). </para></description></method>
+<method name="printme"><type>void</type><parameter name="os"><paramtype>std::ostream &amp;</paramtype></parameter><parameter name="level"><paramtype>int &amp;</paramtype></parameter></method>
+<method name="print"><type>void</type><parameter name="os"><paramtype>std::ostream &amp;</paramtype></parameter></method>
+<method name="printmatch"><type>void</type><parameter name="os"><paramtype>std::ostream &amp;</paramtype></parameter><parameter name="c"><paramtype>charT</paramtype></parameter></method>
+</method-group>
+<constructor><parameter name="names"><paramtype>collection_type</paramtype></parameter><parameter name="starting_point"><paramtype>unsigned int</paramtype><default>0</default></parameter><description><para>Parameter "starting_point" designates where the numbering begins. A starting_point of zero will start the numbering at zero (Sun=0, Mon=1, ...) were a starting_point of one starts the numbering at one (Jan=1, Feb=2, ...). The default is zero, negative vaules are not allowed </para></description></constructor>
+<constructor><parameter name="value"><paramtype>short</paramtype><default>parse_match_result_type::PARSE_ERROR</default></parameter></constructor>
+</struct>
+
+
+
+
+
+
+
+
+
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; charT &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; charT &gt; &amp;</paramtype></parameter><parameter name="mr"><paramtype><classname>parse_match_result</classname>&lt; charT &gt; &amp;</paramtype></parameter></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/strings_from_facet.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+
+
+
+
+
+
+
+
+<function name="gather_month_strings"><type>std::vector&lt; std::basic_string&lt; charT &gt; &gt;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="locale"><paramtype>const std::locale &amp;</paramtype><description><para>The locale to use when gathering the strings </para></description></parameter><parameter name="short_strings"><paramtype>bool</paramtype><default>true</default><description><para>True(default) to gather short strings, false for long strings. </para></description></parameter><purpose>This function gathers up all the month strings from a std::locale. </purpose><description><para>Using the time_put facet, this function creates a collection of all the month strings from a locale. This is handy when building custom date parsers or formatters that need to be localized.</para><para>
+
+</para></description><returns><para>A vector of strings containing the strings in order. eg: Jan, Feb, Mar, etc. </para>
+</returns></function>
+<function name="gather_weekday_strings"><type>std::vector&lt; std::basic_string&lt; charT &gt; &gt;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="locale"><paramtype>const std::locale &amp;</paramtype><description><para>The locale to use when gathering the strings </para></description></parameter><parameter name="short_strings"><paramtype>bool</paramtype><default>true</default><description><para>True(default) to gather short strings, false for long strings. </para></description></parameter><purpose>This function gathers up all the weekday strings from a std::locale. </purpose><description><para>Using the time_put facet, this function creates a collection of all the weekday strings from a locale starting with the string for 'Sunday'. This is handy when building custom date parsers or formatters that need to be localized.</para><para>
+
+</para></description><returns><para>A vector of strings containing the weekdays in order. eg: Sun, Mon, Tue, Wed, Thu, Fri, Sat </para>
+</returns></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/time.hpp">
+<para>This file contains the interface for the time associated classes. </para><namespace name="boost">
+<namespace name="date_time">
+<class name="base_time"><template>
+ <template-type-parameter name="T"/>
+ <template-type-parameter name="time_system"/>
+ </template><inherit access="private">boost::less_than_comparable&lt; T, boost::equality_comparable&lt; T &gt; &gt;</inherit><purpose>Representation of a precise moment in time, including the date. </purpose><description><para>This class is a skeleton for the interface of a temporal type with a resolution that is higher than a day. It is intended that this class be the base class and that the actual time class be derived using the BN pattern. In this way, the derived class can make decisions such as 'should there be a default constructor' and what should it set its value to, should there be optional constructors say allowing only an time_durations that generate a time from a clock,etc. So, in fact multiple time types can be created for a time_system with different construction policies, and all of them can perform basic operations by only writing a copy constructor. Finally, compiler errors are also shorter.</para><para>The real behavior of the time class is provided by the time_system template parameter. This class must provide all the logic for addition, subtraction, as well as define all the interface types. </para></description><typedef name="_is_boost_date_time_time_point"><type>void</type></typedef>
+<typedef name="time_type"><type>T</type></typedef>
+<typedef name="time_rep_type"><type>time_system::time_rep_type</type></typedef>
+<typedef name="date_type"><type>time_system::date_type</type></typedef>
+<typedef name="date_duration_type"><type>time_system::date_duration_type</type></typedef>
+<typedef name="time_duration_type"><type>time_system::time_duration_type</type></typedef>
+<method-group name="public member functions">
+<method name="date" cv="const"><type>BOOST_CXX14_CONSTEXPR date_type</type></method>
+<method name="time_of_day" cv="const"><type>BOOST_CXX14_CONSTEXPR time_duration_type</type></method>
+<method name="zone_name" cv="const"><type>std::string</type><parameter name=""><paramtype>bool</paramtype><default>false</default></parameter><description><para>Optional bool parameter will return time zone as an offset (ie "+07:00"). Empty string is returned for classes that do not use a time_zone </para></description></method>
+<method name="zone_abbrev" cv="const"><type>std::string</type><parameter name=""><paramtype>bool</paramtype><default>false</default></parameter><description><para>Optional bool parameter will return time zone as an offset (ie "+07:00"). Empty string is returned for classes that do not use a time_zone </para></description></method>
+<method name="zone_as_posix_string" cv="const"><type>std::string</type><purpose>An empty string is returned for classes that do not use a time_zone. </purpose></method>
+<method name="is_not_a_date_time" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><purpose>check to see if date is not a value </purpose></method>
+<method name="is_infinity" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><purpose>check to see if date is one of the infinity values </purpose></method>
+<method name="is_pos_infinity" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><purpose>check to see if date is greater than all possible dates </purpose></method>
+<method name="is_neg_infinity" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><purpose>check to see if date is greater than all possible dates </purpose></method>
+<method name="is_special" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><purpose>check to see if time is a special value </purpose></method>
+<method name="operator==" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const time_type &amp;</paramtype></parameter><purpose>Equality operator – others generated by boost::equality_comparable. </purpose></method>
+<method name="operator&lt;" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const time_type &amp;</paramtype></parameter><purpose>Equality operator – others generated by boost::less_than_comparable. </purpose></method>
+<method name="operator-" cv="const"><type>BOOST_CXX14_CONSTEXPR time_duration_type</type><parameter name="rhs"><paramtype>const time_type &amp;</paramtype></parameter><purpose>difference between two times </purpose></method>
+<method name="operator+" cv="const"><type>BOOST_CXX14_CONSTEXPR time_type</type><parameter name="dd"><paramtype>const date_duration_type &amp;</paramtype></parameter><purpose>add date durations </purpose></method>
+<method name="operator+="><type>BOOST_CXX14_CONSTEXPR time_type</type><parameter name="dd"><paramtype>const date_duration_type &amp;</paramtype></parameter></method>
+<method name="operator-" cv="const"><type>BOOST_CXX14_CONSTEXPR time_type</type><parameter name="dd"><paramtype>const date_duration_type &amp;</paramtype></parameter><purpose>subtract date durations </purpose></method>
+<method name="operator-="><type>BOOST_CXX14_CONSTEXPR time_type</type><parameter name="dd"><paramtype>const date_duration_type &amp;</paramtype></parameter></method>
+<method name="operator+" cv="const"><type>BOOST_CXX14_CONSTEXPR time_type</type><parameter name="td"><paramtype>const time_duration_type &amp;</paramtype></parameter><purpose>add time durations </purpose></method>
+<method name="operator+="><type>BOOST_CXX14_CONSTEXPR time_type</type><parameter name="td"><paramtype>const time_duration_type &amp;</paramtype></parameter></method>
+<method name="operator-" cv="const"><type>BOOST_CXX14_CONSTEXPR time_type</type><parameter name="rhs"><paramtype>const time_duration_type &amp;</paramtype></parameter><purpose>subtract time durations </purpose></method>
+<method name="operator-="><type>BOOST_CXX14_CONSTEXPR time_type</type><parameter name="td"><paramtype>const time_duration_type &amp;</paramtype></parameter></method>
+</method-group>
+<constructor><parameter name="day"><paramtype>const date_type &amp;</paramtype></parameter><parameter name="td"><paramtype>const time_duration_type &amp;</paramtype></parameter><parameter name="dst"><paramtype>dst_flags</paramtype><default>not_dst</default></parameter></constructor>
+<constructor><parameter name="sv"><paramtype>special_values</paramtype></parameter></constructor>
+<constructor><parameter name="rhs"><paramtype>const time_rep_type &amp;</paramtype></parameter></constructor>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/time_clock.hpp">
+<para>This file contains the interface for clock devices. </para><namespace name="boost">
+<namespace name="date_time">
+<class name="second_clock"><template>
+ <template-type-parameter name="time_type"/>
+ </template><purpose>A clock providing time level services based on C time_t capabilities. </purpose><description><para>This clock provides resolution to the 1 second level </para></description><typedef name="date_type"><type>time_type::date_type</type></typedef>
+<typedef name="time_duration_type"><type>time_type::time_duration_type</type></typedef>
+<method-group name="public static functions">
+<method name="local_time" specifiers="static"><type>time_type</type></method>
+<method name="universal_time" specifiers="static"><type>time_type</type><purpose>Get the current day in universal date as a ymd_type. </purpose></method>
+<method name="local_time" specifiers="static"><type>time_type</type><template>
+ <template-type-parameter name="time_zone_type"/>
+ </template><parameter name="tz_ptr"><paramtype>boost::shared_ptr&lt; time_zone_type &gt;</paramtype></parameter></method>
+</method-group>
+<method-group name="private static functions">
+<method name="create_time" specifiers="static"><type>time_type</type><parameter name="current"><paramtype>::std::tm *</paramtype></parameter></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/time_defs.hpp">
+<para>This file contains nice definitions for handling the resoluion of various time reprsentations. </para><namespace name="boost">
+<namespace name="date_time">
+<enum name="time_resolutions"><enumvalue name="sec"/><enumvalue name="tenth"/><enumvalue name="hundreth"/><enumvalue name="hundredth"><default>= hundreth</default></enumvalue><enumvalue name="milli"/><enumvalue name="ten_thousandth"/><enumvalue name="micro"/><enumvalue name="nano"/><enumvalue name="NumResolutions"/><purpose>Defines some nice types for handling time level resolutions. </purpose></enum>
+<enum name="dst_flags"><enumvalue name="not_dst"/><enumvalue name="is_dst"/><enumvalue name="calculate"/><purpose>Flags for daylight savings or summer time. </purpose></enum>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/time_duration.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="subsecond_duration"><template>
+ <template-type-parameter name="base_duration"/>
+ <template-nontype-parameter name="frac_of_second"><type>boost::int64_t</type></template-nontype-parameter>
+ </template><inherit access="public">base_duration</inherit><purpose>Template for instantiating derived adjusting durations. </purpose><typedef name="impl_type"><type>base_duration::impl_type</type></typedef>
+<typedef name="traits_type"><type>base_duration::traits_type</type></typedef>
+<method-group name="private member functions">
+<method name="BOOST_STATIC_ASSERT_MSG"><type/><parameter name=""><paramtype>(traits_type::ticks_per_second &gt;=frac_of_second ? traits_type::ticks_per_second % frac_of_second :frac_of_second % traits_type::ticks_per_second)</paramtype><default>=0</default></parameter><parameter name=""><paramtype>\ "The base duration resolution must be a multiple of the subsecond duration resolution"</paramtype></parameter></method>
+<method name="BOOST_STATIC_CONSTANT"><type/><parameter name=""><paramtype>boost::int64_t</paramtype></parameter><parameter name=""><paramtype>adjustment_ratio</paramtype><default>(traits_type::ticks_per_second &gt;=frac_of_second ? traits_type::ticks_per_second/frac_of_second :frac_of_second/traits_type::ticks_per_second)</default></parameter></method>
+</method-group>
+<method-group name="public member functions">
+</method-group>
+<constructor specifiers="explicit"><template>
+ <template-type-parameter name="T"/>
+ </template><parameter name="ss"><paramtype>T const &amp;</paramtype></parameter><parameter name=""><paramtype>typename boost::enable_if&lt; boost::is_integral&lt; T &gt;, void &gt;::type *</paramtype><default>BOOST_DATE_TIME_NULLPTR</default></parameter></constructor>
+</class><class name="time_duration"><template>
+ <template-type-parameter name="T"><purpose><para>The subclass type </para></purpose></template-type-parameter>
+ <template-type-parameter name="rep_type"><purpose><para>The time resolution traits for this duration type. </para></purpose></template-type-parameter>
+ </template><inherit access="private">boost::less_than_comparable&lt; T, boost::equality_comparable&lt; T &gt; &gt;</inherit><purpose>Represents some amount of elapsed time measure to a given resolution. </purpose><description><para>This class represents a standard set of capabilities for all counted time durations. Time duration implementations should derive from this class passing their type as the first template parameter. This design allows the subclass duration types to provide custom construction policies or other custom features not provided here.</para><para>
+</para></description><typedef name="_is_boost_date_time_duration"><type>void</type></typedef>
+<typedef name="duration_type"><type>T</type></typedef>
+<typedef name="traits_type"><type>rep_type</type></typedef>
+<typedef name="day_type"><type>rep_type::day_type</type></typedef>
+<typedef name="hour_type"><type>rep_type::hour_type</type></typedef>
+<typedef name="min_type"><type>rep_type::min_type</type></typedef>
+<typedef name="sec_type"><type>rep_type::sec_type</type></typedef>
+<typedef name="fractional_seconds_type"><type>rep_type::fractional_seconds_type</type></typedef>
+<typedef name="tick_type"><type>rep_type::tick_type</type></typedef>
+<typedef name="impl_type"><type>rep_type::impl_type</type></typedef>
+<method-group name="public member functions">
+<method name="hours" cv="const"><type>BOOST_CXX14_CONSTEXPR hour_type</type><purpose>Returns number of hours in the duration. </purpose></method>
+<method name="minutes" cv="const"><type>BOOST_CXX14_CONSTEXPR min_type</type><purpose>Returns normalized number of minutes. </purpose></method>
+<method name="seconds" cv="const"><type>BOOST_CXX14_CONSTEXPR sec_type</type><purpose>Returns normalized number of seconds (0..60) </purpose></method>
+<method name="total_seconds" cv="const"><type>BOOST_CXX14_CONSTEXPR sec_type</type><purpose>Returns total number of seconds truncating any fractional seconds. </purpose></method>
+<method name="total_milliseconds" cv="const"><type>BOOST_CXX14_CONSTEXPR tick_type</type><purpose>Returns total number of milliseconds truncating any fractional seconds. </purpose></method>
+<method name="total_nanoseconds" cv="const"><type>BOOST_CXX14_CONSTEXPR tick_type</type><purpose>Returns total number of nanoseconds truncating any sub millisecond values. </purpose></method>
+<method name="total_microseconds" cv="const"><type>BOOST_CXX14_CONSTEXPR tick_type</type><purpose>Returns total number of microseconds truncating any sub microsecond values. </purpose></method>
+<method name="fractional_seconds" cv="const"><type>BOOST_CXX14_CONSTEXPR fractional_seconds_type</type><purpose>Returns count of fractional seconds at given resolution. </purpose></method>
+<method name="invert_sign" cv="const"><type>BOOST_CXX14_CONSTEXPR duration_type</type></method>
+<method name="abs" cv="const"><type>BOOST_CXX14_CONSTEXPR duration_type</type></method>
+<method name="is_negative" cv="const"><type>BOOST_CONSTEXPR bool</type></method>
+<method name="is_zero" cv="const"><type>BOOST_CONSTEXPR bool</type></method>
+<method name="is_positive" cv="const"><type>BOOST_CONSTEXPR bool</type></method>
+<method name="operator&lt;" cv="const"><type>BOOST_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>time_duration</classname> &amp;</paramtype></parameter></method>
+<method name="operator==" cv="const"><type>BOOST_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>time_duration</classname> &amp;</paramtype></parameter></method>
+<method name="operator-" cv="const"><type>BOOST_CONSTEXPR duration_type</type><purpose>unary- Allows for <classname alt="boost::date_time::time_duration">time_duration</classname> td = -td1 </purpose></method>
+<method name="operator-" cv="const"><type>BOOST_CONSTEXPR duration_type</type><parameter name="d"><paramtype>const duration_type &amp;</paramtype></parameter></method>
+<method name="operator+" cv="const"><type>BOOST_CONSTEXPR duration_type</type><parameter name="d"><paramtype>const duration_type &amp;</paramtype></parameter></method>
+<method name="operator/" cv="const"><type>BOOST_CONSTEXPR duration_type</type><parameter name="divisor"><paramtype>int</paramtype></parameter></method>
+<method name="operator-="><type>BOOST_CXX14_CONSTEXPR duration_type</type><parameter name="d"><paramtype>const duration_type &amp;</paramtype></parameter></method>
+<method name="operator+="><type>BOOST_CXX14_CONSTEXPR duration_type</type><parameter name="d"><paramtype>const duration_type &amp;</paramtype></parameter></method>
+<method name="operator/="><type>BOOST_CXX14_CONSTEXPR duration_type</type><parameter name="divisor"><paramtype>int</paramtype></parameter><purpose>Division operations on a duration with an integer. </purpose></method>
+<method name="operator *" cv="const"><type>BOOST_CXX14_CONSTEXPR duration_type</type><parameter name="rhs"><paramtype>int</paramtype></parameter><purpose>Multiplication operations an a duration with an integer. </purpose></method>
+<method name="operator *="><type>BOOST_CXX14_CONSTEXPR duration_type</type><parameter name="divisor"><paramtype>int</paramtype></parameter></method>
+<method name="ticks" cv="const"><type>BOOST_CXX14_CONSTEXPR tick_type</type></method>
+<method name="is_special" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><purpose>Is ticks_ a special value? </purpose></method>
+<method name="is_pos_infinity" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><purpose>Is duration pos-infinity. </purpose></method>
+<method name="is_neg_infinity" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><purpose>Is duration neg-infinity. </purpose></method>
+<method name="is_not_a_date_time" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><purpose>Is duration not-a-date-time. </purpose></method>
+<method name="get_rep" cv="const"><type>BOOST_CONSTEXPR impl_type</type><purpose>Used for special_values output. </purpose></method>
+</method-group>
+<constructor/>
+<constructor><parameter name="hours_in"><paramtype>hour_type</paramtype></parameter><parameter name="minutes_in"><paramtype>min_type</paramtype></parameter><parameter name="seconds_in"><paramtype>sec_type</paramtype><default>0</default></parameter><parameter name="frac_sec_in"><paramtype>fractional_seconds_type</paramtype><default>0</default></parameter></constructor>
+<constructor><parameter name="other"><paramtype>const <classname>time_duration</classname>&lt; T, rep_type &gt; &amp;</paramtype></parameter><purpose>Construct from another <classname alt="boost::date_time::time_duration">time_duration</classname> (Copy constructor) </purpose></constructor>
+<constructor><parameter name="sv"><paramtype>special_values</paramtype></parameter><purpose>Construct from special_values. </purpose></constructor>
+<method-group name="public static functions">
+<method name="unit" specifiers="static"><type>BOOST_CXX14_CONSTEXPR duration_type</type><purpose>Returns smallest representable duration. </purpose></method>
+<method name="ticks_per_second" specifiers="static"><type>BOOST_CXX14_CONSTEXPR tick_type</type><purpose>Return the number of ticks in a second. </purpose></method>
+<method name="resolution" specifiers="static"><type>BOOST_CXX14_CONSTEXPR time_resolutions</type><purpose>Provide the resolution of this duration type. </purpose></method>
+<method name="num_fractional_digits" specifiers="static"><type>BOOST_CXX14_CONSTEXPR unsigned short</type><purpose>Returns number of possible digits in fractional seconds. </purpose></method>
+</method-group>
+<method-group name="protected member functions">
+</method-group>
+<constructor specifiers="explicit"><parameter name="in"><paramtype>impl_type</paramtype></parameter></constructor>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/time_facet.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="time_facet"><template>
+ <template-type-parameter name="time_type"/>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="OutItrT"><default>std::ostreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt;</default></template-type-parameter>
+ </template><inherit access="public">boost::date_time::date_facet&lt; time_type::date_type, CharT, OutItrT &gt;</inherit><description><para>Facet used for format-based output of time types This class provides for the use of format strings to output times. In addition to the flags for formatting date elements, the following are the allowed format flags:<itemizedlist>
+<listitem><para>x X =&gt; default format - enables addition of more flags to default (ie. "%x %X %z")</para>
+</listitem><listitem><para>f =&gt; fractional seconds ".123456"</para>
+</listitem><listitem><para>F =&gt; fractional seconds or none: like frac sec but empty if frac sec == 0</para>
+</listitem><listitem><para>s =&gt; seconds w/ fractional sec "02.123" (this is the same as "%S%f)
+ - %S =&gt; seconds "02"
+ - %z =&gt; abbreviated time zone "EDT"
+ - %Z =&gt; full time zone name "Eastern Daylight Time" </para>
+</listitem></itemizedlist>
+</para></description><typedef name="date_type"><type>time_type::date_type</type></typedef>
+<typedef name="time_duration_type"><type>time_type::time_duration_type</type></typedef>
+<typedef name="period_type"><type><classname>boost::date_time::period</classname>&lt; time_type, time_duration_type &gt;</type></typedef>
+<typedef name="base_type"><type><classname>boost::date_time::date_facet</classname>&lt; typename time_type::date_type, CharT, OutItrT &gt;</type></typedef>
+<typedef name="string_type"><type>base_type::string_type</type></typedef>
+<typedef name="char_type"><type>base_type::char_type</type></typedef>
+<typedef name="period_formatter_type"><type><classname>base_type::period_formatter_type</classname></type></typedef>
+<typedef name="special_values_formatter_type"><type><classname>base_type::special_values_formatter_type</classname></type></typedef>
+<typedef name="date_gen_formatter_type"><type><classname>base_type::date_gen_formatter_type</classname></type></typedef>
+<data-member name="fractional_seconds_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="fractional_seconds_or_none_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="seconds_with_fractional_seconds_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="seconds_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="hours_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="unrestricted_hours_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="standard_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="zone_abbrev_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="zone_name_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="zone_iso_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="zone_iso_extended_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="posix_zone_string_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="duration_seperator" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="duration_sign_always" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="duration_sign_negative_only" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="negative_sign" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="positive_sign" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="iso_time_format_specifier" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="iso_time_format_extended_specifier" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="default_time_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="default_time_duration_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="id" specifiers="static"><type>std::locale::id</type></data-member>
+<method-group name="public member functions">
+<method name="__get_id" cv="const"><type>std::locale::id &amp;</type><parameter name=""><paramtype>void</paramtype></parameter></method>
+<method name="time_duration_format"><type>void</type><parameter name="format"><paramtype>const char_type *const</paramtype></parameter><purpose>Changes format for <classname alt="boost::date_time::time_duration">time_duration</classname>. </purpose></method>
+<method name="set_iso_format" specifiers="virtual"><type>void</type></method>
+<method name="set_iso_extended_format" specifiers="virtual"><type>void</type></method>
+<method name="put" cv="const"><type>OutItrT</type><parameter name="next_arg"><paramtype>OutItrT</paramtype></parameter><parameter name="ios_arg"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fill_arg"><paramtype>char_type</paramtype></parameter><parameter name="time_arg"><paramtype>const time_type &amp;</paramtype></parameter></method>
+<method name="put" cv="const"><type>OutItrT</type><parameter name="next_arg"><paramtype>OutItrT</paramtype></parameter><parameter name="ios_arg"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fill_arg"><paramtype>char_type</paramtype></parameter><parameter name="time_dur_arg"><paramtype>const time_duration_type &amp;</paramtype></parameter><purpose>put function for <classname alt="boost::date_time::time_duration">time_duration</classname> </purpose></method>
+<method name="put" cv="const"><type>OutItrT</type><parameter name="next"><paramtype>OutItrT</paramtype></parameter><parameter name="ios_arg"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="fill"><paramtype>char_type</paramtype></parameter><parameter name="p"><paramtype>const <classname>period_type</classname> &amp;</paramtype></parameter></method>
+</method-group>
+<constructor specifiers="explicit"><parameter name="ref_arg"><paramtype>::size_t</paramtype><default>0</default></parameter><purpose>sets default formats for ptime, local_date_time, and <classname alt="boost::date_time::time_duration">time_duration</classname> </purpose></constructor>
+<constructor specifiers="explicit"><parameter name="format_arg"><paramtype>const char_type *</paramtype></parameter><parameter name="period_formatter_arg"><paramtype><classname>period_formatter_type</classname></paramtype><default><classname alt="boost::date_time::period_formatter">period_formatter_type</classname>()</default></parameter><parameter name="special_value_formatter"><paramtype>const <classname>special_values_formatter_type</classname> &amp;</paramtype><default><classname alt="boost::date_time::special_values_formatter">special_values_formatter_type</classname>()</default></parameter><parameter name="dg_formatter"><paramtype><classname>date_gen_formatter_type</classname></paramtype><default><classname alt="boost::date_time::date_generator_formatter">date_gen_formatter_type</classname>()</default></parameter><parameter name="ref_arg"><paramtype>::size_t</paramtype><default>0</default></parameter><purpose>Construct the facet with an explicitly specified format. </purpose></constructor>
+<method-group name="protected static functions">
+<method name="fractional_seconds_as_string" specifiers="static"><type>string_type</type><parameter name="time_arg"><paramtype>const time_duration_type &amp;</paramtype></parameter><parameter name="null_when_zero"><paramtype>bool</paramtype></parameter></method>
+<method name="hours_as_string" specifiers="static"><type>string_type</type><parameter name="time_arg"><paramtype>const time_duration_type &amp;</paramtype></parameter><parameter name="width"><paramtype>int</paramtype><default>2</default></parameter></method>
+<method name="integral_as_string" specifiers="static"><type>string_type</type><template>
+ <template-type-parameter name="IntT"/>
+ </template><parameter name="val"><paramtype>IntT</paramtype></parameter><parameter name="width"><paramtype>int</paramtype><default>2</default></parameter></method>
+</method-group>
+</class><struct name="time_formats"><template>
+ <template-type-parameter name="CharT"/>
+ </template><typedef name="char_type"><type>CharT</type></typedef>
+<data-member name="fractional_seconds_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="fractional_seconds_or_none_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="seconds_with_fractional_seconds_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="seconds_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="hours_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="unrestricted_hours_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="full_24_hour_time_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="full_24_hour_time_expanded_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="short_24_hour_time_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="short_24_hour_time_expanded_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="standard_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="zone_abbrev_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="zone_name_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="zone_iso_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="zone_iso_extended_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="posix_zone_string_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="duration_sign_negative_only" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="duration_sign_always" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="duration_seperator" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="negative_sign" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="positive_sign" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="iso_time_format_specifier" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="iso_time_format_extended_specifier" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="default_time_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="default_time_input_format" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="default_time_duration_format" specifiers="static"><type>const char_type</type></data-member>
+</struct><class name="time_input_facet"><template>
+ <template-type-parameter name="time_type"/>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="InItrT"><default>std::istreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt;</default></template-type-parameter>
+ </template><inherit access="public">boost::date_time::date_input_facet&lt; time_type::date_type, CharT, InItrT &gt;</inherit><purpose>Facet for format-based input. </purpose><typedef name="date_type"><type>time_type::date_type</type></typedef>
+<typedef name="time_duration_type"><type>time_type::time_duration_type</type></typedef>
+<typedef name="fracional_seconds_type"><type>time_duration_type::fractional_seconds_type</type></typedef>
+<typedef name="period_type"><type><classname>boost::date_time::period</classname>&lt; time_type, time_duration_type &gt;</type></typedef>
+<typedef name="base_type"><type><classname>boost::date_time::date_input_facet</classname>&lt; typename time_type::date_type, CharT, InItrT &gt;</type></typedef>
+<typedef name="date_duration_type"><type>base_type::duration_type</type></typedef>
+<typedef name="year_type"><type>base_type::year_type</type></typedef>
+<typedef name="month_type"><type>base_type::month_type</type></typedef>
+<typedef name="day_type"><type>base_type::day_type</type></typedef>
+<typedef name="string_type"><type>base_type::string_type</type></typedef>
+<typedef name="const_itr"><type>string_type::const_iterator</type></typedef>
+<typedef name="char_type"><type>base_type::char_type</type></typedef>
+<typedef name="format_date_parser_type"><type><classname>base_type::format_date_parser_type</classname></type></typedef>
+<typedef name="period_parser_type"><type><classname>base_type::period_parser_type</classname></type></typedef>
+<typedef name="special_values_parser_type"><type><classname>base_type::special_values_parser_type</classname></type></typedef>
+<typedef name="date_gen_parser_type"><type><classname>base_type::date_gen_parser_type</classname></type></typedef>
+<typedef name="match_results"><type>base_type::special_values_parser_type::match_results</type></typedef>
+<data-member name="fractional_seconds_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="fractional_seconds_or_none_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="seconds_with_fractional_seconds_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="seconds_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="standard_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="zone_abbrev_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="zone_name_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="zone_iso_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="zone_iso_extended_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="duration_seperator" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="iso_time_format_specifier" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="iso_time_format_extended_specifier" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="default_time_input_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="default_time_duration_format" specifiers="static"><type>const char_type *</type></data-member>
+<data-member name="id" specifiers="static"><type>std::locale::id</type></data-member>
+<method-group name="public member functions">
+<method name="time_duration_format"><type>void</type><parameter name="format"><paramtype>const char_type *const</paramtype></parameter><purpose>Set the format for <classname alt="boost::date_time::time_duration">time_duration</classname>. </purpose></method>
+<method name="set_iso_format" specifiers="virtual"><type>void</type></method>
+<method name="set_iso_extended_format" specifiers="virtual"><type>void</type></method>
+<method name="get" cv="const"><type>InItrT</type><parameter name="sitr"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="ios_arg"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="p"><paramtype><classname>period_type</classname> &amp;</paramtype></parameter></method>
+<method name="get" cv="const"><type>InItrT</type><parameter name="sitr"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="ios_arg"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="td"><paramtype>time_duration_type &amp;</paramtype></parameter></method>
+<method name="get" cv="const"><type>InItrT</type><parameter name="sitr"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="ios_arg"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="t"><paramtype>time_type &amp;</paramtype></parameter><purpose>Parses a time object from the input stream. </purpose></method>
+<method name="get_local_time" cv="const"><type>InItrT</type><parameter name="sitr"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="ios_arg"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="t"><paramtype>time_type &amp;</paramtype></parameter><parameter name="tz_str"><paramtype>string_type &amp;</paramtype></parameter><purpose>Expects a time_zone in the input stream. </purpose></method>
+</method-group>
+<constructor specifiers="explicit"><parameter name="format"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="ref_arg"><paramtype>::size_t</paramtype><default>0</default></parameter><purpose>Constructor that takes a format string for a ptime. </purpose></constructor>
+<constructor specifiers="explicit"><parameter name="format"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="date_parser"><paramtype>const <classname>format_date_parser_type</classname> &amp;</paramtype></parameter><parameter name="sv_parser"><paramtype>const <classname>special_values_parser_type</classname> &amp;</paramtype></parameter><parameter name="per_parser"><paramtype>const <classname>period_parser_type</classname> &amp;</paramtype></parameter><parameter name="date_gen_parser"><paramtype>const <classname>date_gen_parser_type</classname> &amp;</paramtype></parameter><parameter name="ref_arg"><paramtype>::size_t</paramtype><default>0</default></parameter></constructor>
+<constructor specifiers="explicit"><parameter name="ref_arg"><paramtype>::size_t</paramtype><default>0</default></parameter><purpose>sets default formats for ptime, local_date_time, and <classname alt="boost::date_time::time_duration">time_duration</classname> </purpose></constructor>
+<method-group name="protected member functions">
+<method name="get" cv="const"><type>InItrT</type><parameter name="sitr"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="ios_arg"><paramtype>std::ios_base &amp;</paramtype></parameter><parameter name="t"><paramtype>time_type &amp;</paramtype></parameter><parameter name="tz_str"><paramtype>string_type &amp;</paramtype></parameter><parameter name="time_is_local"><paramtype>bool</paramtype></parameter></method>
+<method name="check_special_value" cv="const"><type>InItrT</type><template>
+ <template-type-parameter name="temporal_type"/>
+ </template><parameter name="sitr"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="tt"><paramtype>temporal_type &amp;</paramtype></parameter><parameter name="c"><paramtype>char_type</paramtype><default>'\0'</default></parameter><purpose>Helper function to check for special_value. </purpose><description><para>First character may have been consumed during original parse attempt. Parameter 'c' should be a copy of that character. Throws ios_base::failure if parse fails. </para></description></method>
+<method name="parse_frac_type" cv="const"><type>void</type><parameter name="sitr"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="stream_end"><paramtype>InItrT &amp;</paramtype></parameter><parameter name="frac"><paramtype>fracional_seconds_type &amp;</paramtype></parameter><purpose>Helper function for parsing a fractional second type from the stream. </purpose></method>
+</method-group>
+<method-group name="private member functions">
+<method name="decimal_adjust" cv="const"><type>int_type</type><template>
+ <template-type-parameter name="int_type"/>
+ </template><parameter name="val"><paramtype>int_type</paramtype></parameter><parameter name="places"><paramtype>const unsigned short</paramtype></parameter><purpose>Helper function to adjust trailing zeros when parsing fractional digits. </purpose></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/time_formatting_streams.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="ostream_time_duration_formatter"><template>
+ <template-type-parameter name="time_duration_type"/>
+ <template-type-parameter name="charT"><default>char</default></template-type-parameter>
+ </template><purpose>Put a time type into a stream using appropriate facets. </purpose><typedef name="ostream_type"><type>std::basic_ostream&lt; charT &gt;</type></typedef>
+<typedef name="fractional_seconds_type"><type>time_duration_type::fractional_seconds_type</type></typedef>
+<method-group name="public static functions">
+<method name="duration_put" specifiers="static"><type>void</type><parameter name="td"><paramtype>const time_duration_type &amp;</paramtype></parameter><parameter name="os"><paramtype>ostream_type &amp;</paramtype></parameter><purpose>Put time into an ostream. </purpose></method>
+</method-group>
+</class><class name="ostream_time_formatter"><template>
+ <template-type-parameter name="time_type"/>
+ <template-type-parameter name="charT"><default>char</default></template-type-parameter>
+ </template><purpose>Put a time type into a stream using appropriate facets. </purpose><typedef name="ostream_type"><type>std::basic_ostream&lt; charT &gt;</type></typedef>
+<typedef name="date_type"><type>time_type::date_type</type></typedef>
+<typedef name="time_duration_type"><type>time_type::time_duration_type</type></typedef>
+<typedef name="duration_formatter"><type><classname>ostream_time_duration_formatter</classname>&lt; time_duration_type, charT &gt;</type></typedef>
+<method-group name="public static functions">
+<method name="time_put" specifiers="static"><type>void</type><parameter name="t"><paramtype>const time_type &amp;</paramtype></parameter><parameter name="os"><paramtype>ostream_type &amp;</paramtype></parameter><purpose>Put time into an ostream. </purpose></method>
+</method-group>
+</class><class name="ostream_time_period_formatter"><template>
+ <template-type-parameter name="time_period_type"/>
+ <template-type-parameter name="charT"><default>char</default></template-type-parameter>
+ </template><purpose>Put a time period into a stream using appropriate facets. </purpose><typedef name="ostream_type"><type>std::basic_ostream&lt; charT &gt;</type></typedef>
+<typedef name="time_type"><type>time_period_type::point_type</type></typedef>
+<typedef name="time_formatter"><type><classname>ostream_time_formatter</classname>&lt; time_type, charT &gt;</type></typedef>
+<method-group name="public static functions">
+<method name="period_put" specifiers="static"><type>void</type><parameter name="tp"><paramtype>const time_period_type &amp;</paramtype></parameter><parameter name="os"><paramtype>ostream_type &amp;</paramtype></parameter><purpose>Put time into an ostream. </purpose></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/time_iterator.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="time_itr"><template>
+ <template-type-parameter name="time_type"/>
+ </template><purpose>Simple time iterator skeleton class. </purpose><typedef name="time_duration_type"><type>time_type::time_duration_type</type></typedef>
+<method-group name="public member functions">
+<method name="operator++"><type><classname>time_itr</classname> &amp;</type></method>
+<method name="operator--"><type><classname>time_itr</classname> &amp;</type></method>
+<method name="operator *"><type>time_type</type></method>
+<method name="operator-&gt;"><type>time_type *</type></method>
+<method name="operator&lt;"><type>bool</type><parameter name="t"><paramtype>const time_type &amp;</paramtype></parameter></method>
+<method name="operator&lt;="><type>bool</type><parameter name="t"><paramtype>const time_type &amp;</paramtype></parameter></method>
+<method name="operator!="><type>bool</type><parameter name="t"><paramtype>const time_type &amp;</paramtype></parameter></method>
+<method name="operator=="><type>bool</type><parameter name="t"><paramtype>const time_type &amp;</paramtype></parameter></method>
+<method name="operator&gt;"><type>bool</type><parameter name="t"><paramtype>const time_type &amp;</paramtype></parameter></method>
+<method name="operator&gt;="><type>bool</type><parameter name="t"><paramtype>const time_type &amp;</paramtype></parameter></method>
+</method-group>
+<constructor><parameter name="t"><paramtype>time_type</paramtype></parameter><parameter name="d"><paramtype>time_duration_type</paramtype></parameter></constructor>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/time_parsing.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+
+<function name="power"><type>int_type</type><template>
+ <template-type-parameter name="int_type"/>
+ </template><parameter name="base"><paramtype>int_type</paramtype></parameter><parameter name="exponent"><paramtype>int_type</paramtype></parameter><purpose>computes exponential math like 2^8 =&gt; 256, only works with positive integers </purpose></function>
+<function name="str_from_delimited_time_duration"><type><classname>time_duration</classname></type><template>
+ <template-type-parameter name="time_duration"/>
+ <template-type-parameter name="char_type"/>
+ </template><parameter name="s"><paramtype>const std::basic_string&lt; char_type &gt; &amp;</paramtype></parameter><purpose>Creates a <classname alt="boost::date_time::time_duration">time_duration</classname> object from a delimited string. </purpose><description><para>Expected format for string is "[-]h[h][:mm][:ss][.fff]". If the number of fractional digits provided is greater than the precision of the time duration type then the extra digits are truncated.</para><para>A negative duration will be created if the first character in string is a '-', all other '-' will be treated as delimiters. Accepted delimiters are "-:,.". </para></description></function>
+<function name="parse_delimited_time_duration"><type><classname>time_duration</classname></type><template>
+ <template-type-parameter name="time_duration"/>
+ </template><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter><purpose>Creates a <classname alt="boost::date_time::time_duration">time_duration</classname> object from a delimited string. </purpose><description><para>Expected format for string is "[-]h[h][:mm][:ss][.fff]". If the number of fractional digits provided is greater than the precision of the time duration type then the extra digits are truncated.</para><para>A negative duration will be created if the first character in string is a '-', all other '-' will be treated as delimiters. Accepted delimiters are "-:,.". </para></description></function>
+<function name="split"><type>bool</type><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter><parameter name="sep"><paramtype>char</paramtype></parameter><parameter name="first"><paramtype>std::string &amp;</paramtype></parameter><parameter name="second"><paramtype>std::string &amp;</paramtype></parameter><purpose>Utility function to split appart string. </purpose></function>
+<function name="parse_delimited_time"><type>time_type</type><template>
+ <template-type-parameter name="time_type"/>
+ </template><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter><parameter name="sep"><paramtype>char</paramtype></parameter></function>
+<function name="parse_undelimited_time_duration"><type><classname>time_duration</classname></type><template>
+ <template-type-parameter name="time_duration"/>
+ </template><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter><purpose>Parse time duration part of an iso time of form: [-]hhmmss<ulink url="eg: 120259.123 is 12 hours, 2 min, 59 seconds, 123000 microseconds">.fff...</ulink> </purpose></function>
+<function name="parse_iso_time"><type>time_type</type><template>
+ <template-type-parameter name="time_type"/>
+ </template><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter><parameter name="sep"><paramtype>char</paramtype></parameter><purpose>Parse time string of form YYYYMMDDThhmmss where T is delimeter between date and time. </purpose></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/time_resolution_traits.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="time_resolution_traits"><template>
+ <template-type-parameter name="frac_sec_type"/>
+ <template-nontype-parameter name="res"><type>time_resolutions</type></template-nontype-parameter>
+ <template-nontype-parameter name="resolution_adjust"><type>#if(defined(BOOST_MSVC) &amp;&amp;(_MSC_VER&lt; 1300)) boost::int64_t</type></template-nontype-parameter>
+ <template-nontype-parameter name="resolution_adjust"><type>#else typename frac_sec_type::int_type</type></template-nontype-parameter>
+ <template-nontype-parameter name="frac_digits"><type>#endif unsigned short</type></template-nontype-parameter>
+ <template-type-parameter name="var_type"><default>boost::int64_t</default></template-type-parameter>
+ </template><typedef name="fractional_seconds_type"><type>frac_sec_type::int_type</type></typedef>
+<typedef name="tick_type"><type>frac_sec_type::int_type</type></typedef>
+<typedef name="impl_type"><type>frac_sec_type::impl_type</type></typedef>
+<typedef name="day_type"><type>var_type</type></typedef>
+<typedef name="hour_type"><type>var_type</type></typedef>
+<typedef name="min_type"><type>var_type</type></typedef>
+<typedef name="sec_type"><type>var_type</type></typedef>
+<method-group name="public static functions">
+<method name="as_number" specifiers="static"><type>BOOST_CXX14_CONSTEXPR fractional_seconds_type</type><parameter name="i"><paramtype>impl_type</paramtype></parameter></method>
+<method name="is_adapted" specifiers="static"><type>BOOST_CXX14_CONSTEXPR bool</type></method>
+<method name="resolution" specifiers="static"><type>BOOST_CXX14_CONSTEXPR time_resolutions</type></method>
+<method name="num_fractional_digits" specifiers="static"><type>BOOST_CXX14_CONSTEXPR unsigned short</type></method>
+<method name="res_adjust" specifiers="static"><type>BOOST_CXX14_CONSTEXPR fractional_seconds_type</type></method>
+<method name="to_tick_count" specifiers="static"><type>BOOST_CXX14_CONSTEXPR tick_type</type><parameter name="hours"><paramtype>hour_type</paramtype></parameter><parameter name="minutes"><paramtype>min_type</paramtype></parameter><parameter name="seconds"><paramtype>sec_type</paramtype></parameter><parameter name="fs"><paramtype>fractional_seconds_type</paramtype></parameter><purpose>Any negative argument results in a negative tick_count. </purpose></method>
+</method-group>
+<method-group name="public member functions">
+<method name="BOOST_STATIC_CONSTANT"><type/><parameter name=""><paramtype>boost::int64_t</paramtype></parameter><parameter name=""><paramtype>ticks_per_second</paramtype><default>resolution_adjust</default></parameter></method>
+<method name="BOOST_STATIC_CONSTANT"><type/><parameter name=""><paramtype>fractional_seconds_type</paramtype></parameter><parameter name=""><paramtype>ticks_per_second</paramtype><default>resolution_adjust</default></parameter></method>
+</method-group>
+</class><struct name="time_resolution_traits_adapted32_impl"><purpose>traits struct for <classname alt="boost::date_time::time_resolution_traits">time_resolution_traits</classname> implementation type </purpose><typedef name="int_type"><type>boost::int32_t</type></typedef>
+<typedef name="impl_type"><type><classname>boost::date_time::int_adapter</classname>&lt; boost::int32_t &gt;</type></typedef>
+<method-group name="public static functions">
+<method name="as_number" specifiers="static"><type>BOOST_CXX14_CONSTEXPR int_type</type><parameter name="i"><paramtype><classname>impl_type</classname></paramtype></parameter></method>
+<method name="is_adapted" specifiers="static"><type>BOOST_CXX14_CONSTEXPR bool</type><purpose>Used to determine if implemented type is <classname alt="boost::date_time::int_adapter">int_adapter</classname> or int. </purpose></method>
+</method-group>
+</struct><struct name="time_resolution_traits_adapted64_impl"><purpose>traits struct for <classname alt="boost::date_time::time_resolution_traits">time_resolution_traits</classname> implementation type </purpose><typedef name="int_type"><type>boost::int64_t</type></typedef>
+<typedef name="impl_type"><type><classname>boost::date_time::int_adapter</classname>&lt; boost::int64_t &gt;</type></typedef>
+<method-group name="public static functions">
+<method name="as_number" specifiers="static"><type>BOOST_CXX14_CONSTEXPR int_type</type><parameter name="i"><paramtype><classname>impl_type</classname></paramtype></parameter></method>
+<method name="is_adapted" specifiers="static"><type>BOOST_CXX14_CONSTEXPR bool</type><purpose>Used to determine if implemented type is <classname alt="boost::date_time::int_adapter">int_adapter</classname> or int. </purpose></method>
+</method-group>
+</struct><struct name="time_resolution_traits_bi32_impl"><purpose>traits struct for <classname alt="boost::date_time::time_resolution_traits">time_resolution_traits</classname> implementation type </purpose><typedef name="int_type"><type>boost::int32_t</type></typedef>
+<typedef name="impl_type"><type>boost::int32_t</type></typedef>
+<method-group name="public static functions">
+<method name="as_number" specifiers="static"><type>BOOST_CXX14_CONSTEXPR int_type</type><parameter name="i"><paramtype>impl_type</paramtype></parameter></method>
+<method name="is_adapted" specifiers="static"><type>BOOST_CXX14_CONSTEXPR bool</type><purpose>Used to determine if implemented type is <classname alt="boost::date_time::int_adapter">int_adapter</classname> or int. </purpose></method>
+</method-group>
+</struct><struct name="time_resolution_traits_bi64_impl"><purpose>traits struct for <classname alt="boost::date_time::time_resolution_traits">time_resolution_traits</classname> implementation type </purpose><typedef name="int_type"><type>boost::int64_t</type></typedef>
+<typedef name="impl_type"><type>boost::int64_t</type></typedef>
+<method-group name="public static functions">
+<method name="as_number" specifiers="static"><type>BOOST_CXX14_CONSTEXPR int_type</type><parameter name="i"><paramtype>impl_type</paramtype></parameter></method>
+<method name="is_adapted" specifiers="static"><type>BOOST_CXX14_CONSTEXPR bool</type><purpose>Used to determine if implemented type is <classname alt="boost::date_time::int_adapter">int_adapter</classname> or int. </purpose></method>
+</method-group>
+</struct><typedef name="milli_res"><type><classname>time_resolution_traits</classname>&lt; <classname>time_resolution_traits_adapted32_impl</classname>, milli, 1000, 3 &gt;</type></typedef>
+<typedef name="micro_res"><type><classname>time_resolution_traits</classname>&lt; <classname>time_resolution_traits_adapted64_impl</classname>, micro, 1000000, 6 &gt;</type></typedef>
+<typedef name="nano_res"><type><classname>time_resolution_traits</classname>&lt; <classname>time_resolution_traits_adapted64_impl</classname>, nano, 1000000000, 9 &gt;</type></typedef>
+<function name="absolute_value"><type>BOOST_CXX14_CONSTEXPR T</type><template>
+ <template-type-parameter name="T"/>
+ </template><parameter name="x"><paramtype>T</paramtype></parameter><purpose>Simple function to calculate absolute value of a numeric type. </purpose></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/time_system_counted.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<struct name="counted_time_rep"><template>
+ <template-type-parameter name="config"/>
+ </template><purpose>Time representation that uses a single integer count. </purpose><typedef name="int_type"><type>config::int_type</type></typedef>
+<typedef name="date_type"><type>config::date_type</type></typedef>
+<typedef name="impl_type"><type>config::impl_type</type></typedef>
+<typedef name="date_duration_type"><type>date_type::duration_type</type></typedef>
+<typedef name="calendar_type"><type>date_type::calendar_type</type></typedef>
+<typedef name="ymd_type"><type>date_type::ymd_type</type></typedef>
+<typedef name="time_duration_type"><type>config::time_duration_type</type></typedef>
+<typedef name="resolution_traits"><type>config::resolution_traits</type></typedef>
+<method-group name="public member functions">
+<method name="date" cv="const"><type>BOOST_CXX14_CONSTEXPR date_type</type></method>
+<method name="day_count" cv="const"><type>BOOST_CXX14_CONSTEXPR unsigned long</type></method>
+<method name="time_count" cv="const"><type>BOOST_CXX14_CONSTEXPR int_type</type></method>
+<method name="tod" cv="const"><type>BOOST_CXX14_CONSTEXPR int_type</type></method>
+<method name="is_pos_infinity" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type></method>
+<method name="is_neg_infinity" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type></method>
+<method name="is_not_a_date_time" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type></method>
+<method name="is_special" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type></method>
+<method name="get_rep" cv="const"><type>BOOST_CXX14_CONSTEXPR impl_type</type></method>
+</method-group>
+<constructor><parameter name="d"><paramtype>const date_type &amp;</paramtype></parameter><parameter name="time_of_day"><paramtype>const time_duration_type &amp;</paramtype></parameter></constructor>
+<constructor specifiers="explicit"><parameter name="count"><paramtype>int_type</paramtype></parameter></constructor>
+<constructor specifiers="explicit"><parameter name="count"><paramtype>impl_type</paramtype></parameter></constructor>
+<method-group name="public static functions">
+<method name="frac_sec_per_day" specifiers="static"><type>BOOST_CXX14_CONSTEXPR int_type</type></method>
+</method-group>
+</struct><class name="counted_time_system"><template>
+ <template-type-parameter name="time_rep"/>
+ </template><purpose>An unadjusted time system implementation. </purpose><typedef name="time_rep_type"><type>time_rep</type></typedef>
+<typedef name="impl_type"><type>time_rep_type::impl_type</type></typedef>
+<typedef name="time_duration_type"><type>time_rep_type::time_duration_type</type></typedef>
+<typedef name="fractional_seconds_type"><type>time_duration_type::fractional_seconds_type</type></typedef>
+<typedef name="date_type"><type>time_rep_type::date_type</type></typedef>
+<typedef name="date_duration_type"><type>time_rep_type::date_duration_type</type></typedef>
+<method-group name="public static functions">
+<method name="unused_var" specifiers="static"><type>BOOST_CXX14_CONSTEXPR void</type><template>
+ <template-type-parameter name="T"/>
+ </template><parameter name=""><paramtype>const T &amp;</paramtype></parameter></method>
+<method name="get_time_rep" specifiers="static"><type>BOOST_CXX14_CONSTEXPR time_rep_type</type><parameter name="day"><paramtype>const date_type &amp;</paramtype></parameter><parameter name="tod"><paramtype>const time_duration_type &amp;</paramtype></parameter><parameter name="dst"><paramtype>date_time::dst_flags</paramtype><default>not_dst</default></parameter></method>
+<method name="get_time_rep" specifiers="static"><type>BOOST_CXX14_CONSTEXPR time_rep_type</type><parameter name="sv"><paramtype>special_values</paramtype></parameter></method>
+<method name="get_date" specifiers="static"><type>BOOST_CXX14_CONSTEXPR date_type</type><parameter name="val"><paramtype>const time_rep_type &amp;</paramtype></parameter></method>
+<method name="get_time_of_day" specifiers="static"><type>BOOST_CXX14_CONSTEXPR time_duration_type</type><parameter name="val"><paramtype>const time_rep_type &amp;</paramtype></parameter></method>
+<method name="zone_name" specifiers="static"><type>std::string</type><parameter name=""><paramtype>const time_rep_type &amp;</paramtype></parameter></method>
+<method name="is_equal" specifiers="static"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="lhs"><paramtype>const time_rep_type &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const time_rep_type &amp;</paramtype></parameter></method>
+<method name="is_less" specifiers="static"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="lhs"><paramtype>const time_rep_type &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const time_rep_type &amp;</paramtype></parameter></method>
+<method name="add_days" specifiers="static"><type>BOOST_CXX14_CONSTEXPR time_rep_type</type><parameter name="base"><paramtype>const time_rep_type &amp;</paramtype></parameter><parameter name="dd"><paramtype>const date_duration_type &amp;</paramtype></parameter></method>
+<method name="subtract_days" specifiers="static"><type>BOOST_CXX14_CONSTEXPR time_rep_type</type><parameter name="base"><paramtype>const time_rep_type &amp;</paramtype></parameter><parameter name="dd"><paramtype>const date_duration_type &amp;</paramtype></parameter></method>
+<method name="subtract_time_duration" specifiers="static"><type>BOOST_CXX14_CONSTEXPR time_rep_type</type><parameter name="base"><paramtype>const time_rep_type &amp;</paramtype></parameter><parameter name="td"><paramtype>const time_duration_type &amp;</paramtype></parameter></method>
+<method name="add_time_duration" specifiers="static"><type>BOOST_CXX14_CONSTEXPR time_rep_type</type><parameter name="base"><paramtype>const time_rep_type &amp;</paramtype></parameter><parameter name="td"><paramtype>time_duration_type</paramtype></parameter></method>
+<method name="subtract_times" specifiers="static"><type>BOOST_CXX14_CONSTEXPR time_duration_type</type><parameter name="lhs"><paramtype>const time_rep_type &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const time_rep_type &amp;</paramtype></parameter></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/time_system_split.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="split_timedate_system"><template>
+ <template-type-parameter name="config"/>
+ <template-nontype-parameter name="ticks_per_second"><type>boost::int32_t</type></template-nontype-parameter>
+ </template><purpose>An unadjusted time system implementation. </purpose><typedef name="time_rep_type"><type>config::time_rep_type</type></typedef>
+<typedef name="date_type"><type>config::date_type</type></typedef>
+<typedef name="time_duration_type"><type>config::time_duration_type</type></typedef>
+<typedef name="date_duration_type"><type>config::date_duration_type</type></typedef>
+<typedef name="int_type"><type>config::int_type</type></typedef>
+<typedef name="resolution_traits"><type>config::resolution_traits</type></typedef>
+<typedef name="wrap_int_type"><type><classname>date_time::wrapping_int</classname>&lt; int_type, INT64_C(86400) *ticks_per_second &gt;</type></typedef>
+<typedef name="wrap_int_type"><type><classname>date_time::wrapping_int</classname>&lt; split_timedate_system::int_type, split_timedate_system::ticks_per_day &gt;</type></typedef>
+<typedef name="wrap_int_type"><type><classname>date_time::wrapping_int</classname>&lt; int_type, ticks_per_day &gt;</type></typedef>
+<method-group name="private member functions">
+<method name="BOOST_STATIC_CONSTANT"><type/><parameter name=""><paramtype>int_type</paramtype></parameter><parameter name=""><paramtype>ticks_per_day</paramtype><default>INT64_C(86400) *config::tick_per_second</default></parameter></method>
+</method-group>
+<method-group name="public static functions">
+<method name="get_time_rep" specifiers="static"><type>BOOST_CXX14_CONSTEXPR time_rep_type</type><parameter name="sv"><paramtype>special_values</paramtype></parameter></method>
+<method name="get_time_rep" specifiers="static"><type>BOOST_CXX14_CONSTEXPR time_rep_type</type><parameter name="day"><paramtype>const date_type &amp;</paramtype></parameter><parameter name="tod"><paramtype>const time_duration_type &amp;</paramtype></parameter><parameter name=""><paramtype>date_time::dst_flags</paramtype><default>not_dst</default></parameter></method>
+<method name="get_date" specifiers="static"><type>BOOST_CONSTEXPR date_type</type><parameter name="val"><paramtype>const time_rep_type &amp;</paramtype></parameter></method>
+<method name="get_time_of_day" specifiers="static"><type>BOOST_CONSTEXPR time_duration_type</type><parameter name="val"><paramtype>const time_rep_type &amp;</paramtype></parameter></method>
+<method name="zone_name" specifiers="static"><type>std::string</type><parameter name=""><paramtype>const time_rep_type &amp;</paramtype></parameter></method>
+<method name="is_equal" specifiers="static"><type>BOOST_CONSTEXPR bool</type><parameter name="lhs"><paramtype>const time_rep_type &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const time_rep_type &amp;</paramtype></parameter></method>
+<method name="is_less" specifiers="static"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="lhs"><paramtype>const time_rep_type &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const time_rep_type &amp;</paramtype></parameter></method>
+<method name="add_days" specifiers="static"><type>BOOST_CXX14_CONSTEXPR time_rep_type</type><parameter name="base"><paramtype>const time_rep_type &amp;</paramtype></parameter><parameter name="dd"><paramtype>const date_duration_type &amp;</paramtype></parameter></method>
+<method name="subtract_days" specifiers="static"><type>BOOST_CXX14_CONSTEXPR time_rep_type</type><parameter name="base"><paramtype>const time_rep_type &amp;</paramtype></parameter><parameter name="dd"><paramtype>const date_duration_type &amp;</paramtype></parameter></method>
+<method name="subtract_time_duration" specifiers="static"><type>BOOST_CXX14_CONSTEXPR time_rep_type</type><parameter name="base"><paramtype>const time_rep_type &amp;</paramtype></parameter><parameter name="td"><paramtype>const time_duration_type &amp;</paramtype></parameter></method>
+<method name="add_time_duration" specifiers="static"><type>BOOST_CXX14_CONSTEXPR time_rep_type</type><parameter name="base"><paramtype>const time_rep_type &amp;</paramtype></parameter><parameter name="td"><paramtype>time_duration_type</paramtype></parameter></method>
+<method name="subtract_times" specifiers="static"><type>BOOST_CXX14_CONSTEXPR time_duration_type</type><parameter name="lhs"><paramtype>const time_rep_type &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const time_rep_type &amp;</paramtype></parameter></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/time_zone_base.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="dst_adjustment_offsets"><template>
+ <template-type-parameter name="time_duration_type"><purpose><para>A type used to represent the offset </para></purpose></template-type-parameter>
+ </template><purpose>Structure which holds the time offsets associated with daylight savings time. </purpose><description><para>
+</para></description><data-member name="dst_adjust_"><type>time_duration_type</type><purpose>Amount DST adjusts the clock eg: plus one hour. </purpose></data-member>
+<data-member name="dst_start_offset_"><type>time_duration_type</type><purpose>Time past midnight on start transition day that dst starts. </purpose></data-member>
+<data-member name="dst_end_offset_"><type>time_duration_type</type><purpose>Time past midnight on end transition day that dst ends. </purpose></data-member>
+<method-group name="public member functions">
+</method-group>
+<constructor><parameter name="dst_adjust"><paramtype>const time_duration_type &amp;</paramtype></parameter><parameter name="dst_start_offset"><paramtype>const time_duration_type &amp;</paramtype></parameter><parameter name="dst_end_offset"><paramtype>const time_duration_type &amp;</paramtype></parameter></constructor>
+</class><class name="time_zone_base"><template>
+ <template-type-parameter name="time_type"/>
+ <template-type-parameter name="CharT"/>
+ </template><purpose>Interface class for dynamic time zones. </purpose><description><para>This class represents the base interface for all timezone representations. Subclasses may provide different systems for identifying a particular zone. For example some may provide a geographical based zone construction while others may specify the offset from GMT. Another possible implementation would be to convert from POSIX timezone strings. Regardless of the construction technique, this is the interface that these time zone types must provide.</para><para>Note that this class is intended to be used as a shared resource (hence the derivation from boost::counted_base. </para></description><typedef name="char_type"><type>CharT</type></typedef>
+<typedef name="string_type"><type>std::basic_string&lt; CharT &gt;</type></typedef>
+<typedef name="stringstream_type"><type>std::basic_ostringstream&lt; CharT &gt;</type></typedef>
+<typedef name="year_type"><type>time_type::date_type::year_type</type></typedef>
+<typedef name="time_duration_type"><type>time_type::time_duration_type</type></typedef>
+<method-group name="public member functions">
+<method name="dst_zone_abbrev" cv="const = 0" specifiers="virtual"><type>string_type</type><purpose>String for the timezone when in daylight savings (eg: EDT) </purpose></method>
+<method name="std_zone_abbrev" cv="const = 0" specifiers="virtual"><type>string_type</type><purpose>String for the zone when not in daylight savings (eg: EST) </purpose></method>
+<method name="dst_zone_name" cv="const = 0" specifiers="virtual"><type>string_type</type><purpose>String for the timezone when in daylight savings (eg: Eastern Daylight Time) </purpose></method>
+<method name="std_zone_name" cv="const = 0" specifiers="virtual"><type>string_type</type><purpose>String for the zone when not in daylight savings (eg: Eastern Standard Time) </purpose></method>
+<method name="has_dst" cv="const = 0" specifiers="virtual"><type>bool</type><purpose>True if zone uses daylight savings adjustments otherwise false. </purpose></method>
+<method name="dst_local_start_time" cv="const = 0" specifiers="virtual"><type>time_type</type><parameter name="y"><paramtype>year_type</paramtype></parameter><purpose>Local time that DST starts – undefined if has_dst is false. </purpose></method>
+<method name="dst_local_end_time" cv="const = 0" specifiers="virtual"><type>time_type</type><parameter name="y"><paramtype>year_type</paramtype></parameter><purpose>Local time that DST ends – undefined if has_dst is false. </purpose></method>
+<method name="base_utc_offset" cv="const = 0" specifiers="virtual"><type>time_duration_type</type><purpose>Base offset from UTC for zone (eg: -07:30:00) </purpose></method>
+<method name="dst_offset" cv="const = 0" specifiers="virtual"><type>time_duration_type</type><purpose>Adjustment forward or back made while DST is in effect. </purpose></method>
+<method name="to_posix_string" cv="const = 0" specifiers="virtual"><type>string_type</type><purpose>Returns a POSIX time_zone string for this object. </purpose></method>
+</method-group>
+<constructor/>
+<destructor/>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/time_zone_names.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<struct name="default_zone_names"><template>
+ <template-type-parameter name="CharT"/>
+ </template><typedef name="char_type"><type>CharT</type></typedef>
+<data-member name="standard_name" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="standard_abbrev" specifiers="static"><type>const char_type</type></data-member>
+<data-member name="non_dst_identifier" specifiers="static"><type>const char_type</type></data-member>
+</struct><class name="time_zone_names_base"><template>
+ <template-type-parameter name="CharT"><purpose><para>Allows class to support different character types </para></purpose></template-type-parameter>
+ </template><purpose>Base type that holds various string names for timezone output. </purpose><description><para>Class that holds various types of strings used for timezones. For example, for the western United States there is the full name: Pacific Standard Time and the abbreviated name: PST. During daylight savings there are additional names: Pacific Daylight Time and PDT.
+</para></description><typedef name="string_type"><type>std::basic_string&lt; CharT &gt;</type></typedef>
+<method-group name="public member functions">
+<method name="dst_zone_abbrev" cv="const"><type>string_type</type></method>
+<method name="std_zone_abbrev" cv="const"><type>string_type</type></method>
+<method name="dst_zone_name" cv="const"><type>string_type</type></method>
+<method name="std_zone_name" cv="const"><type>string_type</type></method>
+</method-group>
+<constructor/>
+<constructor><parameter name="std_zone_name_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="std_zone_abbrev_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="dst_zone_name_str"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="dst_zone_abbrev_str"><paramtype>const string_type &amp;</paramtype></parameter></constructor>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/tz_db_base.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="bad_field_count"><inherit access="public">out_of_range</inherit><purpose>Exception thrown when tz database locates incorrect field structure in data file. </purpose><method-group name="public member functions">
+</method-group>
+<constructor><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter></constructor>
+</class><class name="data_not_accessible"><inherit access="public">logic_error</inherit><purpose>Exception thrown when tz database cannot locate requested data file. </purpose><method-group name="public member functions">
+</method-group>
+<constructor/>
+<constructor><parameter name="filespec"><paramtype>const std::string &amp;</paramtype></parameter></constructor>
+</class><class name="tz_db_base"><template>
+ <template-type-parameter name="time_zone_type"/>
+ <template-type-parameter name="rule_type"/>
+ </template><purpose>Creates a database of time_zones from csv datafile. </purpose><description><para>The csv file containing the zone_specs used by the <classname alt="boost::date_time::tz_db_base">tz_db_base</classname> is intended to be customized by the library user. When customizing this file (or creating your own) the file must follow a specific format.</para><para>This first line is expected to contain column headings and is therefore not processed by the <classname alt="boost::date_time::tz_db_base">tz_db_base</classname>.</para><para>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. Ex: <programlisting language="c++">"America/Phoenix" &lt;- string enclosed in quotes
+"" &lt;- empty field
+</programlisting></para><para>Some fields represent a length of time. The format of these fields must be: <programlisting language="c++">"{+|-}hh:mm[:ss]" &lt;- length-of-time format
+</programlisting> Where the plus or minus is mandatory and the seconds are optional.</para><para>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).</para><para>******* Fields and their description/details *********</para><para>ID: 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.</para><para>STD ABBR: STD NAME: DST ABBR: DST NAME: 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. Ex: <programlisting language="c++">time_zone nyc = tz_db.time_zone_from_region("America/New_York");
+local_time ny_time(date(2004, Aug, 30), IS_DST, nyc);
+cout &lt;&lt; ny_time.to_long_string() &lt;&lt; endl;
+// 2004-Aug-30 00:00:00 Eastern Daylight Time
+cout &lt;&lt; ny_time.to_short_string() &lt;&lt; endl;
+// 2004-Aug-30 00:00:00 EDT
+</programlisting></para><para>NOTE: The exact format/function names may vary - see local_time documentation for further details.</para><para>GMT offset: 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, &amp; Africa/Cairo offset +2 hours. The format must follow the length-of-time format described above.</para><para>DST adjustment: 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.</para><para>DST Start Date rule: 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. 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). The second field indicates the day-of-week from 0-6 (Sun=0). The third field indicates the month from 1-12 (Jan=1).</para><para>Examples are: "-1;5;9"="Last Friday of September", "2;1;3"="Second Monday of March"</para><para>Start time: 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.</para><para>DST End date rule: See DST Start date rule. The difference here is this is the day daylight savings ends (transition to STD).</para><para>End time: Same as Start time. </para></description><typedef name="char_type"><type>char</type></typedef>
+<typedef name="time_zone_base_type"><type>time_zone_type::base_type</type></typedef>
+<typedef name="time_duration_type"><type>time_zone_type::time_duration_type</type></typedef>
+<typedef name="time_zone_names"><type><classname>time_zone_names_base</classname>&lt; char_type &gt;</type></typedef>
+<typedef name="dst_adjustment_offsets"><type><classname>boost::date_time::dst_adjustment_offsets</classname>&lt; time_duration_type &gt;</type></typedef>
+<typedef name="string_type"><type>std::basic_string&lt; char_type &gt;</type></typedef>
+<method-group name="public member functions">
+<method name="load_from_stream"><type>void</type><parameter name="in"><paramtype>std::istream &amp;</paramtype></parameter><purpose>Process csv data file, may throw exceptions. </purpose><description><para>May throw <classname alt="boost::date_time::bad_field_count">bad_field_count</classname> exceptions </para></description></method>
+<method name="load_from_file"><type>void</type><parameter name="pathspec"><paramtype>const std::string &amp;</paramtype></parameter><purpose>Process csv data file, may throw exceptions. </purpose><description><para>May throw <classname alt="boost::date_time::data_not_accessible">data_not_accessible</classname>, or <classname alt="boost::date_time::bad_field_count">bad_field_count</classname> exceptions </para></description></method>
+<method name="add_record"><type>bool</type><parameter name="region"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="tz"><paramtype>boost::shared_ptr&lt; time_zone_base_type &gt;</paramtype></parameter><purpose>returns true if record successfully added to map </purpose><description><para>Takes a region name in the form of "America/Phoenix", and a time_zone object for that region. The id string must be a unique name that does not already exist in the database. </para></description></method>
+<method name="time_zone_from_region" cv="const"><type>boost::shared_ptr&lt; time_zone_base_type &gt;</type><parameter name="region"><paramtype>const string_type &amp;</paramtype></parameter><purpose>Returns a time_zone object built from the specs for the given region. </purpose><description><para>Returns a time_zone object built from the specs for the given region. If region does not exist a local_time::record_not_found exception will be thrown </para></description></method>
+<method name="region_list" cv="const"><type>std::vector&lt; std::string &gt;</type><purpose>Returns a vector of strings holding the time zone regions in the database. </purpose></method>
+</method-group>
+<constructor><purpose>Constructs an empty database. </purpose></constructor>
+<method-group name="private member functions">
+<method name="parse_rules" cv="const"><type>rule_type *</type><parameter name="sr"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="er"><paramtype>const string_type &amp;</paramtype></parameter><purpose>parses rule specs for transition day rules </purpose></method>
+<method name="get_week_num" cv="const"><type>week_num</type><parameter name="nth"><paramtype>int</paramtype></parameter><purpose>helper function for parse_rules() </purpose></method>
+<method name="split_rule_spec" cv="const"><type>void</type><parameter name="nth"><paramtype>int &amp;</paramtype></parameter><parameter name="d"><paramtype>int &amp;</paramtype></parameter><parameter name="m"><paramtype>int &amp;</paramtype></parameter><parameter name="rule"><paramtype>string_type</paramtype></parameter><purpose>splits the [start|end]_date_rule string into 3 ints </purpose></method>
+<method name="parse_string"><type>bool</type><parameter name="s"><paramtype>string_type &amp;</paramtype></parameter><purpose>Take a line from the csv, turn it into a time_zone_type. </purpose><description><para>Take a line from the csv, turn it into a time_zone_type, and add it to the map. Zone_specs in csv file are expected to have eleven fields that describe the time zone. Returns true if zone_spec successfully added to database </para></description></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/wrapping_int.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<class name="wrapping_int"><template>
+ <template-type-parameter name="int_type_"/>
+ <template-nontype-parameter name="wrap_val"><type>int_type_</type></template-nontype-parameter>
+ </template><purpose>A wrapping integer used to support time durations (WARNING: only instantiate with a signed type) </purpose><description><para>In composite date and time types this type is used to wrap at the day boundary. Ex: A wrapping_int&lt;short, 10&gt; will roll over after nine, and roll under below zero. This gives a range of [0,9]</para><para>NOTE: it is strongly recommended that <classname alt="boost::date_time::wrapping_int2">wrapping_int2</classname> be used instead of <classname alt="boost::date_time::wrapping_int">wrapping_int</classname> as <classname alt="boost::date_time::wrapping_int">wrapping_int</classname> is to be depricated at some point soon.</para><para>Also Note that warnings will occur if instantiated with an unsigned type. Only a signed type should be used! </para></description><typedef name="int_type"><type>int_type_</type></typedef>
+<method-group name="public static functions">
+<method name="wrap_value" specifiers="static"><type>BOOST_CONSTEXPR int_type</type></method>
+</method-group>
+<method-group name="public member functions">
+<method name="as_int" cv="const"><type>BOOST_CONSTEXPR int_type</type><purpose>Explicit converion method. </purpose></method>
+<method name="operator int_type" cv="const"><type>BOOST_CONSTEXPR</type></method>
+<method name="add"><type>BOOST_CXX14_CONSTEXPR IntT</type><template>
+ <template-type-parameter name="IntT"/>
+ </template><parameter name="v"><paramtype>IntT</paramtype></parameter><purpose>Add, return number of wraps performed. </purpose><description><para>The sign of the returned value will indicate which direction the wraps went. Ex: add a negative number and wrapping under could occur, this would be indicated by a negative return value. If wrapping over took place, a positive value would be returned </para></description></method>
+<method name="subtract"><type>BOOST_CXX14_CONSTEXPR IntT</type><template>
+ <template-type-parameter name="IntT"/>
+ </template><parameter name="v"><paramtype>IntT</paramtype></parameter><purpose>Subtract will return '+d' if wrapping under took place ('d' is the number of wraps) </purpose><description><para>The sign of the returned value will indicate which direction the wraps went (positive indicates wrap under, negative indicates wrap over). Ex: subtract a negative number and wrapping over could occur, this would be indicated by a negative return value. If wrapping under took place, a positive value would be returned. </para></description></method>
+</method-group>
+<constructor><parameter name="v"><paramtype>int_type</paramtype></parameter><purpose>Add, return true if wrapped. </purpose></constructor>
+<method-group name="private member functions">
+<method name="calculate_wrap"><type>BOOST_CXX14_CONSTEXPR IntT</type><template>
+ <template-type-parameter name="IntT"/>
+ </template><parameter name="wrap"><paramtype>IntT</paramtype></parameter></method>
+</method-group>
+</class><class name="wrapping_int2"><template>
+ <template-type-parameter name="int_type_"/>
+ <template-nontype-parameter name="wrap_min"><type>int_type_</type></template-nontype-parameter>
+ <template-nontype-parameter name="wrap_max"><type>int_type_</type></template-nontype-parameter>
+ </template><purpose>A wrapping integer used to wrap around at the top (WARNING: only instantiate with a signed type) </purpose><description><para>Bad name, quick impl to fix a bug – fix later!! This allows the wrap to restart at a value other than 0. </para></description><typedef name="int_type"><type>int_type_</type></typedef>
+<method-group name="public static functions">
+<method name="wrap_value" specifiers="static"><type>BOOST_CONSTEXPR int_type</type></method>
+<method name="min_value" specifiers="static"><type>BOOST_CONSTEXPR int_type</type></method>
+</method-group>
+<method-group name="public member functions">
+<method name="as_int" cv="const"><type>BOOST_CONSTEXPR int_type</type><purpose>Explicit converion method. </purpose></method>
+<method name="operator int_type" cv="const"><type>BOOST_CONSTEXPR</type></method>
+<method name="add"><type>BOOST_CXX14_CONSTEXPR IntT</type><template>
+ <template-type-parameter name="IntT"/>
+ </template><parameter name="v"><paramtype>IntT</paramtype></parameter><purpose>Add, return number of wraps performed. </purpose><description><para>The sign of the returned value will indicate which direction the wraps went. Ex: add a negative number and wrapping under could occur, this would be indicated by a negative return value. If wrapping over took place, a positive value would be returned </para></description></method>
+<method name="subtract"><type>BOOST_CXX14_CONSTEXPR IntT</type><template>
+ <template-type-parameter name="IntT"/>
+ </template><parameter name="v"><paramtype>IntT</paramtype></parameter><purpose>Subtract will return '-d' if wrapping under took place ('d' is the number of wraps) </purpose><description><para>The sign of the returned value will indicate which direction the wraps went. Ex: subtract a negative number and wrapping over could occur, this would be indicated by a positive return value. If wrapping under took place, a negative value would be returned </para></description></method>
+</method-group>
+<constructor><parameter name="v"><paramtype>int_type</paramtype></parameter><description><para>If initializing value is out of range of [wrap_min, wrap_max], value will be initialized to closest of min or max </para></description></constructor>
+<method-group name="private member functions">
+<method name="calculate_wrap"><type>BOOST_CXX14_CONSTEXPR IntT</type><template>
+ <template-type-parameter name="IntT"/>
+ </template><parameter name="wrap"><paramtype>IntT</paramtype></parameter></method>
+</method-group>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/year_month_day.hpp">
+<namespace name="boost">
+<namespace name="date_time">
+<struct name="year_month_day_base"><template>
+ <template-type-parameter name="YearType"/>
+ <template-type-parameter name="MonthType"/>
+ <template-type-parameter name="DayType"/>
+ </template><purpose>Allow rapid creation of ymd triples of different types. </purpose><typedef name="year_type"><type>YearType</type></typedef>
+<typedef name="month_type"><type>MonthType</type></typedef>
+<typedef name="day_type"><type>DayType</type></typedef>
+<data-member name="year"><type>YearType</type></data-member>
+<data-member name="month"><type>MonthType</type></data-member>
+<data-member name="day"><type>DayType</type></data-member>
+<method-group name="public member functions">
+</method-group>
+<constructor><parameter name="year"><paramtype>YearType</paramtype></parameter><parameter name="month"><paramtype>MonthType</paramtype></parameter><parameter name="day"><paramtype>DayType</paramtype></parameter><purpose>A basic constructor. </purpose></constructor>
+</struct>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+</library-reference> \ No newline at end of file
diff --git a/src/boost/libs/date_time/xmldoc/date_time_docs_howto.html b/src/boost/libs/date_time/xmldoc/date_time_docs_howto.html
new file mode 100644
index 000000000..ab451b381
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/date_time_docs_howto.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+
+<head>
+ <title>Date Time Documentation Howto</title>
+ <meta name="GENERATOR" content="Quanta Plus">
+ <style type="text/css">
+ .copyright { color: #666666; font-size: small; }
+ .screen {
+ background: #EEF6FF;
+ font-family: monospace;
+ display: block;
+ margin-left: 4%;
+ margin-right: 4%;
+ padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+ }
+ .fname { font-family: monospace; }
+ </style>
+</head>
+<body>
+ <h2>Date Time Documentation Howto</h2>
+ <h3>Instructions for:</h3>
+ <ol>
+ <li><A href="#exclusive_html">Building Exclusive Date Time HTML Documentation</A></li>
+ <li><A href="#exclusive_pdf">Building Exclusive Date Time PDF</A></li>
+ <li><A href="#doxy_ref">Generating Date Time Doxygen Reference</A></li>
+ <li><A href="#xsl_mods">Making further changes to the date_time_fo_stylesheet</A></li>
+ </ol>
+ <hr>
+ <A name="exclusive_html"><h3>Building Exclusive Date Time HTML Documentation</h3></A>
+ <p>No modifications are necessary to build an exclusive set of date time html documentation. Simply run bjam:<br>
+ <div class="screen">bjam --v2 date_time_doc</div><br>
+ The resulting html can be found in <font class="fname">xmldoc/html</font>. NOTE: the stylesheet may not be present. It can be copied from the <font class="fname">$BOOST_ROOT/doc/html</font> directory.</p>
+ <hr>
+ <a name="exclusive_pdf"><h3>Building Exclusive Date Time PDF</h3></a>
+ <p><strong>Prerequisite:</strong> bjam must be able to build documentation for 'fo' output (necessary aditions must have been added to <font class="fname">user-config.jam</font>).</p>
+
+ <p>Necessary modifications to build the date time pdf are:
+ <ol>
+ <li>Add the new stylesheet to <font class="fname">boostbook.jam</font>.<div class="screen">
+ <pre>
+rule docbook-to-fo ( target : source : properties * )
+{
+ #local native-path = [ path.native $(.boostbook-xsl-dir) ] ;
+ #local stylesheet = $(native-path:B=fo:S=.xsl) ;
+ local boost-root = [ modules.peek : BOOST_ROOT ];
+ local stylesheet = "$(boost-root)/libs/date_time/xmldoc/date_time_fo_stylesheet.xsl" ;
+ xslt $(target) : $(source) $(stylesheet) : $(properties) ;
+}</pre></div></li>
+ <li>Build <font class="fname">exclusive_date_time.fo</font>.
+ <div class="screen">bjam --v2 date_time_doc fo</div></li>
+ <li>Build the pdf.<div class="screen">fop ../../../bin.v2/libs/date_time/.../exclusive_date_time.fo date_time.pdf</div></li>
+ </ol>
+ </p>
+ <p><strong>BUILD ERRORS:</strong> During the fo->pdf step, an error stating that an id already exists may appear. This error appears to be introduced during the xml->fo step. There are two possible workarounds for this (depending on where the duplicated id apears). If the duplicate id appears in the reference section, find the offending id and change it manually (ex: "id2534038" -> "id2534039"). If the id appears in the documentation generated from the xml, change one of the anchor names in one of the xml files. <strong>Note:</strong> This does not mean there is an error in the xml. The anchor and link that is known to have an effect is <font class="fname">date_input_facet_intro</font> (change the 'd' to a 'f', or back, should do the trick).</p>
+ <hr>
+ <a name="doxy_ref"><h3>Generating Date Time Doxygen Reference</h3></a>
+ <p>Each doxygen reference file must be built, copied, and modified seperately. The steps to build all four <font class="fname">*.boostbook</font> reference files are:
+ <ol>
+ <li>Generate the <font class="fname">*.boostbook</font> files.</li>
+ <li>Copy the <font class="fname">*.boostbook</font> files to the xmldoc directory.</li>
+ <li>Fix the section tags and add copyright statement.</li>
+ </ol>
+ <div class="screen"><pre>
+bjam --v2 date_time_autodoc \
+ gregorian_autodoc \
+ posix_time_autodoc \
+ local_time_autodoc
+cp ../../../bin.v2/libs/.../*.boostbook .
+./ref_tag_fix.pl</pre></div>
+ </p>
+ <hr>
+ <a name="xsl_mods"><h3>Making further changes to the date_time_fo_stylesheet</h3></a>
+ <p>The stylesheet currently sets the left, right, and bottom margins. It also reduces the font-size for table cells that have the &#060;screen&#062; tags in them. The font-size reduction is accomplished by breaking the entire string (between the &#060;screen&#062; tags) into segments delimited by '\n'. Each of these segment's lengths are checked and the longest segment is used in calculating the amount of font-size reduction.</p>
+ <p>There are two variables used in adjusting the font-size: <font class="fname">char-per-cell</font> &#038; <font class="fname">min-reduction</font>. These hold the number of characters that can fit into a cell and the minimum percentage of reduction allowed (expressed as an integer).</p>
+ <p>Determining the number of characters that will fit into a cell is not the most gracefull of operations. Simply put, the minimum reduction must be set to 100 (no reduction allowed) and the pdf must be built. From there the number of characters that will fit must be manually counted.</p>
+ <hr>
+ <div><p class="copyright">Copyright &#169; 2001-2005 CrystalClear Software, Inc</p></div>
+ <div class="legalnotice">
+ <p>Subject to the Boost Software License, Version 1.0. <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</ahref="http://www.boost.org/LICENSE_1_0.txt"></p></div>
+ </body>
+</html>
diff --git a/src/boost/libs/date_time/xmldoc/date_time_fo_stylesheet.xsl b/src/boost/libs/date_time/xmldoc/date_time_fo_stylesheet.xsl
new file mode 100644
index 000000000..d72b0db22
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/date_time_fo_stylesheet.xsl
@@ -0,0 +1,180 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ xmlns:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim"
+ xmlns:xverb="com.nwalsh.xalan.Verbatim"
+ xmlns:lxslt="http://xml.apache.org/xslt"
+ xmlns:exsl="http://exslt.org/common"
+ exclude-result-prefixes="sverb xverb lxslt exsl"
+ version='1.0'>
+
+<!-- Copyright (c) 2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+ <xsl:import href="../../../tools/boostbook/xsl/fo.xsl" />
+
+ <!-- reset the default margin parameters -->
+ <xsl:param name="page.margin.bottom" select="'0.25in'"/>
+ <xsl:param name="page.margin.inner">
+ <xsl:choose>
+ <xsl:when test="$double.sided != 0">1.25in</xsl:when>
+ <xsl:otherwise>0.65in</xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="page.margin.outer">
+ <xsl:choose>
+ <xsl:when test="$double.sided != 0">0.75in</xsl:when>
+ <xsl:otherwise>0.65in</xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+
+ <!-- with the above margins, we can fit 38 monospace characters per table cell.
+ If the margins are changed, set min-reduction to 100 and generate a new pdf. Then
+ count the number of characters that fit in a cell. Not the slickest method but it works.-->
+ <xsl:variable name="char-per-cell" select="38"/>
+ <!-- prevent reducing the font size too much. An 80% reduction
+ gives us a width of 48 characters per cell -->
+ <xsl:variable name="min-reduction" select="80"/>
+
+ <!-- recursive font-size reduction template -->
+ <!-- the string may span multiple lines.
+ break it up and check the length of each line.
+ adjust font size according to longest line -->
+ <xsl:template name="font-size-reduction">
+ <xsl:param name="inp" />
+ <xsl:param name="max">1</xsl:param>
+ <xsl:variable name="result">
+ <xsl:choose>
+ <!-- &#x000A; is unicode line-feed character -->
+ <xsl:when test="contains($inp, '&#x000A;')">
+ <xsl:variable name="str" select="substring-before($inp, '&#x000A;')" />
+ <xsl:variable name="next" select="substring-after($inp, '&#x000A;')" />
+
+ <xsl:variable name="n_max">
+ <xsl:choose>
+ <xsl:when test="string-length($str) > $char-per-cell and string-length($str) > $max">
+ <xsl:value-of select="string-length($str)" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$max" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="contains($next, '&#x000A;')">
+ <xsl:call-template name="font-size-reduction">
+ <xsl:with-param name="inp" select="$next" />
+ <xsl:with-param name="max" select="$n_max" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$n_max > $char-per-cell and $n_max > string-length($next)">
+ <!-- set size with next.len -->
+ <xsl:value-of select="round($char-per-cell div $n_max * 100)"/>
+ </xsl:when>
+ <xsl:when test="string-length($next) > $char-per-cell and string-length($next) > $n_max">
+ <!-- set size with n_max -->
+ <xsl:value-of select="round($char-per-cell div string-length($next) * 100)"/>
+ </xsl:when>
+ <xsl:otherwise>100</xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="string-length($inp) > $char-per-cell">
+ <!-- set size with inp.len -->
+ <xsl:value-of select="round($char-per-cell div string-length($inp) * 100)"/>
+ </xsl:when>
+ <xsl:otherwise>100</xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- return either "result" or "min-reduction" -->
+ <xsl:choose>
+ <xsl:when test="$min-reduction > $result">
+ <xsl:value-of select="$min-reduction" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$result" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+
+ <!-- this template was copied directly from docbook/boostbook xsl and modified
+ to calculate and resize monospace font to fit cells based on length of string -->
+ <xsl:template match="entry/screen">
+ <xsl:param name="suppress-numbers" select="'0'"/>
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+ <xsl:variable name="content">
+ <xsl:choose>
+ <xsl:when test="$suppress-numbers = '0'
+ and @linenumbering = 'numbered'
+ and $use.extensions != '0'
+ and $linenumbering.extension != '0'">
+ <xsl:call-template name="number.rtf.lines">
+ <xsl:with-param name="rtf">
+ <xsl:apply-templates/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="font_size">
+ <xsl:call-template name="font-size-reduction">
+ <xsl:with-param name="inp" select="." />
+ </xsl:call-template>
+ </xsl:variable>
+
+
+ <!-- write out the tag now that font size has been calculated -->
+ <xsl:choose>
+ <xsl:when test="$shade.verbatim != 0">
+ <fo:block id="{$id}"
+ white-space-collapse='false'
+ white-space-treatment='preserve'
+ linefeed-treatment='preserve'
+ xsl:use-attribute-sets="monospace.verbatim.properties shade.verbatim.style" font-size="{$font_size}%">
+ <xsl:choose>
+ <xsl:when test="$hyphenate.verbatim != 0 and function-available('exsl:node-set')">
+ <xsl:apply-templates select="exsl:node-set($content)" mode="hyphenate.verbatim"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$content"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </fo:block>
+ </xsl:when>
+ <xsl:otherwise>
+ <fo:block id="{$id}"
+ white-space-collapse='false'
+ white-space-treatment='preserve'
+ linefeed-treatment="preserve"
+ xsl:use-attribute-sets="monospace.verbatim.properties" font-size="{$font_size}%">
+ <xsl:choose>
+ <xsl:when test="$hyphenate.verbatim != 0 and function-available('exsl:node-set')">
+ <xsl:apply-templates select="exsl:node-set($content)" mode="hyphenate.verbatim"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$content"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </fo:block>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+</xsl:stylesheet>
diff --git a/src/boost/libs/date_time/xmldoc/date_time_io.xml b/src/boost/libs/date_time/xmldoc/date_time_io.xml
new file mode 100644
index 000000000..e9f719c28
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/date_time_io.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.date_time_io"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+ <title>Date Time Input/Output</title>
+ <using-namespace name="boost"/>
+ <using-namespace name="boost::date_time"/>
+ <bridgehead renderas="sect2">Date Time IO System</bridgehead>
+ <para>
+ <link linkend="streaming_exceptions">Exception Handling on Streams</link>
+ </para>
+
+ <para>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.</para>
+
+ <para>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.</para>
+
+ <para>It is important to note, that while all the examples shown here use narrow streams, there are wide stream facets available as well (see <link linkend="io_objects_table">IO Objects</link> for a complete list).</para>
+
+ <para>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>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>USE_DATE_TIME_PRE_1_33_FACET_IO</code>. See the <link linkend="date_time.buildinfo">Build-Compiler Information</link> for more information.</para>
+
+ <anchor id="streaming_exceptions" />
+ <bridgehead renderas="sect5">Exception Handling on Streams</bridgehead>
+ <para>When an error occurs during the input streaming process, the <code>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>exceptions</code> function with a parameter of <code>std::ios_base::failbit</code>.</para>
+ <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 >> d; // throws bad_year exception AND sets failbit on stream</screen>
+
+ <bridgehead renderas="sect5">A simple example of this new system:</bridgehead>
+ <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"</screen>
+
+ <xi:include href="format_flags.xml" />
+
+ <para>The following table lists the available facets.</para>
+
+ <anchor id="io_objects_table" />
+ <bridgehead renderas="sect3">IO Objects</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Output</entry>
+ <entry>Input</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><classname>date_facet</classname></entry>
+ <entry><classname>date_input_facet</classname></entry>
+ </row>
+ <row>
+ <entry><classname alt="boost::date_time::date_facet">wdate_facet</classname></entry>
+ <entry><classname alt="boost::date_time::date_input_facet">wdate_input_facet</classname></entry>
+ </row>
+ <row>
+ <entry><classname>time_facet</classname></entry>
+ <entry><classname>time_input_facet</classname></entry>
+ </row>
+ <row>
+ <entry><classname alt="boost::date_time::time_facet">wtime_facet</classname></entry>
+ <entry><classname alt="boost::date_time::time_input_facet">wtime_input_facet</classname></entry>
+ </row>
+ <row>
+ <entry><classname alt="boost::date_time::time_facet">local_time_facet</classname>*</entry>
+ <entry><classname alt="boost::date_time::time_input_facet">local_time_input_facet</classname>*</entry>
+ </row>
+ <row>
+ <entry><classname alt="boost::date_time::time_facet">wlocal_time_facet</classname>*</entry>
+ <entry><classname alt="boost::date_time::time_input_facet">wlocal_time_input_facet</classname>*</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ * These links lead to the <code>time_facet</code> and <code>time_input_facet</code> reference sections. They are not actual classes but typedefs.
+ </para>
+
+ <bridgehead renderas="sect3">Formatter/Parser Objects</bridgehead>
+ <para>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.</para>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Output</entry>
+ <entry>Input</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><classname>period_formatter</classname></entry>
+ <entry><classname>period_parser</classname></entry>
+ </row>
+ <row>
+ <entry><classname>date_generator_formatter</classname></entry>
+ <entry><classname>date_generator_parser</classname></entry>
+ </row>
+ <row>
+ <entry><classname>special_values_formatter</classname></entry>
+ <entry><classname>special_values_parser</classname></entry>
+ </row>
+ <row>
+ <entry></entry>
+ <entry><classname>format_date_parser</classname></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <xi:include href="date_facet.xml" />
+ <xi:include href="date_input_facet.xml" />
+ <xi:include href="time_facet.xml" />
+ <xi:include href="time_input_facet.xml" />
+ <xi:include href="io_objects.xml" />
+ <xi:include href="io_tutorial.xml" />
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/design_concepts.xml b/src/boost/libs/date_time/xmldoc/design_concepts.xml
new file mode 100644
index 000000000..e6429ba4c
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/design_concepts.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.design_concepts">
+ <title>Design Concepts</title>
+
+ <para>
+ A large part of the genesis of this library has been the observation that few date-time libraries are built in a fashion that allows customization and extension. A typical example, the calendar logic is built directly into the date class. Or the clock retrieval functions are built directly into the time class. These design decisions usually make it impossible to extend or change the library behavior. At a more fundamental level, there are usually assumptions about the resolution of time representation or the gregorian calendar.
+ </para>
+ <para>
+ Often times, the result is that a project must settle for a less than complete library because of a requirement for high resolution time representation or other assumptions that do not match the implementation of the library. This is extremely unfortunate because development of a library of this sort is far from a trivial task.
+ </para>
+ <para>
+ While the design is far from perfect the current design is far more flexible than any date-time library the author is aware of. It is expected that the various aspects of extensibility will be better documented in future versions. Information about the design goals of the library is <link linkend="date_time.design_goals">summarized here</link>.
+ </para>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/design_goals.xml b/src/boost/libs/date_time/xmldoc/design_goals.xml
new file mode 100644
index 000000000..3e9000e03
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/design_goals.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.design_goals">
+ <title>Design Goals</title>
+
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Category</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Functions</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1">Interfaces</entry>
+ <entry>Provide concrete classes for manipulation of dates and times</entry>
+ </row>
+ <row>
+ <entry>
+ <itemizedlist mark="bullet">
+ <listitem>date, time, date_duration, time_duration, date_period, time_period, etc</listitem>
+ <listitem>support for infinity - positive infinity, negative infinity</listitem>
+ <listitem>iterators over time and date ranges</listitem>
+ <listitem>allow date and time implementations to be separate as much as possible</listitem>
+ </itemizedlist>
+ </entry>
+ </row>
+ <row>
+ <entry valign="top" morerows="1">Calculation</entry>
+ <entry>Provide a basis for performing efficient time calculations </entry>
+ </row>
+ <row>
+ <entry>
+ <itemizedlist mark="bullet">
+ <listitem>days between dates </listitem>
+ <listitem>durations of times </listitem>
+ <listitem>durations of dates and times together </listitem>
+ </itemizedlist>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1">Representation Flexibility</entry>
+ <entry>Provide the maximum possible reusability and flexibility</entry>
+ </row>
+ <row>
+ <entry>
+ <itemizedlist mark="bullet">
+ <listitem>traits based customization of internal representations for size versus resolution control</listitem>
+ <listitem>Allowing the use of different epochs and resolution (eg: seconds versus microseconds, dates starting at the year 2000 versus dates starting in 1700)</listitem>
+ <listitem>Options for configuring unique calendar representations (Gregorian + others)</listitem>
+ <listitem>the use of Julian Day number and the conversion between this and the Gregorian/Julian calendar date</listitem>
+ <listitem>Allow for flexible adjustments including leap seconds</listitem>
+ </itemizedlist>
+ </entry>
+ </row>
+
+
+ <row>
+ <entry valign="top" morerows="1">Date Calculations</entry>
+ <entry>Provide tools for date calculations</entry>
+ </row>
+ <row>
+ <entry>
+ <itemizedlist mark="bullet">
+ <listitem>provide basis for calculation of complex event specs like holidays</listitem>
+ <listitem>calendar to calendar conversions</listitem>
+ <listitem>provide for ability to extend to new calendar systems</listitem>
+ </itemizedlist>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1">Time Calculations</entry>
+ <entry>Provide concrete classes for manipulation of time</entry>
+ </row>
+ <row>
+ <entry>
+ <itemizedlist mark="bullet">
+ <listitem>provide the ability to handle cross time-zone issues</listitem>
+ <listitem>provide adjustments for daylight savings time (summer time)</listitem>
+ </itemizedlist>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1">Clock Interfaces</entry>
+ <entry>Provide classes for retrieving time current time</entry>
+ </row>
+ <row>
+ <entry>
+ <itemizedlist mark="bullet">
+ <listitem>access to a network / high resolution time sources </listitem>
+ <listitem>retrieving the current date time information to populate classes </listitem>
+ </itemizedlist>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1">I/O Interfaces</entry>
+ <entry>Provide input and output for time including</entry>
+ </row>
+ <row>
+ <entry>
+ <itemizedlist mark="bullet">
+ <listitem>multi-lingual support </listitem>
+ <listitem>provide ISO8601 compliant time facet </listitem>
+ <listitem>use I/O facets for different local behavior </listitem>
+ </itemizedlist>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/details.xml b/src/boost/libs/date_time/xmldoc/details.xml
new file mode 100644
index 000000000..1eea179ee
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/details.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.details" xmlns:xi="http://www.w3.org/2001/XInclude">
+ <title>Details</title>
+
+ <xi:include href="calculations.xml" />
+ <xi:include href="design_goals.xml" />
+ <xi:include href="tradeoffs.xml" />
+ <xi:include href="terminology.xml" />
+ <xi:include href="references.xml" />
+ <xi:include href="buildinfo.xml" />
+ <xi:include href="tests.xml" />
+ <xi:include href="changes.xml" />
+ <xi:include href="acknowledgements.xml" />
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/domain_concepts.xml b/src/boost/libs/date_time/xmldoc/domain_concepts.xml
new file mode 100644
index 000000000..9d6616e9f
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/domain_concepts.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.domain_concepts">
+ <title>Domain Concepts</title>
+
+ <para>
+ The date time domain is rich in terminology and problems.
+ The following is a brief introduction to the concepts you
+ will find reflected in the library.
+ </para>
+ <para>
+ The library supports 3 basic temporal types:
+ <itemizedlist mark="bullet">
+ <listitem>
+ <emphasis role="strong">Time Point</emphasis> -- Specifier
+ for a location in the time continuum.
+ </listitem>
+ <listitem>
+ <emphasis role="strong">Time Duration</emphasis> -- A
+ length of time unattached to any point on the time continuum.
+ </listitem>
+ <listitem>
+ <emphasis role="strong">Time Interval</emphasis> -- A duration
+ of time attached to a specific point in the time continuum.
+ Also known as a time period.
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Each of these temporal types has a <emphasis role="strong">Resolution</emphasis> which is defined by the smallest representable duration. A <emphasis role="strong">Time system</emphasis> provides all these categories of temporal types as well as the rules for labeling and calculating with time points. <emphasis role="strong">Calendar Systems</emphasis> are simply time systems with a maximum resolution of one day. The <emphasis role="strong">Gregorian</emphasis> system is the most widely used calendar system today (the ISO system is basically a derivative of this). However, there are many other calendar systems as well. <emphasis role="strong">UTC (Coordinated Universal Time)</emphasis> is a widely used civil time system. UTC is adjusted for earth rotation at longitude 0 by the use of leap seconds (This is not predictable, only as necessary). Most <emphasis role="strong">local time</emphasis> systems are based on UTC but are also adjusted for earth rotation so that daylight hours are similar everywhere. In addition, some local times include <emphasis role="strong">daylight savings time (DST)</emphasis> adjustments to shift the daylight hours during the summer.
+ </para>
+ <para>
+ A <emphasis role="strong">Clock Device</emphasis> is software component (tied to some hardware) that provides the current date or time with respect to a time system. A clock can measure the current time to a known resolution which may be higher or lower than a particular time representation.
+ </para>
+ <para>
+ The library provides support for calculating with dates and times. However, time calculations are not quite the same as calculating with integers. If you are serious about the accuracy of your time calculations need to read about <link linkend="date_time.tradeoffs">Stability, Predictability, and Approximations</link>.
+ </para>
+ <para>
+ <itemizedlist mark="bullet">
+ <listitem>
+ <link linkend="date_time.terminology">Basic Terminology</link>
+ </listitem>
+ <listitem>
+ <link linkend="date_time.calculations">Calculations</link>
+ </listitem>
+ <listitem>
+ <link linkend="date_time.tradeoffs">Stability, Predictability, and Approximations</link>
+ </listitem>
+ <listitem>
+ <link linkend="date_time.references">References</link>
+ </listitem>
+ </itemizedlist>
+ </para>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/doxy.xml b/src/boost/libs/date_time/xmldoc/doxy.xml
new file mode 100644
index 000000000..c12f24674
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/doxy.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.doxy" xmlns:xi="http://www.w3.org/2001/XInclude">
+ <title>Library Reference</title>
+
+ <para>
+ 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.
+ </para>
+
+ <xi:include href="date_time_autodoc.xml"/>
+ <xi:include href="gregorian_autodoc.xml"/>
+ <xi:include href="posix_time_autodoc.xml"/>
+ <xi:include href="local_time_autodoc.xml"/>
+</section>
+
diff --git a/src/boost/libs/date_time/xmldoc/ex_calc_rules.xml b/src/boost/libs/date_time/xmldoc/ex_calc_rules.xml
new file mode 100644
index 000000000..78889ef23
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_calc_rules.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.calc_rules">
+ <title>Daylight Savings Calc Rules</title>
+
+ <para>
+ Example of creating various Daylight Savings Calc Rule objects.
+ </para>
+ <programlisting>
+ <![CDATA[
+ /* 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 <iostream>
+
+ 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;
+ }
+
+ ]]>
+ </programlisting>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ex_date_period_calc.xml b/src/boost/libs/date_time/xmldoc/ex_date_period_calc.xml
new file mode 100644
index 000000000..2c39345ff
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_date_period_calc.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.date_period_calc">
+ <title>Date Period Calculations</title>
+
+ <para>
+ Calculates if a date is in an 'irregular' collection of periods using period calculation functions.
+ </para>
+ <programlisting>
+ <![CDATA[
+ /*
+ 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 --> 20020216/20020217
+ 20020223/20020224
+
+ */
+
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include <set>
+ #include <algorithm>
+ #include <iostream>
+
+ typedef std::set<boost::gregorian::date_period> 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<date_period_set> 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 << "Number Excluded Periods: " << ps.size() << 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 << to_iso_string(*i) << std::endl;
+ //if date is in exclusion period then print it
+ if (i->contains(d)) {
+ std::cout << "In Exclusion Period: "
+ << to_iso_string(d) << " --> " << to_iso_string(*i)
+ << std::endl;
+ }
+ }
+
+ return 0;
+
+ }
+
+ ]]>
+ </programlisting>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ex_dates_as_strings.xml b/src/boost/libs/date_time/xmldoc/ex_dates_as_strings.xml
new file mode 100644
index 000000000..d6a074f62
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_dates_as_strings.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.dates_as_strings">
+ <title>Dates as Strings</title>
+
+ <para>
+ Various parsing and output of strings.
+ </para>
+ <programlisting>
+ <![CDATA[
+
+ /* 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 <iostream>
+ #include <string>
+
+ 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 << to_simple_string(d) << 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 << to_iso_extended_string(d1) << 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 << wd.as_long_string() << " "
+ << ymd.month.as_long_string() << " "
+ << ymd.day << ", " << ymd.year
+ << std::endl;
+
+ //Let's send in month 25 by accident and create an exception
+ std::string bad_date("20012509"); //2001-??-09
+ std::cout << "An expected exception is next: " << 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 << "oh oh, you shouldn't reach this line: "
+ << to_iso_string(wont_construct) << std::endl;
+ }
+ catch(std::exception& e) {
+ std::cout << " Exception: " << e.what() << std::endl;
+ }
+
+
+ return 0;
+ }
+
+ ]]>
+ </programlisting>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ex_days_alive.xml b/src/boost/libs/date_time/xmldoc/ex_days_alive.xml
new file mode 100644
index 000000000..c940704a0
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_days_alive.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.days_alive">
+ <title>Days Alive</title>
+
+ <para>
+ Calculate the number of days you have been living using durations and dates.
+ </para>
+<programlisting>
+<literal>
+<phrase role="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.
+ */</phrase><phrase role="preprocessor">
+
+#include</phrase><phrase role="string"> &quot;boost/date_time/gregorian/gregorian.hpp&quot;</phrase><phrase role="preprocessor">
+#include</phrase><phrase role="special"> &lt;</phrase><phrase role="identifier">iostream</phrase><phrase role="special">&gt;</phrase><phrase role="keyword">
+
+int</phrase><phrase role="identifier">
+main</phrase><phrase role="special">()</phrase><phrase role="special">
+{</phrase><phrase role="keyword">
+
+ using</phrase><phrase role="keyword"> namespace</phrase><phrase role="identifier"> boost</phrase><phrase role="special">::</phrase><phrase role="identifier">gregorian</phrase><phrase role="special">;</phrase><phrase role="identifier">
+ std</phrase><phrase role="special">::</phrase><phrase role="identifier">string</phrase><phrase role="identifier"> s</phrase><phrase role="special">;</phrase><phrase role="identifier">
+ std</phrase><phrase role="special">::</phrase><phrase role="identifier">cout</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="string"> &quot;Enter birth day YYYY-MM-DD (eg: 2002-02-01): &quot;</phrase><phrase role="special">;</phrase><phrase role="identifier">
+ std</phrase><phrase role="special">::</phrase><phrase role="identifier">cin</phrase><phrase role="special"> &gt;&gt;</phrase><phrase role="identifier"> s</phrase><phrase role="special">;</phrase><phrase role="keyword">
+ try</phrase><phrase role="special"> {</phrase><phrase role="identifier">
+ date</phrase><phrase role="identifier"> birthday</phrase><phrase role="special">(</phrase><phrase role="identifier">from_simple_string</phrase><phrase role="special">(</phrase><phrase role="identifier">s</phrase><phrase role="special">));</phrase><phrase role="identifier">
+ date</phrase><phrase role="identifier"> today</phrase><phrase role="special"> =</phrase><phrase role="identifier"> day_clock</phrase><phrase role="special">::</phrase><phrase role="identifier">local_day</phrase><phrase role="special">();</phrase><phrase role="identifier">
+ days</phrase><phrase role="identifier"> days_alive</phrase><phrase role="special"> =</phrase><phrase role="identifier"> today</phrase><phrase role="special"> -</phrase><phrase role="identifier"> birthday</phrase><phrase role="special">;</phrase><phrase role="identifier">
+ days</phrase><phrase role="identifier"> one_day</phrase><phrase role="special">(</phrase><phrase role="number">1</phrase><phrase role="special">);</phrase><phrase role="keyword">
+ if</phrase><phrase role="special"> (</phrase><phrase role="identifier">days_alive</phrase><phrase role="special"> ==</phrase><phrase role="identifier"> one_day</phrase><phrase role="special">)</phrase><phrase role="special"> {</phrase><phrase role="identifier">
+ std</phrase><phrase role="special">::</phrase><phrase role="identifier">cout</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="string"> &quot;Born yesterday, very funny&quot;</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="identifier"> std</phrase><phrase role="special">::</phrase><phrase role="identifier">endl</phrase><phrase role="special">;</phrase><phrase role="special">
+ }</phrase><phrase role="keyword">
+ else</phrase><phrase role="keyword"> if</phrase><phrase role="special"> (</phrase><phrase role="identifier">days_alive</phrase><phrase role="special"> &lt;</phrase><phrase role="identifier"> days</phrase><phrase role="special">(</phrase><phrase role="number">0</phrase><phrase role="special">))</phrase><phrase role="special"> {</phrase><phrase role="identifier">
+ std</phrase><phrase role="special">::</phrase><phrase role="identifier">cout</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="string"> &quot;Not born yet, hmm: &quot;</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="identifier"> days_alive</phrase><phrase role="special">.</phrase><phrase role="identifier">days</phrase><phrase role="special">()</phrase><phrase role="special">
+ &lt;&lt;</phrase><phrase role="string"> &quot; days&quot;</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="identifier">std</phrase><phrase role="special">::</phrase><phrase role="identifier">endl</phrase><phrase role="special">;</phrase><phrase role="special">
+ }</phrase><phrase role="keyword">
+ else</phrase><phrase role="special"> {</phrase><phrase role="identifier">
+ std</phrase><phrase role="special">::</phrase><phrase role="identifier">cout</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="string"> &quot;Days alive: &quot;</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="identifier"> days_alive</phrase><phrase role="special">.</phrase><phrase role="identifier">days</phrase><phrase role="special">()</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="identifier"> std</phrase><phrase role="special">::</phrase><phrase role="identifier">endl</phrase><phrase role="special">;</phrase><phrase role="special">
+ }</phrase><phrase role="special">
+
+ }</phrase><phrase role="keyword">
+ catch</phrase><phrase role="special">(...)</phrase><phrase role="special"> {</phrase><phrase role="identifier">
+ std</phrase><phrase role="special">::</phrase><phrase role="identifier">cout</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="string"> &quot;Bad date entered: &quot;</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="identifier"> s</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="identifier"> std</phrase><phrase role="special">::</phrase><phrase role="identifier">endl</phrase><phrase role="special">;</phrase><phrase role="special">
+ }</phrase><phrase role="keyword">
+ return</phrase><phrase role="number"> 0</phrase><phrase role="special">;</phrase><phrase role="special">
+}</phrase>
+</literal>
+</programlisting>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ex_days_between_new_years.xml b/src/boost/libs/date_time/xmldoc/ex_days_between_new_years.xml
new file mode 100644
index 000000000..91a236df7
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_days_between_new_years.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.days_between_new_year">
+ <title>Days Between New Years</title>
+
+ <para>
+ Calculate the number of days till new years
+ </para>
+ <programlisting>
+ <![CDATA[
+ /* 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 <iostream>
+ #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 << "Days since Jan 1: " << days_since_year_start.days()
+ << std::endl;
+
+ days days_until_year_start = new_years_day.get_date(today.year()+1) - today;
+ std::cout << "Days until next Jan 1: " << days_until_year_start.days()
+ << std::endl;
+ return 0;
+ };
+
+ ]]>
+ </programlisting>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ex_end_of_month_day.xml b/src/boost/libs/date_time/xmldoc/ex_end_of_month_day.xml
new file mode 100644
index 000000000..d67dde7e5
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_end_of_month_day.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.end_of_month_day">
+ <title>End of the Months</title>
+
+ <para>
+ Iterates accross the remaining months in a given year, always landing on the last day of the month.
+ </para>
+ <programlisting>
+ <![CDATA[
+ /* Simple program that uses the gregorian calendar to find the last
+ * day of the month and then display the last day of every month left
+ * in the year.
+ */
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include <iostream>
+
+ int
+ main()
+ {
+ using namespace boost::gregorian;
+
+ std::cout << " Enter Year(ex: 2002): ";
+ int year, month;
+ std::cin >> year;
+ std::cout << " Enter Month(1..12): ";
+ std::cin >> month;
+ try {
+ int day = gregorian_calendar::end_of_month_day(year,month);
+ date end_of_month(year,month,day);
+
+ //Iterate thru by months --
+ month_iterator mitr(end_of_month,1);
+ date start_of_next_year(year+1, Jan, 1);
+ //loop thru the days and print each one
+ while (mitr < start_of_next_year){
+ std::cout << to_simple_string(*mitr) << std::endl;
+ ++mitr;
+ }
+
+ }
+ catch(...) {
+ std::cout << "Invalid Date Entered" << std::endl;
+ }
+ return 0;
+
+ }
+
+ ]]>
+ </programlisting>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ex_find_last_day_of_months.xml b/src/boost/libs/date_time/xmldoc/ex_find_last_day_of_months.xml
new file mode 100644
index 000000000..52f8c74fe
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_find_last_day_of_months.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.end_of_month_day">
+ <title>Last Day of the Months</title>
+
+ <para>
+ Example that gets a month and a year from the user and finds the last day of each remaining month of that year.
+ </para>
+ <programlisting>
+ <![CDATA[
+ /* 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 <iostream>
+
+ 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 << " Enter Year(ex: 2002): ";
+ std::cin >> y;
+ year = greg_year(y);
+ std::cout << " Enter Month(1..12): ";
+ std::cin >> m;
+ month = greg_month(m);
+ }
+ catch(bad_year by) {
+ std::cout << "Invalid Year Entered: " << by.what() << '\n'
+ << "Using minimum values for month and year." << std::endl;
+ }
+ catch(bad_month bm) {
+ std::cout << "Invalid Month Entered" << bm.what() << '\n'
+ << "Using minimum value for month. " << 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 < start_of_next_year){
+ std::cout << to_simple_string(d.end_of_month()) << std::endl;
+ d += months(1);
+ }
+
+ return 0;
+ }
+
+ ]]>
+ </programlisting>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ex_flight.xml b/src/boost/libs/date_time/xmldoc/ex_flight.xml
new file mode 100644
index 000000000..98ec4c4e9
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_flight.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.flight">
+ <title>Flight Time Example</title>
+
+ <para>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).</para>
+
+<programlisting>
+<literal>
+<phrase role="preprocessor">#include</phrase><phrase role="string"> &quot;boost/date_time/local_time/local_time.hpp&quot;</phrase><phrase role="preprocessor">
+#include</phrase><phrase role="special"> &lt;</phrase><phrase role="identifier">iostream</phrase><phrase role="special">&gt;</phrase><phrase role="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).
+ *
+ *
+ */</phrase><phrase role="keyword">
+
+int</phrase><phrase role="identifier"> main</phrase><phrase role="special">()</phrase><phrase role="special">
+{</phrase><phrase role="keyword">
+ using</phrase><phrase role="keyword"> namespace</phrase><phrase role="identifier"> boost</phrase><phrase role="special">::</phrase><phrase role="identifier">gregorian</phrase><phrase role="special">;</phrase><phrase role="keyword">
+ using</phrase><phrase role="keyword"> namespace</phrase><phrase role="identifier"> boost</phrase><phrase role="special">::</phrase><phrase role="identifier">local_time</phrase><phrase role="special">;</phrase><phrase role="keyword">
+ using</phrase><phrase role="keyword"> namespace</phrase><phrase role="identifier"> boost</phrase><phrase role="special">::</phrase><phrase role="identifier">posix_time</phrase><phrase role="special">;</phrase><phrase role="comment">
+
+
+ //setup some timezones for creating and adjusting local times
+ //This user editable file can be found in libs/date_time/data.
+</phrase><phrase role="identifier"> tz_database</phrase><phrase role="identifier"> tz_db</phrase><phrase role="special">;</phrase><phrase role="identifier">
+ tz_db</phrase><phrase role="special">.</phrase><phrase role="identifier">load_from_file</phrase><phrase role="special">(</phrase><phrase role="string">&quot;date_time_zonespec.csv&quot;</phrase><phrase role="special">);</phrase><phrase role="identifier">
+ time_zone_ptr</phrase><phrase role="identifier"> nyc_tz</phrase><phrase role="special"> =</phrase><phrase role="identifier"> tz_db</phrase><phrase role="special">.</phrase><phrase role="identifier">time_zone_from_region</phrase><phrase role="special">(</phrase><phrase role="string">&quot;America/New_York&quot;</phrase><phrase role="special">);</phrase><phrase role="comment">
+ //Use a
+</phrase><phrase role="identifier"> time_zone_ptr</phrase><phrase role="identifier"> phx_tz</phrase><phrase role="special">(</phrase><phrase role="keyword">new</phrase><phrase role="identifier"> posix_time_zone</phrase><phrase role="special">(</phrase><phrase role="string">&quot;MST-07:00:00&quot;</phrase><phrase role="special">));</phrase><phrase role="comment">
+
+ //local departure time in phoenix is 11 pm on april 2 2005
+ // (ny changes to dst on apr 3 at 2 am)
+</phrase><phrase role="identifier"> local_date_time</phrase><phrase role="identifier"> phx_departure</phrase><phrase role="special">(</phrase><phrase role="identifier">date</phrase><phrase role="special">(</phrase><phrase role="number">2005</phrase><phrase role="special">,</phrase><phrase role="identifier"> Apr</phrase><phrase role="special">,</phrase><phrase role="number"> 2</phrase><phrase role="special">),</phrase><phrase role="identifier"> hours</phrase><phrase role="special">(</phrase><phrase role="number">23</phrase><phrase role="special">),</phrase><phrase role="identifier">
+ phx_tz</phrase><phrase role="special">,</phrase><phrase role="identifier">
+ local_date_time</phrase><phrase role="special">::</phrase><phrase role="identifier">NOT_DATE_TIME_ON_ERROR</phrase><phrase role="special">);</phrase><phrase role="identifier">
+
+ time_duration</phrase><phrase role="identifier"> flight_length</phrase><phrase role="special"> =</phrase><phrase role="identifier"> hours</phrase><phrase role="special">(</phrase><phrase role="number">4</phrase><phrase role="special">)</phrase><phrase role="special"> +</phrase><phrase role="identifier"> minutes</phrase><phrase role="special">(</phrase><phrase role="number">30</phrase><phrase role="special">);</phrase><phrase role="identifier">
+ local_date_time</phrase><phrase role="identifier"> phx_arrival</phrase><phrase role="special"> =</phrase><phrase role="identifier"> phx_departure</phrase><phrase role="special"> +</phrase><phrase role="identifier"> flight_length</phrase><phrase role="special">;</phrase><phrase role="identifier">
+ local_date_time</phrase><phrase role="identifier"> nyc_arrival</phrase><phrase role="special"> =</phrase><phrase role="identifier"> phx_arrival</phrase><phrase role="special">.</phrase><phrase role="identifier">local_time_in</phrase><phrase role="special">(</phrase><phrase role="identifier">nyc_tz</phrase><phrase role="special">);</phrase><phrase role="identifier">
+
+ std</phrase><phrase role="special">::</phrase><phrase role="identifier">cout</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="string"> &quot;departure phx time: &quot;</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="identifier"> phx_departure</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="identifier"> std</phrase><phrase role="special">::</phrase><phrase role="identifier">endl</phrase><phrase role="special">;</phrase><phrase role="identifier">
+ std</phrase><phrase role="special">::</phrase><phrase role="identifier">cout</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="string"> &quot;arrival phx time: &quot;</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="identifier"> phx_arrival</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="identifier"> std</phrase><phrase role="special">::</phrase><phrase role="identifier">endl</phrase><phrase role="special">;</phrase><phrase role="identifier">
+ std</phrase><phrase role="special">::</phrase><phrase role="identifier">cout</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="string"> &quot;arrival nyc time: &quot;</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="identifier"> nyc_arrival</phrase><phrase role="special"> &lt;&lt;</phrase><phrase role="identifier"> std</phrase><phrase role="special">::</phrase><phrase role="identifier">endl</phrase><phrase role="special">;</phrase><phrase role="special">
+
+}</phrase>
+</literal>
+</programlisting>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ex_local_utc_conversion.xml b/src/boost/libs/date_time/xmldoc/ex_local_utc_conversion.xml
new file mode 100644
index 000000000..61c8afe5b
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_local_utc_conversion.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.local_utc_conversion">
+ <title>Local to UTC Conversion</title>
+
+ <para>
+ Demonstrate utc to local and local to utc calculations including dst.
+ </para>
+ <programlisting>
+ <![CDATA[
+
+ /* Demonstrate conversions between a local time and utc
+ * Output:
+ *
+ * UTC <--> 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 <--> 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 <--> 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 <iostream>
+
+ 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<ptime> local_adj;
+ ptime t10(date(2002,Jan,1), hours(7));
+ ptime t11 = local_adj::utc_to_local(t10);
+ std::cout << "UTC <--> Zone base on TZ setting" << std::endl;
+ std::cout << to_simple_string(t11) << " in your TZ is "
+ << to_simple_string(t10) << " UTC time "
+ << std::endl;
+ time_duration td = t11 - t10;
+ std::cout << "A difference of: "
+ << to_simple_string(td) << std::endl;
+
+
+ //eastern timezone is utc-5
+ typedef boost::date_time::local_adjustor<ptime, -5, us_dst> us_eastern;
+
+ ptime t1(date(2001,Dec,31), hours(19)); //5 hours b/f midnight NY time
+
+ std::cout << "\nUTC <--> New York while DST is NOT active (5 hours)"
+ << std::endl;
+ ptime t2 = us_eastern::local_to_utc(t1);
+ std::cout << to_simple_string(t1) << " in New York is "
+ << to_simple_string(t2) << " UTC time "
+ << std::endl;
+
+ ptime t3 = us_eastern::utc_to_local(t2);//back should be the same
+ std::cout << to_simple_string(t2) << " UTC is "
+ << to_simple_string(t3) << " New York time "
+ << "\n\n";
+
+ ptime t4(date(2002,May,31), hours(20)); //4 hours b/f midnight NY time
+ std::cout << "UTC <--> New York while DST is active (4 hours)" << std::endl;
+ ptime t5 = us_eastern::local_to_utc(t4);
+ std::cout << to_simple_string(t4) << " in New York is "
+ << to_simple_string(t5) << " UTC time "
+ << std::endl;
+
+ ptime t6 = us_eastern::utc_to_local(t5);//back should be the same
+ std::cout << to_simple_string(t5) << " UTC is "
+ << to_simple_string(t6) << " New York time "
+ << "\n" << std::endl;
+
+
+ //Arizona timezone is utc-7 with no dst
+ typedef boost::date_time::local_adjustor<ptime, -7, no_dst> us_arizona;
+
+ ptime t7(date(2002,May,31), hours(17));
+ std::cout << "UTC <--> Arizona (7 hours)" << std::endl;
+ ptime t8 = us_arizona::local_to_utc(t7);
+ std::cout << to_simple_string(t7) << " in Arizona is "
+ << to_simple_string(t8) << " UTC time "
+ << std::endl;
+
+ return 0;
+ }
+
+ ]]>
+ </programlisting>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ex_localization.xml b/src/boost/libs/date_time/xmldoc/ex_localization.xml
new file mode 100644
index 000000000..2fb872e18
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_localization.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.localization">
+ <title>Localization Demonstration</title>
+
+ <para>
+ The boost::date_time library provides the ability to create customized locale facets. Date ordering, language, seperators, and abbreviations can be customized.
+ </para>
+ <!-- <para>
+ This example uses the new (as of 1.33) date_time IO code. An example using the old code is also provided to demonstrate how much easier customized output is (see <link linkend="date_time.examples.legacy_localization">legacy_localization example</link>).
+ </para> -->
+ <programlisting>
+ <![CDATA[
+ /* 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 <iostream>
+ #include <algorithm>
+
+ /* 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(&de_short_month_names[0], &de_short_month_names[11],
+ std::back_inserter(short_months));
+ std::copy(&de_long_month_names[0], &de_long_month_names[11],
+ std::back_inserter(long_months));
+ std::copy(&de_short_weekday_names[0], &de_short_weekday_names[6],
+ std::back_inserter(short_weekdays));
+ std::copy(&de_long_weekday_names[0], &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->short_month_names(short_months);
+ german_facet->long_month_names(long_months);
+ german_facet->short_weekday_names(short_weekdays);
+ german_facet->long_weekday_names(long_weekdays);
+
+ // output the date in German using short month names
+ german_facet->format("%d.%m.%Y");
+ std::cout << d1 << std::endl; //01.10.2002
+
+ german_facet->month_format("%B");
+ std::cout << m << std::endl; //Oktober
+
+ german_facet->weekday_format("%A");
+ std::cout << wd << 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->format("%m/%d/%Y");
+ std::cout << d1 << std::endl; // 10/01/2002
+
+ // English names, iso order (year-month-day), '-' separator
+ us_facet->format("%Y-%b-%d");
+ std::cout << d1 << std::endl; // 2002-Oct-01
+
+ return 0;
+
+ }
+ ]]>
+ </programlisting>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ex_meeting_planner.xml b/src/boost/libs/date_time/xmldoc/ex_meeting_planner.xml
new file mode 100644
index 000000000..a838a1e4c
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_meeting_planner.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.meeting_planner">
+ <title>Teleconference Scheduler (partial listing)</title>
+
+ <para>
+ The Teleconference Scheduler is a Qt based example (found in the examples/qt directory). Partial listings of <link linkend="meeting_planner_hpp">meeting_planner.hpp</link> and <link linkend="planner_form_cpp">planner_form.cpp</link> are provided to illustrate techniques for using the local_date_time and tz_database objects.
+ </para>
+
+ <anchor id="planner_form_cpp" />
+ <para>
+ The planner_form class is derived from a QDialog. This listing illustrates the initialization of a tz_database object and using it to populate combo boxes with region lists. Only the init function is listed here for the sake of brevity.
+ </para>
+ <programlisting>
+ <![CDATA[
+
+ void planner_form::init() {
+ try{
+ tz_db.load_from_file("../../data/date_time_zonespec.csv");
+ }catch(boost::local_time::data_not_accessible dna) {
+ std::cerr << "Error with time zone data file: " << dna.what() << std::endl;
+ exit(EXIT_FAILURE);
+ }catch(boost::local_time::bad_field_count bfc) {
+ std::cerr << "Error with time zone data file: " << bfc.what() << std::endl;
+ exit(EXIT_FAILURE);
+ }
+
+ // populate combo boxes with region names
+ typedef std::vector<std::string> vect;
+ vect regions = tz_db.region_list();
+ vect::const_iterator itr = regions.begin();
+ while(itr != regions.end()) {
+ comboBox1->insertItem(*itr);
+ comboBox2->insertItem(*itr);
+ comboBox3->insertItem(*itr);
+ ++itr;
+ }
+ comboBox1->insertItem("<Select Region>", 0);
+ comboBox2->insertItem("<Select Region>", 0);
+ comboBox3->insertItem("<Select Region>", 0);
+
+ // set up dateEdit
+ dateEdit2->setSeparator("-");
+
+ this->reset();
+ }
+
+ ]]>
+ </programlisting>
+
+ <anchor id="meeting_planner_hpp" />
+ <para>
+ This class coordinates local times across multiple time zones. It accomplishes this by iterating across a collection of time zones and verifying that the target time falls within a set period (a workday).
+ </para>
+ <programlisting>
+ <![CDATA[
+
+ /* The heart of the meeting_planner is the synchronization of different
+ * time zones to a single point in time.
+ * The class takes a vector of regions and a date. The default time
+ * range is 9am to 5pm but can be changed.
+ * The resulting time specs are returned as a vector of strings
+ */
+
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include "boost/date_time/posix_time/posix_time.hpp"
+ #include "boost/date_time/local_time/local_time.hpp"
+ #include "boost/shared_ptr.hpp"
+ #include <string>
+ #include <vector>
+ #include <locale>
+
+ using namespace boost;
+ using namespace local_time;
+ using namespace posix_time;
+
+ //! Coordinates meeting times accounting for time zone differences
+ class meeting_planner {
+ public:
+ typedef std::vector<shared_ptr<time_zone_base> > vector_type;
+ // a multimap is used so time_zones can be sorted according to utc_offset
+ typedef std::multimap<posix_time::time_duration, shared_ptr<time_zone_base> > zone_map_type;
+ typedef std::vector<std::string> result_type;
+
+ meeting_planner(const gregorian::date& d, const vector_type& v)
+ : l_time(posix_time::not_a_date_time, shared_ptr<time_zone_base>()),
+ workday(ptime(d,hours(9)), time_duration(8,0,0,1))
+ {
+ vector_type::const_iterator iter = v.begin();
+ while(iter != v.end()) {
+ time_duration offset(0,0,0);
+ if(*iter == NULL) {
+ offset = hours(0);
+ }
+ else{
+ // null pointers may wind up in the vector
+ // TODO: this should be fixed in tz_database
+ offset = (*iter)->base_utc_offset();
+ }
+ zones.insert(zone_map_type::value_type(offset, *iter));
+ ++iter;
+ }
+
+ // set l_time to noon UTC
+ l_time = local_date_time(posix_time::ptime(d, posix_time::hours(12)),
+ shared_ptr<time_zone_base>());
+ }
+
+ //! Changes range of valid meeting times (ie. The hours in a workday) times are inclusive
+ void change_range(const time_duration& start, const time_duration& end)
+ {
+ ptime pt(l_time.date(), start);
+ // add one unit to make the give times inclusive
+ workday = time_period(pt, (end - start) + time_duration::unit());
+ }
+
+ //! strings returned in the form of "yyyy-Mon-dd: hh:mm Zzz [repeat]"
+ result_type coordinate_time() const
+ {
+ using namespace posix_time;
+
+ result_type result;
+ bool flag = true;
+ std::stringstream ss;
+ ss.str("");
+
+ // set the output format for local_date_time to only give
+ // time_of_day & zone offset
+ typedef boost::date_time::time_facet<local_date_time, char> ldt_facet;
+ ldt_facet* timefacet = new ldt_facet("%H:%M (%q)");
+ std::locale loc(std::locale::classic(), timefacet);
+ ss.imbue(loc);
+
+ // backup a full day and start iterating from there
+ // I went overkill because I've got no decent
+ // algorithm to set a starting point (yet)
+ local_date_time tmp = l_time - gregorian::days(1);
+ zone_map_type::const_iterator iter;
+ for(int i = 0; i < 48; ++i) {
+ iter = zones.begin();
+ flag = true;
+ tmp += posix_time::hours(1);
+
+ while(iter != zones.end() && flag) {
+ if(!workday.contains(tmp.local_time_in(iter->second).local_time())) {
+ flag = false;
+ }
+ ++iter;
+ }
+
+ if(flag) {
+ iter = zones.begin();
+ ss << tmp.date() << ':';
+ while(iter != zones.end()) {
+ ss << ' ' << tmp.local_time_in(iter->second);
+ ++iter;
+ if(iter != zones.end()) {
+ ss << ',';
+ }
+ }
+ result.push_back(ss.str());
+ ss.str("");
+ }
+ }
+ if(result.empty()) {
+ result.push_back("Scheduling within the time period given is not possible for these time zones.");
+ }
+ return result;
+ }
+
+ private:
+ zone_map_type zones;
+ local_date_time l_time;
+ time_period workday;
+ };
+
+ ]]>
+ </programlisting>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ex_month_add.xml b/src/boost/libs/date_time/xmldoc/ex_month_add.xml
new file mode 100644
index 000000000..544fa41eb
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_month_add.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.month_add">
+ <title>Month Adding</title>
+
+ <para>
+ Adding a month to a day without the use of iterators.
+ </para>
+ <programlisting>
+ <![CDATA[
+ /* 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 <iostream>
+
+ 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 << "Today is: " << to_simple_string(d) << ".\n"
+ << "One month from today will be: " << to_simple_string(d2)
+ << std::endl;
+
+ return 0;
+ }
+ ]]>
+ </programlisting>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ex_print_holidays.xml b/src/boost/libs/date_time/xmldoc/ex_print_holidays.xml
new file mode 100644
index 000000000..5ae64437a
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_print_holidays.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.print_holidays">
+ <title>Print Holidays</title>
+
+ <para>
+ This is an example of using functors to define a holiday schedule
+ </para>
+ <programlisting>
+ <![CDATA[
+
+ /* 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 <algorithm>
+ #include <functional>
+ #include <vector>
+ #include <iostream>
+ #include <set>
+
+ void
+ print_date(boost::gregorian::date d)
+ {
+ using namespace boost::gregorian;
+ #if defined(BOOST_DATE_TIME_NO_LOCALE)
+ std::cout << to_simple_string(d) << " [" << d.day_of_week() << "]\n";
+ #else
+ std::cout << d << " [" << d.day_of_week() << "]\n";
+ #endif
+ }
+
+
+ int
+ main() {
+
+ std::cout << "Enter Year: ";
+ int year;
+ std::cin >> year;
+
+ using namespace boost::gregorian;
+
+ //define a collection of holidays fixed by month and day
+ std::vector<year_based_generator*> 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<date> date_set;
+ date_set all_holidays;
+
+ for(std::vector<year_based_generator*>::iterator it = holidays.begin();
+ it != holidays.end(); ++it)
+ {
+ all_holidays.insert((*it)->get_date(year));
+ }
+
+ //print the holidays to the screen
+ std::for_each(all_holidays.begin(), all_holidays.end(), print_date);
+ std::cout << "Number Holidays: " << all_holidays.size() << std::endl;
+
+ return 0;
+ }
+
+ ]]>
+ </programlisting>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ex_print_hours.xml b/src/boost/libs/date_time/xmldoc/ex_print_hours.xml
new file mode 100644
index 000000000..3fe4cc4d7
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_print_hours.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.print_hours">
+ <title>Print Hours</title>
+
+ <para>
+ Demonstrate time iteration, clock retrieval, and simple calculation.
+ </para>
+ <programlisting>
+ <![CDATA[
+ /* 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 <iostream>
+
+ 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 < tommorrow_start; ++titr) {
+ std::cout << to_simple_string(*titr) << std::endl;
+ }
+
+ time_duration remaining = tommorrow_start - now;
+ std::cout << "Time left till midnight: "
+ << to_simple_string(remaining) << std::endl;
+ return 0;
+ }
+
+ ]]>
+ </programlisting>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ex_print_month.xml b/src/boost/libs/date_time/xmldoc/ex_print_month.xml
new file mode 100644
index 000000000..2cca27eea
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_print_month.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.print_month">
+ <title>Print Month</title>
+
+ <para>
+ Simple utility to print out days of the month with the days of a month. Demontstrates date iteration (date_time::date_itr).
+ </para>
+ <programlisting>
+ <![CDATA[
+ /* 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 <iostream>
+
+ int
+ main()
+ {
+ std::cout << "Enter Year: ";
+ int year, month;
+ std::cin >> year;
+ std::cout << "Enter Month(1..12): ";
+ std::cin >> 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 <= endOfMonth; ++ditr) {
+ #if defined(BOOST_DATE_TIME_NO_LOCALE)
+ std::cout << to_simple_string(*ditr) << " ["
+ #else
+ std::cout << *ditr << " ["
+ #endif
+ << ditr->day_of_week() << "]"
+ << std::endl;
+ }
+ }
+ catch(std::exception& e) {
+
+ std::cout << "Error bad date, check your entry: \n"
+ << " Details: " << e.what() << std::endl;
+ }
+ return 0;
+ }
+
+ ]]>
+ </programlisting>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ex_seconds_since_epoch.xml b/src/boost/libs/date_time/xmldoc/ex_seconds_since_epoch.xml
new file mode 100644
index 000000000..b9920e74b
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_seconds_since_epoch.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.seconds_since_epoch">
+ <title>Seconds Since Epoch</title>
+
+ <para>
+ Example of calculating seconds elapsed since epoch (1970-Jan-1) using local_date_time.
+ </para>
+ <programlisting>
+ <![CDATA[
+ /* 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 <iostream>
+
+ 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 << "Error with time zone data file: " << dna.what() << std::endl;
+ exit(EXIT_FAILURE);
+ }catch(bad_field_count bfc) {
+ std::cerr << "Error with time zone data file: " << bfc.what() << 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 << nyc_time << std::endl;
+
+ ptime time_t_epoch(date(1970,1,1));
+ std::cout << time_t_epoch << 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 << "Seconds diff: " << diff.total_seconds() << std::endl;
+
+ }
+ ]]>
+ </programlisting>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ex_simple_time_zone.xml b/src/boost/libs/date_time/xmldoc/ex_simple_time_zone.xml
new file mode 100644
index 000000000..e95b31657
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_simple_time_zone.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.simple_time_zone">
+ <title>Simple Time Zones</title>
+
+ <para>
+ Example usage of custom_time_zone as well as posix_time_zone.
+ </para>
+ <programlisting>
+ <![CDATA[
+ /* A simple example for using a custom_time_zone and a posix_time_zone.
+ */
+
+ #include "boost/date_time/local_time/local_time.hpp"
+ #include <iostream>
+
+ 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<dst_calc_rule> 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<dst_calc_rule> 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 << "The first zone is in daylight savings from:\n "
+ << nyc_1->dst_local_start_time(2004) << " through "
+ << nyc_1->dst_local_end_time(2004) << std::endl;
+
+ std::cout << "The second zone is in daylight savings from:\n "
+ << nyc_2->dst_local_start_time(2004) << " through "
+ << nyc_2->dst_local_end_time(2004) << std::endl;
+
+ std::cout << "The third zone (no daylight savings):\n "
+ << phx_1->std_zone_abbrev() << " and "
+ << phx_1->base_utc_offset() << std::endl;
+
+ std::cout << "The fourth zone (no daylight savings):\n "
+ << phx_2->std_zone_abbrev() << " and "
+ << phx_2->base_utc_offset() << std::endl;
+
+ return 0;
+ }
+ ]]>
+ </programlisting>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ex_time_math.xml b/src/boost/libs/date_time/xmldoc/ex_time_math.xml
new file mode 100644
index 000000000..84130ea5b
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_time_math.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.time_math">
+ <title>Time Math</title>
+
+ <para>
+ Various types of calculations with times and time durations.
+ </para>
+ <programlisting>
+ <![CDATA[
+ /* 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 <iostream>
+
+ 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 << to_simple_string(t2) << " - "
+ << to_simple_string(t1) << " = "
+ << to_simple_string(td) << std::endl;
+
+ return 0;
+ }
+ ]]>
+ </programlisting>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ex_time_periods.xml b/src/boost/libs/date_time/xmldoc/ex_time_periods.xml
new file mode 100644
index 000000000..e3e80a41a
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ex_time_periods.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.time_periods">
+ <title>Time Periods</title>
+
+ <para>
+ Demonstrate some simple uses of time periods.
+ </para>
+ <programlisting>
+ <![CDATA[
+
+ /* 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 <iostream>
+
+ 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 << to_simple_string(dp) << " contains "
+ << to_simple_string(t) << 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 << to_simple_string(dp) << " intersected with\n"
+ << to_simple_string(part_of_day) << " is \n"
+ << to_simple_string(result) << std::endl;
+ }
+
+
+ return 0;
+ }
+
+ ]]>
+ </programlisting>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/examples.xml b/src/boost/libs/date_time/xmldoc/examples.xml
new file mode 100644
index 000000000..eff314b2c
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/examples.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples" xmlns:xi="http://www.w3.org/2001/XInclude">
+ <title>Examples</title>
+
+ <!-- gregorian examples -->
+ <xi:include href="ex_dates_as_strings.xml"/>
+ <xi:include href="ex_days_alive.xml"/>
+ <xi:include href="ex_days_between_new_years.xml"/>
+ <xi:include href="ex_find_last_day_of_months.xml"/>
+ <xi:include href="ex_localization.xml"/>
+ <!-- <xi:include href="ex_legacy_localization.xml"/> -->
+ <xi:include href="ex_date_period_calc.xml"/>
+ <xi:include href="ex_print_holidays.xml"/>
+ <xi:include href="ex_print_month.xml"/>
+ <xi:include href="ex_month_add.xml"/>
+ <!-- posix_time examples -->
+ <xi:include href="ex_time_math.xml"/>
+ <xi:include href="ex_print_hours.xml"/>
+ <xi:include href="ex_local_utc_conversion.xml"/>
+ <xi:include href="ex_time_periods.xml"/>
+ <!-- local_time examples -->
+ <xi:include href="ex_simple_time_zone.xml"/>
+ <xi:include href="ex_calc_rules.xml"/>
+ <xi:include href="ex_flight.xml"/>
+ <xi:include href="ex_seconds_since_epoch.xml"/>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/exclusive_date_time.xml b/src/boost/libs/date_time/xmldoc/exclusive_date_time.xml
new file mode 100644
index 000000000..5238d1b1f
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/exclusive_date_time.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE boostbook PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+ "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2006 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+
+<boostbook xmlns:xi="http://www.w3.org/2001/XInclude"
+ last-revision="$Date$">
+ <title>The Boost Date Time Library</title>
+ <xi:include href="./date_time.xml"/>
+</boostbook>
diff --git a/src/boost/libs/date_time/xmldoc/format_flags.xml b/src/boost/libs/date_time/xmldoc/format_flags.xml
new file mode 100644
index 000000000..81cc2f25b
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/format_flags.xml
@@ -0,0 +1,524 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.format_flags">
+ <title>Format Flags</title>
+
+ <para>Many of the format flags this new system uses for output are those used by <code>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).</para>
+
+ <para>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.
+ </para>
+
+ <para>
+ <anchor id="date_time_io.date_format_flags" />
+ Date Facet Format Flags
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Format Specifier</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>%a</screen></entry>
+ <entry>Abbreviated weekday name</entry>
+ </row>
+ <row>
+ <entry><screen>"Mon" => Monday</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%A</screen></entry>
+ <entry>Long weekday name</entry>
+ </row>
+ <row>
+ <entry><screen>"Monday"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%b</screen></entry>
+ <entry>Abbreviated month name</entry>
+ </row>
+ <row>
+ <entry><screen>"Feb" => February</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%B</screen></entry>
+ <entry>Full month name</entry>
+ </row>
+ <row>
+ <entry><screen>"February"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%c !</screen></entry>
+ <entry>The preferred date and time representation for the current locale.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%C !#</screen></entry>
+ <entry>The century number (year/100) as a 2-digit integer.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%d</screen></entry>
+ <entry>
+ Day of the month as decimal 01 to 31. When used to parse input, the leading zero is optional.
+ </entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%D !#</screen></entry>
+ <entry>Equivalent to %m/%d/%y</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%e #</screen></entry>
+ <entry>
+ Like %d, the day of the month as a decimal number, but a leading zero is replaced by a space.
+ When used to parse input, the leading space is optional.
+ </entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%G !</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%g !</screen></entry>
+ <entry>Like %G, but without century.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%h !#</screen></entry>
+ <entry> Equivalent to %b</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%j</screen></entry>
+ <entry>Day of year as decimal from 001 to 366 for leap years, 001 - 365 for non-leap years.</entry>
+ </row>
+ <row>
+ <entry><screen>"060" => Feb-29</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%m</screen></entry>
+ <entry>Month name as a decimal 01 to 12</entry>
+ </row>
+ <row>
+ <entry><screen>"01" => January</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%u !</screen></entry>
+ <entry>The day of the week as a decimal, range 1 to 7, Monday being 1.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%U</screen></entry>
+ <entry>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).</entry>
+ </row>
+ <row>
+ <entry><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</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%V !#</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%w</screen></entry>
+ <entry>Weekday as decimal number 0 to 6</entry>
+ </row>
+ <row>
+ <entry><screen>"0" => Sunday</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%W</screen></entry>
+ <entry>Week number 00 to 53 where Monday is first day of week 1</entry>
+ </row>
+ <row>
+ <entry><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</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%x</screen></entry>
+ <entry>Implementation defined date format from the locale.</entry>
+ </row>
+ <row>
+ <entry><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"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%y</screen></entry>
+ <entry>Two digit year</entry>
+ </row>
+ <row>
+ <entry><screen>"05" => 2005</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%Y</screen></entry>
+ <entry>Four digit year</entry>
+ </row>
+ <row>
+ <entry><screen>"2005"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%Y-%b-%d</screen></entry>
+ <entry>Default date format</entry>
+ </row>
+ <row>
+ <entry><screen>"2005-Apr-01"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%Y%m%d</screen></entry>
+ <entry>ISO format</entry>
+ </row>
+ <row>
+ <entry><screen>"20050401"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%Y-%m-%d</screen></entry>
+ <entry>ISO extended format</entry>
+ </row>
+ <row>
+ <entry><screen>"2005-04-01"</screen></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+
+ <anchor id="date_time_io.time_format_flags" />
+ Time Facet Format Flags
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Format Specifier</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>%- *!</screen></entry>
+ <entry>Placeholder for the sign of a duration. Only displays when the duration is negative.</entry>
+ </row>
+ <row>
+ <entry><screen>"-13:15:16"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%+ *!</screen></entry>
+ <entry>Placeholder for the sign of a duration. Always displays for both positive and negative.</entry>
+ </row>
+ <row>
+ <entry><screen>"+13:15:16"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%f</screen></entry>
+ <entry>Fractional seconds are always used, even when their value is zero</entry>
+ </row>
+ <row>
+ <entry><screen>"13:15:16.000000"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%F *</screen></entry>
+ <entry>Fractional seconds are used only when their value is not zero.</entry>
+ </row>
+ <row>
+ <entry><screen>"13:15:16"
+"05:04:03.001234"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%H</screen></entry>
+ <entry>The hour as a decimal number using a 24-hour clock (range 00 to 23).</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%I !</screen></entry>
+ <entry>The hour as a decimal number using a 12-hour clock (range 01 to 12).</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%k !</screen></entry>
+ <entry>The hour (24-hour clock) as a decimal number (range 0 to 23); single digits are preceded by a blank.</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%l !</screen></entry>
+ <entry>The hour (12-hour clock) as a decimal number (range 1 to 12); single digits are preceded by a blank.</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%M</screen></entry>
+ <entry>The minute as a decimal number (range 00 to 59).</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%O</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%p !</screen></entry>
+ <entry>Either `AM' or `PM' according to the given time value, or the corresponding strings for the current locale.</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%P !#</screen></entry>
+ <entry>Like %p but in lowercase: `am' or `pm' or a corresponding string for the current locale.</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%r !#</screen></entry>
+ <entry>The time in a.m. or p.m. notation. In the POSIX locale this is equivalent to `%I:%M:%S %p'</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%R !</screen></entry>
+ <entry>The time in 24-hour notation (%H:%M)</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%s *</screen></entry>
+ <entry>Seconds with fractional seconds.</entry>
+ </row>
+ <row>
+ <entry><screen>"59.000000"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%S</screen></entry>
+ <entry>Seconds only</entry>
+ </row>
+ <row>
+ <entry><screen>"59"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%T !</screen></entry>
+ <entry>The time in 24-hour notation (%H:%M:%S)</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%q</screen></entry>
+ <entry>ISO time zone (output only). This flag is ignored when using the time_facet with a ptime.</entry>
+ </row>
+ <row>
+ <entry><screen>"-0700" // Mountain Standard Time</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%Q</screen></entry>
+ <entry>ISO extended time zone (output only). This flag is ignored when using the time_facet with a ptime.</entry>
+ </row>
+ <row>
+ <entry><screen>"-05:00" // Eastern Standard Time</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%z *!</screen></entry>
+ <entry>Abbreviated time zone (output only). This flag is ignored when using the time_facet with a ptime.</entry>
+ </row>
+ <row>
+ <entry><screen>"MST" // Mountain Standard Time</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%Z *!</screen></entry>
+ <entry>Full time zone name (output only). This flag is ignored when using the time_facet with a ptime.</entry>
+ </row>
+ <row>
+ <entry><screen>"EDT" // Eastern Daylight Time</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%ZP *</screen></entry>
+ <entry>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 <link linkend="date_time.local_time.posix_time_zone">posix_time_zone class</link>.</entry>
+ </row>
+ <row>
+ <entry><screen>"EST-05EDT+01,M4.1.0/02:00,M10.5.0/02:00"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%x %X</screen></entry>
+ <entry>Implementation defined date/time format from the locale.</entry>
+ </row>
+ <row>
+ <entry><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"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%Y%m%dT%H%M%S%F%q</screen></entry>
+ <entry>ISO format</entry>
+ </row>
+ <row>
+ <entry><screen>"20051015T131211-0700" // Oct 15, 2005 13:12:11 MST</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%Y-%m-%d %H:%M:%S%F%Q</screen></entry>
+ <entry>Extended ISO format</entry>
+ </row>
+ <row>
+ <entry><screen>"2005-10-15 13:12:11-07:00"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%Y-%b-%d %H:%M:%S%F %z</screen></entry>
+ <entry>Default format used when outputting ptime and local_date_time.</entry>
+ </row>
+ <row>
+ <entry><screen>"2005-Oct-15 13:12:11 MST"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%Y-%b-%d %H:%M:%S%F %ZP</screen></entry>
+ <entry>Default format used when inputting ptime and local_date_time.</entry>
+ </row>
+ <row>
+ <entry><screen>"2005-Oct-15 13:12:11 MST-07"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%-%H:%M:%S%F !</screen></entry>
+ <entry>Default time_duration format for output. Sign will only be displayed for negative durations.</entry>
+ </row>
+ <row>
+ <entry><screen>"-13:14:15.003400"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>%H:%M:%S%F</screen></entry>
+ <entry>Default time_duration format for input.</entry>
+ </row>
+ <row>
+ <entry><screen>"13:14:15.003400"</screen></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+ <para>* Signifies flags that have a behavior unique to <code>date_time</code>.</para>
+ <para># Signifies flags that have a platform-dependent behavior. These may not be supported everywhere.</para>
+ <para>! Signifies flags that currently do not work for input.</para>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/gregorian.xml b/src/boost/libs/date_time/xmldoc/gregorian.xml
new file mode 100644
index 000000000..6ad209860
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/gregorian.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.gregorian"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+ <title>Gregorian</title>
+ <bridgehead renderas="sect2">Gregorian Date System</bridgehead>
+ <para>
+ <link linkend="greg_intro">Introduction</link> --
+ <link linkend="greg_ex">Usage Examples</link>
+ </para>
+
+ <anchor id="greg_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>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.
+ </para>
+ <para>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 <ulink url="http://emr.cs.iit.edu/home/reingold/calendar-book/second-edition">Calendrical Calculations</ulink> 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.
+ </para>
+ <para>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.
+ </para>
+ <para>The class <link linkend="date_time.gregorian.date_class">boost::gregorian::date</link> 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 <link linkend="date_time.gregorian.date_algorithms">generators and algorithms page</link>.
+ </para>
+
+ <anchor id="greg_ex" />
+ <bridgehead renderas="sect3">Usage Examples</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Example</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top"><literallayout>
+<link linkend="date_time.examples.days_alive">Days Alive</link> &nbsp;
+<link linkend="date_time.examples.days_between_new_year">Days Between New Years</link></literallayout></entry>
+ <entry>Simple date arithmetic. Retrieve current day from clock.</entry>
+ </row>
+ <row>
+ <entry valign="top"><literallayout><link linkend="date_time.examples.dates_as_strings">Dates as strings</link></literallayout></entry>
+ <entry>Simple parsing and formatting of dates from/to strings</entry>
+ </row>
+ <row>
+ <entry valign="top"><literallayout><link linkend="date_time.examples.date_period_calc">Date Period Calculations</link></literallayout></entry>
+ <entry>See if a date is in a set of date periods (eg: is it a holiday/weekend)</entry>
+ </row>
+ <row>
+ <entry valign="top"><literallayout><link linkend="date_time.examples.print_month">Print a month</link></literallayout></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry valign="top"><literallayout><link linkend="date_time.examples.print_holidays">Print Holidays</link></literallayout></entry>
+ <entry>Uses date generators to convert abstract specification into concrete set of dates.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <xi:include href="date_class.xml" />
+ <xi:include href="date_duration.xml" />
+ <xi:include href="date_period.xml" />
+ <xi:include href="date_iterators.xml" />
+ <xi:include href="date_algorithms.xml" />
+ <xi:include href="gregorian_calendar.xml" />
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/gregorian_autodoc.xml b/src/boost/libs/date_time/xmldoc/gregorian_autodoc.xml
new file mode 100644
index 000000000..2a06cf4f2
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/gregorian_autodoc.xml
@@ -0,0 +1,1676 @@
+<?xml version="1.0" standalone="yes"?>
+<library-reference id="gregorian_reference"><title>Gregorian Reference</title><header name="boost/date_time/gregorian/conversion.hpp">
+<namespace name="boost">
+<namespace name="gregorian">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<function name="to_tm"><type>std::tm</type><parameter name="d"><paramtype>const <classname>date</classname> &amp;</paramtype></parameter><purpose>Converts a date to a tm struct. Throws out_of_range exception if date is a special value. </purpose></function>
+<function name="date_from_tm"><type><classname>date</classname></type><parameter name="datetm"><paramtype>const std::tm &amp;</paramtype></parameter><purpose>Converts a tm structure into a date dropping the any time values. </purpose></function>
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/gregorian/formatters.hpp">
+<namespace name="boost">
+<namespace name="gregorian">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<function name="to_simple_string_type"><type>std::basic_string&lt; charT &gt;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="d"><paramtype>const <classname>date</classname> &amp;</paramtype></parameter></function>
+<function name="to_simple_string_type"><type>std::basic_string&lt; charT &gt;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="d"><paramtype>const date_period &amp;</paramtype></parameter></function>
+<function name="to_iso_string_type"><type>std::basic_string&lt; charT &gt;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="d"><paramtype>const date_period &amp;</paramtype></parameter></function>
+<function name="to_iso_extended_string_type"><type>std::basic_string&lt; charT &gt;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="d"><paramtype>const <classname>date</classname> &amp;</paramtype></parameter></function>
+<function name="to_iso_string_type"><type>std::basic_string&lt; charT &gt;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="d"><paramtype>const <classname>date</classname> &amp;</paramtype></parameter></function>
+<function name="to_sql_string_type"><type>std::basic_string&lt; charT &gt;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="d"><paramtype>const <classname>date</classname> &amp;</paramtype></parameter></function>
+<function name="to_simple_wstring"><type>std::wstring</type><parameter name="d"><paramtype>const date_period &amp;</paramtype></parameter><purpose>Convert date period to simple string. Example: [2002-Jan-01/2002-Jan-02]. </purpose></function>
+<function name="to_simple_wstring"><type>std::wstring</type><parameter name="d"><paramtype>const <classname>date</classname> &amp;</paramtype></parameter><purpose>To YYYY-mmm-DD string where mmm 3 char month name. Example: 2002-Jan-01. </purpose></function>
+<function name="to_iso_wstring"><type>std::wstring</type><parameter name="d"><paramtype>const date_period &amp;</paramtype></parameter><purpose>Date period to iso standard format CCYYMMDD/CCYYMMDD. Example: 20021225/20021231. </purpose></function>
+<function name="to_iso_extended_wstring"><type>std::wstring</type><parameter name="d"><paramtype>const <classname>date</classname> &amp;</paramtype></parameter><purpose>Convert to iso extended format string CCYY-MM-DD. Example 2002-12-31. </purpose></function>
+<function name="to_iso_wstring"><type>std::wstring</type><parameter name="d"><paramtype>const <classname>date</classname> &amp;</paramtype></parameter><purpose>Convert to iso standard string YYYYMMDD. Example: 20021231. </purpose></function>
+<function name="to_sql_wstring"><type>std::wstring</type><parameter name="d"><paramtype>const <classname>date</classname> &amp;</paramtype></parameter></function>
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/gregorian/formatters_limited.hpp">
+<namespace name="boost">
+<namespace name="gregorian">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<function name="to_simple_string"><type>std::string</type><parameter name="d"><paramtype>const <classname>date</classname> &amp;</paramtype></parameter><purpose>To YYYY-mmm-DD string where mmm 3 char month name. Example: 2002-Jan-01. </purpose></function>
+<function name="to_simple_string"><type>std::string</type><parameter name="d"><paramtype>const date_period &amp;</paramtype></parameter><purpose>Convert date period to simple string. Example: [2002-Jan-01/2002-Jan-02]. </purpose></function>
+<function name="to_iso_string"><type>std::string</type><parameter name="d"><paramtype>const date_period &amp;</paramtype></parameter><purpose>Date period to iso standard format CCYYMMDD/CCYYMMDD. Example: 20021225/20021231. </purpose></function>
+<function name="to_iso_extended_string"><type>std::string</type><parameter name="d"><paramtype>const <classname>date</classname> &amp;</paramtype></parameter><purpose>Convert to iso extended format string CCYY-MM-DD. Example 2002-12-31. </purpose></function>
+<function name="to_iso_string"><type>std::string</type><parameter name="d"><paramtype>const <classname>date</classname> &amp;</paramtype></parameter><purpose>Convert to iso standard string YYYYMMDD. Example: 20021231. </purpose></function>
+<function name="to_sql_string"><type>std::string</type><parameter name="d"><paramtype>const <classname>date</classname> &amp;</paramtype></parameter></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/gregorian/greg_calendar.hpp">
+<namespace name="boost">
+<namespace name="gregorian">
+<class name="gregorian_calendar"><inherit access="public">date_time::gregorian_calendar_base&lt; greg_year_month_day, fancy_date_rep::int_type &gt;</inherit><purpose>Gregorian calendar for this implementation, hard work in the base. </purpose><typedef name="day_of_week_type"><purpose>Type to hold a weekday (eg: Sunday, Monday,...) </purpose><type><classname>greg_weekday</classname></type></typedef>
+<typedef name="day_of_year_type"><purpose>Counter type from 1 to 366 for gregorian dates. </purpose><type>greg_day_of_year_rep</type></typedef>
+<typedef name="date_rep_type"><purpose>Internal date representation that handles infinity, not a date. </purpose><type>fancy_date_rep</type></typedef>
+<typedef name="date_traits_type"><purpose>Date rep implements the traits stuff as well. </purpose><type>fancy_date_rep</type></typedef>
+</class><typedef name="fancy_date_rep"><purpose>An internal date representation that includes infinities, not a date. </purpose><type>date_time::int_adapter&lt; uint32_t &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/gregorian/greg_date.hpp">
+<namespace name="boost">
+<namespace name="gregorian">
+<class name="date"><inherit access="public">date_time::date&lt; date, gregorian_calendar, date_duration &gt;</inherit><purpose>A date type based on <classname alt="boost::gregorian::gregorian_calendar">gregorian_calendar</classname>. </purpose><description><para>This class is the primary interface for programming with greogorian dates. The is a lightweight type that can be freely passed by value. All comparison operators are supported. </para></description><typedef name="year_type"><type>gregorian_calendar::year_type</type></typedef>
+<typedef name="month_type"><type>gregorian_calendar::month_type</type></typedef>
+<typedef name="day_type"><type>gregorian_calendar::day_type</type></typedef>
+<typedef name="day_of_year_type"><type>gregorian_calendar::day_of_year_type</type></typedef>
+<typedef name="ymd_type"><type>gregorian_calendar::ymd_type</type></typedef>
+<typedef name="date_rep_type"><type>gregorian_calendar::date_rep_type</type></typedef>
+<typedef name="date_int_type"><type>gregorian_calendar::date_int_type</type></typedef>
+<typedef name="duration_type"><type><classname>date_duration</classname></type></typedef>
+<method-group name="public member functions">
+<method name="julian_day" cv="const"><type>BOOST_CXX14_CONSTEXPR date_int_type</type><purpose>Return the Julian Day number for the date. </purpose></method>
+<method name="day_of_year" cv="const"><type>BOOST_CXX14_CONSTEXPR day_of_year_type</type><purpose>Return the day of year 1..365 or 1..366 (for leap year) </purpose></method>
+<method name="modjulian_day" cv="const"><type>BOOST_CXX14_CONSTEXPR date_int_type</type><purpose>Return the Modified Julian Day number for the date. </purpose></method>
+<method name="week_number" cv="const"><type>BOOST_CXX14_CONSTEXPR int</type><purpose>Return the iso 8601 week number 1..53. </purpose></method>
+<method name="day_number" cv="const"><type>BOOST_CXX14_CONSTEXPR date_int_type</type><purpose>Return the day number from the calendar. </purpose></method>
+<method name="end_of_month" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>date</classname></type><purpose>Return the last day of the current month. </purpose></method>
+</method-group>
+<constructor><purpose>Default constructor constructs with not_a_date_time. </purpose></constructor>
+<constructor><parameter name="y"><paramtype>year_type</paramtype></parameter><parameter name="m"><paramtype>month_type</paramtype></parameter><parameter name="d"><paramtype>day_type</paramtype></parameter><purpose>Main constructor with year, month, day. </purpose></constructor>
+<constructor specifiers="explicit"><parameter name="ymd"><paramtype>const ymd_type &amp;</paramtype></parameter><purpose>Constructor from a ymd_type structure. </purpose></constructor>
+<constructor specifiers="explicit"><parameter name="rhs"><paramtype>const date_int_type &amp;</paramtype></parameter><purpose>Needed copy constructor. </purpose></constructor>
+<constructor specifiers="explicit"><parameter name="rhs"><paramtype>date_rep_type</paramtype></parameter><purpose>Needed copy constructor. </purpose></constructor>
+<constructor specifiers="explicit"><parameter name="sv"><paramtype>special_values</paramtype></parameter><purpose>Constructor for infinities, not a date, max and min date. </purpose></constructor>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<function name="operator=="><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="lhs"><paramtype>const <classname>date</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>date</classname> &amp;</paramtype></parameter></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/gregorian/greg_day.hpp">
+<namespace name="boost">
+<namespace name="gregorian">
+<struct name="bad_day_of_month"><inherit access="public">out_of_range</inherit><purpose>Exception type for gregorian day of month (1..31) </purpose><method-group name="public member functions">
+</method-group>
+<constructor/>
+<constructor><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter><purpose>Allow other classes to throw with unique string for bad day like Feb 29. </purpose></constructor>
+</struct><class name="greg_day"><inherit access="public">greg_day_rep</inherit><purpose>Represent a day of the month (range 1 - 31) </purpose><description><para>This small class allows for simple conversion an integer value into a day of the month for a standard gregorian calendar. The type is automatically range checked so values outside of the range 1-31 will cause a <classname alt="boost::gregorian::bad_day_of_month">bad_day_of_month</classname> exception </para></description><method-group name="public member functions">
+<method name="as_number" cv="const"><type>BOOST_CXX14_CONSTEXPR value_type</type></method>
+<method name="operator value_type" cv="const"><type>BOOST_CXX14_CONSTEXPR</type></method>
+</method-group>
+<constructor><parameter name="day_of_month"><paramtype>value_type</paramtype></parameter></constructor>
+</class><typedef name="greg_day_policies"><purpose>Policy class that declares error handling and day of month ranges. </purpose><type>CV::simple_exception_policy&lt; unsigned short, 1, 31, <classname>bad_day_of_month</classname> &gt;</type></typedef>
+<typedef name="greg_day_rep"><purpose>Generated represetation for gregorian day of month. </purpose><type>CV::constrained_value&lt; greg_day_policies &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/gregorian/greg_day_of_year.hpp">
+<namespace name="boost">
+<namespace name="gregorian">
+<struct name="bad_day_of_year"><inherit access="public">out_of_range</inherit><purpose>Exception type for day of year (1..366) </purpose><method-group name="public member functions">
+</method-group>
+<constructor/>
+</struct><typedef name="greg_day_of_year_policies"><purpose>A day of the year range (1..366) </purpose><type>CV::simple_exception_policy&lt; unsigned short, 1, 366, <classname>bad_day_of_year</classname> &gt;</type></typedef>
+<typedef name="greg_day_of_year_rep"><purpose>Define a range representation type for the day of the year 1..366. </purpose><type>CV::constrained_value&lt; greg_day_of_year_policies &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/gregorian/greg_duration.hpp">
+<namespace name="boost">
+<namespace name="gregorian">
+<class name="date_duration"><inherit access="public">boost::date_time::date_duration&lt; date_duration_rep &gt;</inherit><purpose>Durations in days for gregorian system. </purpose><typedef name="duration_rep"><type>base_type::duration_rep</type></typedef>
+<method-group name="public member functions">
+<method name="operator==" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>date_duration</classname> &amp;</paramtype></parameter></method>
+<method name="operator!=" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>date_duration</classname> &amp;</paramtype></parameter></method>
+<method name="operator&lt;" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>date_duration</classname> &amp;</paramtype></parameter></method>
+<method name="operator&gt;" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>date_duration</classname> &amp;</paramtype></parameter></method>
+<method name="operator&lt;=" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>date_duration</classname> &amp;</paramtype></parameter></method>
+<method name="operator&gt;=" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="rhs"><paramtype>const <classname>date_duration</classname> &amp;</paramtype></parameter></method>
+<method name="operator-="><type>BOOST_CXX14_CONSTEXPR <classname>date_duration</classname> &amp;</type><parameter name="rhs"><paramtype>const <classname>date_duration</classname> &amp;</paramtype></parameter><purpose>Subtract another duration – result is signed. </purpose></method>
+<method name="operator+="><type>BOOST_CXX14_CONSTEXPR <classname>date_duration</classname> &amp;</type><parameter name="rhs"><paramtype>const <classname>date_duration</classname> &amp;</paramtype></parameter><purpose>Add a duration – result is signed. </purpose></method>
+<method name="operator-" cv="const"><type>BOOST_CXX14_CONSTEXPR <classname>date_duration</classname></type><purpose>unary- Allows for dd = -date_duration(2); -&gt; dd == -2 </purpose></method>
+<method name="operator/="><type>BOOST_CXX14_CONSTEXPR <classname>date_duration</classname> &amp;</type><parameter name="divisor"><paramtype>int</paramtype></parameter><purpose>Division operations on a duration with an integer. </purpose></method>
+</method-group>
+<constructor specifiers="explicit"><parameter name="day_count"><paramtype>duration_rep</paramtype><default>0</default></parameter><purpose>Construct from a day count. </purpose></constructor>
+<constructor><parameter name="sv"><paramtype>date_time::special_values</paramtype></parameter><purpose>construct from special_values </purpose></constructor>
+<constructor><parameter name="other"><paramtype>const <classname>date_duration</classname> &amp;</paramtype></parameter><purpose>Copy constructor. </purpose></constructor>
+<constructor><parameter name="other"><paramtype>const base_type &amp;</paramtype></parameter><purpose>Construct from another <classname alt="boost::gregorian::date_duration">date_duration</classname>. </purpose></constructor>
+<method-group name="public static functions">
+<method name="unit" specifiers="static"><type>BOOST_CXX14_CONSTEXPR <classname>date_duration</classname></type><purpose>Returns the smallest duration – used by to calculate 'end'. </purpose></method>
+</method-group>
+</class><typedef name="date_duration_rep"><purpose>An internal date representation that includes infinities, not a date. </purpose><type>boost::date_time::duration_traits_adapted</type></typedef>
+<typedef name="days"><purpose>Shorthand for <classname alt="boost::gregorian::date_duration">date_duration</classname>. </purpose><type><classname>date_duration</classname></type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/gregorian/greg_duration_types.hpp">
+<namespace name="boost">
+<namespace name="gregorian">
+<struct name="greg_durations_config"><purpose>config struct for additional duration types (ie months_duration&lt;&gt; &amp; years_duration&lt;&gt;) </purpose><typedef name="date_type"><type><classname>date</classname></type></typedef>
+<typedef name="int_rep"><type>date_time::int_adapter&lt; int &gt;</type></typedef>
+<typedef name="month_adjustor_type"><type>date_time::month_functor&lt; <classname>date_type</classname> &gt;</type></typedef>
+</struct><class name="weeks_duration"><inherit access="public">boost::gregorian::date_duration</inherit><method-group name="public member functions">
+</method-group>
+<constructor><parameter name="w"><paramtype>duration_rep</paramtype></parameter></constructor>
+<constructor><parameter name="sv"><paramtype>date_time::special_values</paramtype></parameter></constructor>
+</class><typedef name="months"><type>date_time::months_duration&lt; <classname>greg_durations_config</classname> &gt;</type></typedef>
+<typedef name="years"><type>date_time::years_duration&lt; <classname>greg_durations_config</classname> &gt;</type></typedef>
+<typedef name="weeks"><type><classname>weeks_duration</classname></type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/gregorian/greg_facet.hpp">
+<namespace name="boost">
+<namespace name="gregorian">
+<struct name="greg_facet_config"><purpose>Configuration of the output facet template. </purpose><typedef name="month_type"><type><classname>boost::gregorian::greg_month</classname></type></typedef>
+<typedef name="special_value_enum"><type>boost::date_time::special_values</type></typedef>
+<typedef name="month_enum"><type>boost::gregorian::months_of_year</type></typedef>
+<typedef name="weekday_enum"><type>boost::date_time::weekdays</type></typedef>
+</struct><typedef name="greg_base_facet"><purpose>Create the base facet type for <classname alt="boost::gregorian::date">gregorian::date</classname>. </purpose><type>boost::date_time::date_names_put&lt; <classname>greg_facet_config</classname> &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; charT, traits &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ <template-type-parameter name="traits"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; charT, traits &gt; &amp;</paramtype></parameter><parameter name="d"><paramtype>const <classname>date</classname> &amp;</paramtype></parameter><purpose>ostream operator for <classname alt="boost::gregorian::date">gregorian::date</classname> </purpose><description><para>Uses the date facet to determine various output parameters including:<itemizedlist>
+<listitem><para>string values for the month (eg: Jan, Feb, Mar) (default: English)</para>
+</listitem><listitem><para>string values for special values (eg: not-a-date-time) (default: English)</para>
+</listitem><listitem><para>selection of long, short strings, or numerical month representation (default: short string)</para>
+</listitem><listitem><para>month day year order (default yyyy-mmm-dd) </para>
+</listitem></itemizedlist>
+</para></description></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; charT, traits &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ <template-type-parameter name="traits"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; charT, traits &gt; &amp;</paramtype></parameter><parameter name="m"><paramtype>const <classname>greg_month</classname> &amp;</paramtype></parameter><purpose>operator&lt;&lt; for <classname alt="boost::gregorian::greg_month">gregorian::greg_month</classname> typically streaming: Jan, Feb, Mar... </purpose><description><para>Uses the date facet to determine output string as well as selection of long or short strings. Default if no facet is installed is to output a 2 wide numeric value for the month eg: 01 == Jan, 02 == Feb, ... 12 == Dec. </para></description></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; charT, traits &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ <template-type-parameter name="traits"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; charT, traits &gt; &amp;</paramtype></parameter><parameter name="wd"><paramtype>const <classname>greg_weekday</classname> &amp;</paramtype></parameter><purpose>operator&lt;&lt; for <classname alt="boost::gregorian::greg_weekday">gregorian::greg_weekday</classname> typically streaming: Sun, Mon, Tue, ... </purpose><description><para>Uses the date facet to determine output string as well as selection of long or short string. Default if no facet is installed is to output a 3 char english string for the day of the week. </para></description></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; charT, traits &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ <template-type-parameter name="traits"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; charT, traits &gt; &amp;</paramtype></parameter><parameter name="dp"><paramtype>const date_period &amp;</paramtype></parameter><purpose>operator&lt;&lt; for gregorian::date_period typical output: [2002-Jan-01/2002-Jan-31] </purpose><description><para>Uses the date facet to determine output string as well as selection of long or short string fr dates. Default if no facet is installed is to output a 3 char english string for the day of the week. </para></description></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; charT, traits &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ <template-type-parameter name="traits"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; charT, traits &gt; &amp;</paramtype></parameter><parameter name="dd"><paramtype>const <classname>date_duration</classname> &amp;</paramtype></parameter></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; charT, traits &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ <template-type-parameter name="traits"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; charT, traits &gt; &amp;</paramtype></parameter><parameter name="pd"><paramtype>const partial_date &amp;</paramtype></parameter><purpose>operator&lt;&lt; for gregorian::partial_date. Output: "Jan 1" </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; charT, traits &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ <template-type-parameter name="traits"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; charT, traits &gt; &amp;</paramtype></parameter><parameter name="nkd"><paramtype>const nth_kday_of_month &amp;</paramtype></parameter><purpose>operator&lt;&lt; for gregorian::nth_kday_of_month. Output: "first Mon of Jun" </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; charT, traits &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ <template-type-parameter name="traits"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; charT, traits &gt; &amp;</paramtype></parameter><parameter name="fkd"><paramtype>const first_kday_of_month &amp;</paramtype></parameter><purpose>operator&lt;&lt; for gregorian::first_kday_of_month. Output: "first Mon of Jun" </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; charT, traits &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ <template-type-parameter name="traits"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; charT, traits &gt; &amp;</paramtype></parameter><parameter name="lkd"><paramtype>const last_kday_of_month &amp;</paramtype></parameter><purpose>operator&lt;&lt; for gregorian::last_kday_of_month. Output: "last Mon of Jun" </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; charT, traits &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ <template-type-parameter name="traits"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; charT, traits &gt; &amp;</paramtype></parameter><parameter name="fka"><paramtype>const first_kday_after &amp;</paramtype></parameter><purpose>operator&lt;&lt; for gregorian::first_kday_after. Output: "first Mon after" </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; charT, traits &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ <template-type-parameter name="traits"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; charT, traits &gt; &amp;</paramtype></parameter><parameter name="fkb"><paramtype>const first_kday_before &amp;</paramtype></parameter><purpose>operator&lt;&lt; for gregorian::first_kday_before. Output: "first Mon before" </purpose></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; charT &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; charT &gt; &amp;</paramtype></parameter><parameter name="d"><paramtype><classname>date</classname> &amp;</paramtype></parameter><purpose>operator&gt;&gt; for <classname alt="boost::gregorian::date">gregorian::date</classname> </purpose></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; charT &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; charT &gt; &amp;</paramtype></parameter><parameter name="dd"><paramtype><classname>date_duration</classname> &amp;</paramtype></parameter><purpose>operator&gt;&gt; for <classname alt="boost::gregorian::date_duration">gregorian::date_duration</classname> </purpose></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; charT &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; charT &gt; &amp;</paramtype></parameter><parameter name="dp"><paramtype>date_period &amp;</paramtype></parameter><purpose>operator&gt;&gt; for gregorian::date_period </purpose></function>
+<function name="generate_locale"><type>BOOST_DATE_TIME_DECL std::locale</type><parameter name="loc"><paramtype>std::locale &amp;</paramtype></parameter><parameter name="type"><paramtype>char</paramtype></parameter><purpose>generates a locale with the set of gregorian name-strings of type char* </purpose></function>
+<function name="create_facet_def"><type>BOOST_DATE_TIME_DECL boost::date_time::all_date_names_put&lt; <classname>greg_facet_config</classname>, char &gt; *</type><parameter name="type"><paramtype>char</paramtype></parameter><purpose>Returns a pointer to a facet with a default set of names (English) </purpose></function>
+<function name="generate_locale"><type>BOOST_DATE_TIME_DECL std::locale</type><parameter name="loc"><paramtype>std::locale &amp;</paramtype></parameter><parameter name="type"><paramtype>wchar_t</paramtype></parameter><purpose>generates a locale with the set of gregorian name-strings of type wchar_t* </purpose></function>
+<function name="create_facet_def"><type>BOOST_DATE_TIME_DECL boost::date_time::all_date_names_put&lt; <classname>greg_facet_config</classname>, wchar_t &gt; *</type><parameter name="type"><paramtype>wchar_t</paramtype></parameter><purpose>Returns a pointer to a facet with a default set of names (English) </purpose></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; charT &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; charT &gt; &amp;</paramtype></parameter><parameter name="m"><paramtype><classname>greg_month</classname> &amp;</paramtype></parameter><purpose>operator&gt;&gt; for <classname alt="boost::gregorian::greg_month">gregorian::greg_month</classname> - throws exception if invalid month given </purpose></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; charT &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; charT &gt; &amp;</paramtype></parameter><parameter name="wd"><paramtype><classname>greg_weekday</classname> &amp;</paramtype></parameter><purpose>operator&gt;&gt; for <classname alt="boost::gregorian::greg_weekday">gregorian::greg_weekday</classname> - throws exception if invalid weekday given </purpose></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/gregorian/greg_month.hpp">
+<namespace name="boost">
+<namespace name="gregorian">
+<struct name="bad_month"><inherit access="public">out_of_range</inherit><purpose>Exception thrown if a <classname alt="boost::gregorian::greg_month">greg_month</classname> is constructed with a value out of range. </purpose><method-group name="public member functions">
+</method-group>
+<constructor/>
+</struct><class name="greg_month"><inherit access="public">greg_month_rep</inherit><purpose>Wrapper class to represent months in gregorian based calendar. </purpose><typedef name="month_enum"><type>date_time::months_of_year</type></typedef>
+<method-group name="public member functions">
+<method name="operator value_type" cv="const"><type>BOOST_CXX14_CONSTEXPR</type><purpose>Convert the value back to a short. </purpose></method>
+<method name="as_number" cv="const"><type>BOOST_CXX14_CONSTEXPR value_type</type><purpose>Returns month as number from 1 to 12. </purpose></method>
+<method name="as_enum" cv="const"><type>BOOST_CXX14_CONSTEXPR month_enum</type></method>
+<method name="as_short_string" cv="const"><type>const char *</type><purpose>Returns 3 char english string for the month ex: Jan, Feb, Mar, Apr. </purpose></method>
+<method name="as_long_string" cv="const"><type>const char *</type><purpose>Returns full name of month as string in english ex: January, February. </purpose></method>
+<method name="as_short_wstring" cv="const"><type>const wchar_t *</type><purpose>Returns 3 wchar_t english string for the month ex: Jan, Feb, Mar, Apr. </purpose></method>
+<method name="as_long_wstring" cv="const"><type>const wchar_t *</type><purpose>Returns full name of month as wchar_t string in english ex: January, February. </purpose></method>
+<method name="as_short_string" cv="const"><type>const char *</type><parameter name=""><paramtype>char</paramtype></parameter></method>
+<method name="as_long_string" cv="const"><type>const char *</type><parameter name=""><paramtype>char</paramtype></parameter></method>
+<method name="as_short_string" cv="const"><type>const wchar_t *</type><parameter name=""><paramtype>wchar_t</paramtype></parameter></method>
+<method name="as_long_string" cv="const"><type>const wchar_t *</type><parameter name=""><paramtype>wchar_t</paramtype></parameter></method>
+</method-group>
+<constructor><parameter name="theMonth"><paramtype>month_enum</paramtype></parameter><purpose>Construct a month from the months_of_year enumeration. </purpose></constructor>
+<constructor><parameter name="theMonth"><paramtype>value_type</paramtype></parameter><purpose>Construct from a short value. </purpose></constructor>
+</class><typedef name="months_of_year"><type>date_time::months_of_year</type></typedef>
+<typedef name="greg_month_policies"><purpose>Build a policy class for the greg_month_rep. </purpose><type>CV::simple_exception_policy&lt; unsigned short, 1, 12, <classname>bad_month</classname> &gt;</type></typedef>
+<typedef name="greg_month_rep"><purpose>A constrained range that implements the gregorian_month rules. </purpose><type>CV::constrained_value&lt; greg_month_policies &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/gregorian/greg_serialize.hpp">
+</header>
+<header name="boost/date_time/gregorian/greg_weekday.hpp">
+<namespace name="boost">
+<namespace name="gregorian">
+<struct name="bad_weekday"><inherit access="public">out_of_range</inherit><purpose>Exception that flags that a weekday number is incorrect. </purpose><method-group name="public member functions">
+</method-group>
+<constructor/>
+</struct><class name="greg_weekday"><inherit access="public">greg_weekday_rep</inherit><purpose>Represent a day within a week (range 0==Sun to 6==Sat) </purpose><typedef name="weekday_enum"><type>boost::date_time::weekdays</type></typedef>
+<method-group name="public member functions">
+<method name="as_number" cv="const"><type>BOOST_CXX14_CONSTEXPR value_type</type></method>
+<method name="as_enum" cv="const"><type>BOOST_CXX14_CONSTEXPR weekday_enum</type></method>
+<method name="as_short_string" cv="const"><type>const char *</type><purpose>Return a 3 digit english string of the day of week (eg: Sun) </purpose></method>
+<method name="as_long_string" cv="const"><type>const char *</type><purpose>Return a point to a long english string representing day of week. </purpose></method>
+<method name="as_short_wstring" cv="const"><type>const wchar_t *</type><purpose>Return a 3 digit english wchar_t string of the day of week (eg: Sun) </purpose></method>
+<method name="as_long_wstring" cv="const"><type>const wchar_t *</type><purpose>Return a point to a long english wchar_t string representing day of week. </purpose></method>
+</method-group>
+<constructor><parameter name="day_of_week_num"><paramtype>value_type</paramtype></parameter></constructor>
+</class><typedef name="greg_weekday_policies"><type>CV::simple_exception_policy&lt; unsigned short, 0, 6, <classname>bad_weekday</classname> &gt;</type></typedef>
+<typedef name="greg_weekday_rep"><type>CV::constrained_value&lt; greg_weekday_policies &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/gregorian/greg_year.hpp">
+<namespace name="boost">
+<namespace name="gregorian">
+<struct name="bad_year"><inherit access="public">out_of_range</inherit><purpose>Exception type for gregorian year. </purpose><method-group name="public member functions">
+</method-group>
+<constructor/>
+</struct><class name="greg_year"><inherit access="public">greg_year_rep</inherit><purpose>Represent a year (range 1400 - 9999) </purpose><description><para>This small class allows for simple conversion an integer value into a year for the gregorian calendar. This currently only allows a range of 1400 to 9999. Both ends of the range are a bit arbitrary at the moment, but they are the limits of current testing of the library. As such they may be increased in the future. </para></description><method-group name="public member functions">
+<method name="operator value_type" cv="const"><type>BOOST_CXX14_CONSTEXPR</type></method>
+</method-group>
+<constructor><parameter name="year"><paramtype>value_type</paramtype></parameter></constructor>
+</class><typedef name="greg_year_policies"><purpose>Policy class that declares error handling gregorian year type. </purpose><type>CV::simple_exception_policy&lt; unsigned short, 1400, 9999, <classname>bad_year</classname> &gt;</type></typedef>
+<typedef name="greg_year_rep"><purpose>Generated representation for gregorian year. </purpose><type>CV::constrained_value&lt; greg_year_policies &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/gregorian/greg_ymd.hpp">
+<namespace name="boost">
+<namespace name="gregorian">
+<typedef name="greg_year_month_day"><type>date_time::year_month_day_base&lt; <classname>greg_year</classname>, <classname>greg_month</classname>, <classname>greg_day</classname> &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/gregorian/gregorian.hpp">
+<para>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. </para></header>
+<header name="boost/date_time/gregorian/gregorian_io.hpp">
+<namespace name="boost">
+<namespace name="gregorian">
+<typedef name="wperiod_formatter"><type>boost::date_time::period_formatter&lt; wchar_t &gt;</type></typedef>
+<typedef name="period_formatter"><type>boost::date_time::period_formatter&lt; char &gt;</type></typedef>
+<typedef name="wdate_facet"><type>boost::date_time::date_facet&lt; <classname>date</classname>, wchar_t &gt;</type></typedef>
+<typedef name="date_facet"><type>boost::date_time::date_facet&lt; <classname>date</classname>, char &gt;</type></typedef>
+<typedef name="period_parser"><type>boost::date_time::period_parser&lt; <classname>date</classname>, char &gt;</type></typedef>
+<typedef name="wperiod_parser"><type>boost::date_time::period_parser&lt; <classname>date</classname>, wchar_t &gt;</type></typedef>
+<typedef name="special_values_formatter"><type>boost::date_time::special_values_formatter&lt; char &gt;</type></typedef>
+<typedef name="wspecial_values_formatter"><type>boost::date_time::special_values_formatter&lt; wchar_t &gt;</type></typedef>
+<typedef name="special_values_parser"><type>boost::date_time::special_values_parser&lt; <classname>date</classname>, char &gt;</type></typedef>
+<typedef name="wspecial_values_parser"><type>boost::date_time::special_values_parser&lt; <classname>date</classname>, wchar_t &gt;</type></typedef>
+<typedef name="date_input_facet"><type>boost::date_time::date_input_facet&lt; <classname>date</classname>, char &gt;</type></typedef>
+<typedef name="wdate_input_facet"><type>boost::date_time::date_input_facet&lt; <classname>date</classname>, wchar_t &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="TraitsT"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</paramtype></parameter><parameter name="d"><paramtype>const <classname>boost::gregorian::date</classname> &amp;</paramtype></parameter></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="d"><paramtype><classname>date</classname> &amp;</paramtype></parameter><purpose>input operator for date </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="TraitsT"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</paramtype></parameter><parameter name="dd"><paramtype>const <classname>boost::gregorian::date_duration</classname> &amp;</paramtype></parameter></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="dd"><paramtype><classname>date_duration</classname> &amp;</paramtype></parameter><purpose>input operator for <classname alt="boost::gregorian::date_duration">date_duration</classname> </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="TraitsT"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</paramtype></parameter><parameter name="dp"><paramtype>const boost::gregorian::date_period &amp;</paramtype></parameter></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="dp"><paramtype>date_period &amp;</paramtype></parameter><purpose>input operator for date_period </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="TraitsT"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</paramtype></parameter><parameter name="gm"><paramtype>const <classname>boost::gregorian::greg_month</classname> &amp;</paramtype></parameter></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="m"><paramtype><classname>greg_month</classname> &amp;</paramtype></parameter><purpose>input operator for <classname alt="boost::gregorian::greg_month">greg_month</classname> </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="TraitsT"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</paramtype></parameter><parameter name="gw"><paramtype>const <classname>boost::gregorian::greg_weekday</classname> &amp;</paramtype></parameter></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="wd"><paramtype><classname>greg_weekday</classname> &amp;</paramtype></parameter><purpose>input operator for <classname alt="boost::gregorian::greg_weekday">greg_weekday</classname> </purpose></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="gd"><paramtype><classname>greg_day</classname> &amp;</paramtype></parameter><purpose>input operator for <classname alt="boost::gregorian::greg_day">greg_day</classname> </purpose></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="gy"><paramtype><classname>greg_year</classname> &amp;</paramtype></parameter><purpose>input operator for <classname alt="boost::gregorian::greg_year">greg_year</classname> </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="TraitsT"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</paramtype></parameter><parameter name="pd"><paramtype>const boost::gregorian::partial_date &amp;</paramtype></parameter></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="pd"><paramtype>partial_date &amp;</paramtype></parameter><purpose>input operator for partial_date </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="TraitsT"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</paramtype></parameter><parameter name="nkd"><paramtype>const boost::gregorian::nth_day_of_the_week_in_month &amp;</paramtype></parameter></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="nday"><paramtype>nth_day_of_the_week_in_month &amp;</paramtype></parameter><purpose>input operator for nth_day_of_the_week_in_month </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="TraitsT"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</paramtype></parameter><parameter name="fkd"><paramtype>const boost::gregorian::first_day_of_the_week_in_month &amp;</paramtype></parameter></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="fkd"><paramtype>first_day_of_the_week_in_month &amp;</paramtype></parameter><purpose>input operator for first_day_of_the_week_in_month </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="TraitsT"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</paramtype></parameter><parameter name="lkd"><paramtype>const boost::gregorian::last_day_of_the_week_in_month &amp;</paramtype></parameter></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="lkd"><paramtype>last_day_of_the_week_in_month &amp;</paramtype></parameter><purpose>input operator for last_day_of_the_week_in_month </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="TraitsT"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</paramtype></parameter><parameter name="fda"><paramtype>const boost::gregorian::first_day_of_the_week_after &amp;</paramtype></parameter></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="fka"><paramtype>first_day_of_the_week_after &amp;</paramtype></parameter><purpose>input operator for first_day_of_the_week_after </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="TraitsT"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</paramtype></parameter><parameter name="fdb"><paramtype>const boost::gregorian::first_day_of_the_week_before &amp;</paramtype></parameter></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="fkb"><paramtype>first_day_of_the_week_before &amp;</paramtype></parameter><purpose>input operator for first_day_of_the_week_before </purpose></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/gregorian/gregorian_types.hpp">
+<para>Single file header that defines most of the types for the gregorian date-time system. </para><namespace name="boost">
+<namespace name="gregorian">
+<typedef name="date_period"><purpose>Date periods for the gregorian system. </purpose><type>date_time::period&lt; <classname>date</classname>, <classname>date_duration</classname> &gt;</type></typedef>
+<typedef name="year_based_generator"><purpose>A unifying date_generator base type. </purpose><description><para>A unifying date_generator base type for: partial_date, nth_day_of_the_week_in_month, first_day_of_the_week_in_month, and last_day_of_the_week_in_month </para></description><type>date_time::year_based_generator&lt; <classname>date</classname> &gt;</type></typedef>
+<typedef name="partial_date"><purpose>A date generation object type. </purpose><type>date_time::partial_date&lt; <classname>date</classname> &gt;</type></typedef>
+<typedef name="nth_kday_of_month"><type>date_time::nth_kday_of_month&lt; <classname>date</classname> &gt;</type></typedef>
+<typedef name="nth_day_of_the_week_in_month"><type>nth_kday_of_month</type></typedef>
+<typedef name="first_kday_of_month"><type>date_time::first_kday_of_month&lt; <classname>date</classname> &gt;</type></typedef>
+<typedef name="first_day_of_the_week_in_month"><type>first_kday_of_month</type></typedef>
+<typedef name="last_kday_of_month"><type>date_time::last_kday_of_month&lt; <classname>date</classname> &gt;</type></typedef>
+<typedef name="last_day_of_the_week_in_month"><type>last_kday_of_month</type></typedef>
+<typedef name="first_kday_after"><type>date_time::first_kday_after&lt; <classname>date</classname> &gt;</type></typedef>
+<typedef name="first_day_of_the_week_after"><type>first_kday_after</type></typedef>
+<typedef name="first_kday_before"><type>date_time::first_kday_before&lt; <classname>date</classname> &gt;</type></typedef>
+<typedef name="first_day_of_the_week_before"><type>first_kday_before</type></typedef>
+<typedef name="day_clock"><purpose>A clock to get the current day from the local computer. </purpose><type>date_time::day_clock&lt; <classname>date</classname> &gt;</type></typedef>
+<typedef name="date_iterator"><purpose>Base date_iterator type for gregorian types. </purpose><type>date_time::date_itr_base&lt; <classname>date</classname> &gt;</type></typedef>
+<typedef name="day_iterator"><purpose>A day level iterator. </purpose><type>date_time::date_itr&lt; date_time::day_functor&lt; <classname>date</classname> &gt;, <classname>date</classname> &gt;</type></typedef>
+<typedef name="week_iterator"><purpose>A week level iterator. </purpose><type>date_time::date_itr&lt; date_time::week_functor&lt; <classname>date</classname> &gt;, <classname>date</classname> &gt;</type></typedef>
+<typedef name="month_iterator"><purpose>A month level iterator. </purpose><type>date_time::date_itr&lt; date_time::month_functor&lt; <classname>date</classname> &gt;, <classname>date</classname> &gt;</type></typedef>
+<typedef name="year_iterator"><purpose>A year level iterator. </purpose><type>date_time::date_itr&lt; date_time::year_functor&lt; <classname>date</classname> &gt;, <classname>date</classname> &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/gregorian/parsers.hpp">
+<namespace name="boost">
+<namespace name="gregorian">
+<function name="special_value_from_string"><type>date_time::special_values</type><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter><purpose>Return special_value from string argument. </purpose><description><para>Return special_value from string argument. If argument is not one of the special value names (defined in names.hpp), return 'not_special' </para></description></function>
+<function name="from_string"><type><classname>date</classname></type><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter><purpose>Deprecated: Use from_simple_string. </purpose></function>
+<function name="from_simple_string"><type><classname>date</classname></type><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter><purpose>From delimited date string where with order year-month-day eg: 2002-1-25 or 2003-Jan-25 (full month name is also accepted) </purpose></function>
+<function name="from_us_string"><type><classname>date</classname></type><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter><purpose>From delimited date string where with order year-month-day eg: 1-25-2003 or Jan-25-2003 (full month name is also accepted) </purpose></function>
+<function name="from_uk_string"><type><classname>date</classname></type><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter><purpose>From delimited date string where with order day-month-year eg: 25-1-2002 or 25-Jan-2003 (full month name is also accepted) </purpose></function>
+<function name="from_undelimited_string"><type><classname>date</classname></type><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter><purpose>From iso type date string where with order year-month-day eg: 20020125. </purpose></function>
+<function name="date_from_iso_string"><type><classname>date</classname></type><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter><purpose>From iso type date string where with order year-month-day eg: 20020125. </purpose></function>
+<function name="from_stream"><type><classname>date</classname></type><template>
+ <template-type-parameter name="iterator_type"/>
+ </template><parameter name="beg"><paramtype>iterator_type</paramtype></parameter><parameter name="end"><paramtype>iterator_type</paramtype></parameter><purpose>Stream should hold a date in the form of: 2002-1-25. Month number, abbrev, or name are accepted. </purpose></function>
+<function name="date_period_from_string"><type>date_period</type><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter><purpose>Function to parse a date_period from a string (eg: [2003-Oct-31/2003-Dec-25]) </purpose></function>
+<function name="date_period_from_wstring"><type>date_period</type><parameter name="s"><paramtype>const std::wstring &amp;</paramtype></parameter><purpose>Function to parse a date_period from a wstring (eg: [2003-Oct-31/2003-Dec-25]) </purpose></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+</library-reference> \ No newline at end of file
diff --git a/src/boost/libs/date_time/xmldoc/gregorian_calendar.xml b/src/boost/libs/date_time/xmldoc/gregorian_calendar.xml
new file mode 100644
index 000000000..293e442b3
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/gregorian_calendar.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.gregorian.gregorian_calendar">
+ <title>Gregorian Calendar</title>
+
+ <link linkend="gregcal_intro">Introduction</link> --
+ <link linkend="gregcal_header">Header</link> --
+ <link linkend="gregcal_functions">Functions</link>
+
+ <anchor id="gregcal_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>
+ 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.
+ </para>
+ <para>
+ For most purposes this class is simply accessed by <link linkend="date_time.gregorian.date_class">gregorian::date</link> 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.
+ </para>
+ <para>
+ The <link linkend="date_time.examples.print_month">print month</link> example demonstrates this.
+ </para>
+
+ <anchor id="gregcal_header" />
+ <bridgehead renderas="sect3">Header</bridgehead>
+ <para>
+ <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</programlisting>
+ </para>
+
+ <anchor id="gregcal_functions" />
+ <bridgehead renderas="sect3">Functions</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>static short day_of_week(ymd_type)</screen></entry>
+ <entry>Return the day of the week (0==Sunday, 1==Monday, etc)</entry>
+ </row>
+ <row>
+ <entry>See also <link linkend="date_time.gregorian.date_class">gregorian::date</link> day_of_week</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>static date_int_type day_number(ymd_type)</screen></entry>
+ <entry> Convert a ymd_type into a day number. The day number mapping is implementation defined, however the library implements the 1400-01-01 epoch as follows <screen> date(gregorian_calendar::epoch()).day_number() == 2232400</screen></entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>static short end_of_month_day(year_type,
+ month_type)</screen></entry>
+ <entry>Given a year and month determine the last day of the month.</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>static ymd_type from_day_number(date_int_type)</screen></entry>
+ <entry> Convert a day number to a ymd struct.</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>static bool is_leap_year(year_type)</screen></entry>
+ <entry>Returns true if specified year is a leap year.</entry>
+ </row>
+ <row>
+ <entry><screen>gregorian_calendar::is_leap_year(2000)
+//--> true</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/io_objects.xml b/src/boost/libs/date_time/xmldoc/io_objects.xml
new file mode 100644
index 000000000..7a845d018
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/io_objects.xml
@@ -0,0 +1,1101 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.io_objects"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+ <title>Date Time Formatter/Parser Objects</title>
+ <!-- <using-namespace name="boost"/> -->
+ <using-namespace name="boost::date_time"/>
+ <bridgehead renderas="sect2">Date Time Formatter/Parser Objects</bridgehead>
+
+ <link linkend="io_objects.periods">Periods</link> |
+ <link linkend="io_objects.date_generators">Date Generators</link> |
+ <link linkend="io_objects.special_values">Special Values</link> |
+ <link linkend="io_objects.format_date_parser">Format Date Parser</link>
+
+ <anchor id="io_objects.periods" />
+ <bridgehead renderas="sect3">Periods</bridgehead>
+ <para>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.</para>
+
+ <bridgehead renderas="sect4">Period Form</bridgehead>
+ <para>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.</para>
+ <screen>[2003-Jan-01/2003-Dec-31] &lt;-- period holding 365 days
+[2003-Jan-01/2004-Jan-01) &lt;-- period holding 365 days</screen>
+
+ <bridgehead renderas="sect4">Delimiters</bridgehead>
+ <para>There are four delimiters. The default values are<simplelist type="vert" columns="1">
+ <member>"\" - separator</member>
+ <member>"[" - start delimiter</member>
+ <member>")" - open range end delimiter</member>
+ <member>"]" - closed range end delimiter</member>
+ </simplelist>A user can provide a custom set of delimiters. Custom delimiters may contain spaces.</para>
+
+ <bridgehead renderas="sect4">Customization</bridgehead>
+ <para>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.</para>
+
+
+ <bridgehead renderas="sect4">Period Formatter/Parser Reference</bridgehead>
+ The complete class reference can be found here: <classname alt="boost::date_time::period_formatter">Period Formatter Doxygen Reference</classname> and here: <classname alt="boost::date_time::period_parser">Period Parser Doxygen Reference</classname>
+
+ <para>
+ <bridgehead renderas="sect4">Period Formatter Construction</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top"><screen>period_formatter(...)
+ Parameters:
+ range_display_options
+ char_type*
+ char_type*
+ char_type*
+ char_type*</screen></entry>
+ <entry>NOTE: All five construction parameters have default values so this constructor also doubles as the default constructor. The <code>range_display_options</code> is a public type enum of the <code>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.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ <bridgehead renderas="sect4">Period Formatter Accessors</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>range_display_options range_option()</screen></entry>
+ <entry>Returns the current setting for the range display (either AS_OPEN_RANGE or AS_CLOSED_RANGE).</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void range_option(...)
+ Parameter:
+ range_display_options</screen></entry>
+ <entry>Sets the option for range display (either AS_OPEN_RANGE or AS_CLOSED_RANGE).</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void delimiter_strings(...)
+ Parameters:
+ string_type
+ string_type
+ string_type
+ string_type</screen></entry>
+ <entry>Set new delimiter strings in the formatter.</entry>
+ </row>
+ <row>
+ <entry><screen>string beg("->| ");
+string sep(" || ");
+string opn(" ->|");
+string clo(" |&lt;-");
+pf.delimiter_strings(beg, sep,
+ opn, clo);</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>put_period_start_delimeter(...)
+ Return Type:
+ OutItrT
+ Parameter:
+ OutItrT</screen></entry>
+ <entry>Puts the start delimiter into the stream at position pointed to by OutItrT parameter.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>put_period_sepatator(...)
+ Return Type:
+ OutItrT
+ Parameter:
+ OutItrT</screen></entry>
+ <entry>Puts the separator into the stream at position pointed to by OutItrT parameter.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>put_period_end_delimeter(...)
+ Return Type:
+ OutItrT
+ Parameter:
+ OutItrT</screen></entry>
+ <entry>Puts the end delimiter into the stream at position pointed to by OutItrT parameter.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put_period(...)
+ Parameters:
+ OutItrT
+ ios_base
+ char_type
+ period_type
+ facet_type</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+ <para>
+ <bridgehead renderas="sect4">Period Parser Construction</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top"><screen>period_parser(...)
+ Parameters:
+ period_range_option
+ char_type*
+ char_type*
+ char_type*
+ char_type*</screen></entry>
+ <entry>NOTE: All five construction parameters have default values so this constructor also doubles as the default constructor. The <code>period_range_option</code> is a public type enum of the <code>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.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>period_parser(period_parser)</screen></entry>
+ <entry>Copy constructor</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ <bridgehead renderas="sect4">Period Parser Accessors</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>period_range_option range_option()</screen></entry>
+ <entry>Returns the current setting for the period range (either AS_OPEN_RANGE or AS_CLOSED_RANGE).</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void range_option(...)
+ Parameter:
+ period_range_option </screen></entry>
+ <entry>Sets the option for period range (either AS_OPEN_RANGE or AS_CLOSED_RANGE).</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void delimiter_strings(...)
+ Parameters:
+ string_type
+ string_type
+ string_type
+ string_type</screen></entry>
+ <entry>Set new delimiter strings in the parser.</entry>
+ </row>
+ <row>
+ <entry><screen>string beg("->| ");
+string sep(" || ");
+string opn(" ->|");
+string clo(" |&lt;-");
+pp.delimiter_strings(beg, sep,
+ opn, clo);</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>collection_type delimiter_strings()</screen></entry>
+ <entry>Returns the set of delimiter strings currently held in the parser.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>period_type get_period(...)
+ Parameters:
+ stream_itr_type
+ stream_itr_type
+ ios_base
+ period_type
+ duration_type
+ facet_type</screen></entry>
+<entry>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>date_period</code> would use <code>days</code> as a duration_type. The period will be parsed according to the formats and strings found in the facet parameter.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <para>_____________________________________________________</para>
+
+ <anchor id="io_objects.date_generators" />
+ <bridgehead renderas="sect3">Date Generators</bridgehead>
+ <para>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.</para>
+
+ <bridgehead renderas="sect4">Customization</bridgehead>
+ <para>The default "phrase_strings" are:
+ <simplelist type="horiz" columns="9">
+ <member>"first"</member>
+ <member>"second"</member>
+ <member>"third"</member>
+ <member>"fourth"</member>
+ <member>"fifth"</member>
+ <member>"last"</member>
+ <member>"before"</member>
+ <member>"after"</member>
+ <member>"of"</member>
+ </simplelist>
+ A custom set of phrase_strings must maintain this order of occurance (Ex: "1st", "2nd", "3rd", "4th", "5th", "last", "prior", "past", "in").</para>
+ <para> Examples using default phrase_strings and default facet formats for weekday &amp; month: <screen>"first Tue of Mar"</screen>And using custom phrase_strings: <screen>"1st Tue in Mar"</screen>
+ </para>
+ <para>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.</para>
+ <para>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".</para>
+
+ <bridgehead renderas="sect4">Date Generator Reference</bridgehead>
+ The complete class references can be found here: <classname alt="boost::date_time::date_generator_formatter">Date Generator Formatter Doxygen Reference</classname> and here: <classname alt="boost::date_time::date_generator_parser">Date Generator Parser Doxygen Reference</classname>
+
+ <para>
+ <bridgehead renderas="sect4">Date Generator Formatter Construction</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top"><screen>date_generator_formatter()</screen></entry>
+ <entry>Uses the default date generator elements.</entry>
+ </row>
+ <row>
+ <entry valign="top"><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</screen></entry>
+ <entry>Constructs a date_generator_formatter using the given element strings.</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ <bridgehead renderas="sect4">Date Generator Formatter Accessors</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>void elements(...)
+ Parameters:
+ collection_type
+ phrase_elements</screen></entry>
+ <entry>Replace the current phrase elements with a collection of new ones. The <code>phrase_elements</code> parameter is an enum that indicates what the first element in the new collection is (defaults to first).</entry>
+ </row>
+ <row>
+ <entry><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"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>put_partial_date(...)
+ Return Type:
+ facet_type::OutItrT
+ Parameters:
+ OutItrT next
+ ios_base
+ char_type fill
+ partial_date
+ facet_type</screen></entry>
+ <entry>A put function for partial_date. This is a templated function that takes a facet_type as a parameter.</entry>
+ </row>
+ <row>
+ <entry>Put a partial_date => "dd Month".</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>put_nth_kday(...)
+ Return Type:
+ facet_type::OutItrT
+ Parameters:
+ OutItrT next
+ ios_base
+ char_type fill
+ nth_kday_type
+ facet_type</screen></entry>
+ <entry>A put function for nth_kday_type. This is a templated function that takes a facet_type as a parameter.</entry>
+ </row>
+ <row>
+ <entry>Put an nth_day_of_the_week_in_month => "nth weekday of month".</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>put_first_kday(...)
+ Return Type:
+ facet_type::OutItrT
+ Parameters:
+ OutItrT next
+ ios_base
+ char_type fill
+ first_kday_type
+ facet_type</screen></entry>
+ <entry>A put function for first_kday_type. This is a templated function that takes a facet_type as a parameter.</entry>
+ </row>
+ <row>
+ <entry>Put a first_day_of_the_week_in_month => "first weekday of month".</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>put_last_kday(...)
+ Return Type:
+ facet_type::OutItrT
+ Parameters:
+ OutItrT next
+ ios_base
+ char_type fill
+ last_kday_type
+ facet_type</screen></entry>
+ <entry>A put function for last_kday_type. This is a templated function that takes a facet_type as a parameter.</entry>
+ </row>
+ <row>
+ <entry>Put a last_day_of_the_week_in_month => "last weekday of month".</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>put_kday_before(...)
+ Return Type:
+ facet_type::OutItrT
+ Parameters:
+ OutItrT next
+ ios_base
+ char_type fill
+ kday_before_type
+ facet_type</screen></entry>
+ <entry>A put function for kday_before_type. This is a templated function that takes a facet_type as a parameter.</entry>
+ </row>
+ <row>
+ <entry>Put a first_day_of_the_week_before => "weekday before"</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>put_kday_after(...)
+ Return Type:
+ facet_type::OutItrT
+ Parameters:
+ OutItrT next
+ ios_base
+ char_type fill
+ kday_after_type
+ facet_type</screen></entry>
+ <entry>A put function for kday_after_type. This is a templated function that takes a facet_type as a parameter.</entry>
+ </row>
+ <row>
+ <entry>Put a first_day_of_the_week_after => "weekday after".</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+ <para>
+ <bridgehead renderas="sect4">Date Generator Parser Construction</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top"><screen>date_generator_parser()</screen></entry>
+ <entry>Uses the default date generator elements.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>date_generator_parser(...)
+ Parameter:
+ date_generator_parser</screen></entry>
+ <entry>Copy Constructor</entry>
+ </row>
+ <row>
+ <entry valign="top"><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</screen></entry>
+ <entry>Constructs a date_generator_parser using the given element strings.</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ <bridgehead renderas="sect4">Date Generator Parser Accessors</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>void element_strings(...)
+ Parameter:
+ collection_type</screen></entry>
+ <entry>Replace the set of date generator element string with a new set.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><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</screen></entry>
+ <entry>Replace the set of date generator elements with new values.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><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</screen></entry>
+ <entry>A templated function that parses a date_generator from the stream.</entry>
+ </row>
+ <row>
+ <entry>Parses a partial_date => "dd Month".</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><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</screen></entry>
+ <entry>A templated function that parses a date_generator from the stream.</entry>
+ </row>
+ <row>
+ <entry>Parses an nth_day_of_the_week_in_month => "nth weekday of month".</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><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</screen></entry>
+ <entry>A templated function that parses a date_generator from the stream.</entry>
+ </row>
+ <row>
+ <entry>Parses a first_day_of_the_week_in_month => "first weekday of month".</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><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</screen></entry>
+ <entry>A templated function that parses a date_generator from the stream.</entry>
+ </row>
+ <row>
+ <entry>Parses a last_day_of_the_week_in_month => "last weekday of month".</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><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</screen></entry>
+ <entry>A templated function that parses a date_generator from the stream.</entry>
+ </row>
+ <row>
+ <entry>Parses a first_day_of_the_week_before => "weekday before"</entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><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</screen></entry>
+ <entry>A templated function that parses a date_generator from the stream.</entry>
+ </row>
+ <row>
+ <entry>Parses a first_day_of_the_week_after => "weekday after".</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <para>_____________________________________________________</para>
+
+ <anchor id="io_objects.special_values" />
+ <bridgehead renderas="sect3">Special Values</bridgehead>
+ <para>The date_time library uses five special_values. They are:
+ <simplelist type="horiz" columns="5">
+ <member>not_a_date_time</member>
+ <member>neg_infin</member>
+ <member>pos_infin</member>
+ <member>min_date_time</member>
+ <member>max_date_time</member>
+ </simplelist>
+ </para>
+ <para>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.</para>
+
+ <bridgehead renderas="sect4">Customization</bridgehead>
+ <para>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.</para>
+
+ <bridgehead renderas="sect4">Special Values Formatter/Parser Reference</bridgehead>
+ The complete class references can be found here: <classname alt="boost::date_time::special_values_formatter">Special Values Formatter Doxygen Reference</classname> and here: <classname alt="boost::date_time::special_values_parser">Special Values Parser Doxygen Reference</classname>
+
+ <para>
+ <bridgehead renderas="sect4">Special Values Formatter Constructor</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top"><screen>special_values_formatter()</screen></entry>
+ <entry>Constructor uses defaults for special value strings.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>special_values_formatter(...)
+ Parameters:
+ collection_type::iterator
+ collection_type::iterator</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>special_values_formatter(...)
+ Parameters:
+ char_type*
+ char_type*</screen></entry>
+ <entry>Constructs special values formatter from an array of strings.</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <para>
+ <bridgehead renderas="sect4">Special Values Formatter Accessors</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put_special(...)
+ Parameters:
+ OutItrT next
+ special_values value</screen></entry>
+ <entry>Puts the given special value into the stream.</entry>
+ </row>
+ <row>
+ <entry><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"</screen></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <para>
+ <bridgehead renderas="sect4">Special Values Parser Constructor</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top"><screen>special_values_parser()</screen></entry>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry valign="top"><screen>special_values_parser(...)
+ Parameters:
+ collection_type::iterator
+ collection_type::iterator</screen></entry>
+ <entry>Constructs a special values parser using the strings in the collection.</entry>
+ </row>
+
+ <row>
+ <entry valign="top"><screen>special_values_parser(...)
+ Parameter:
+ scpecial_values_parser</screen></entry>
+ <entry>Copy constructor.</entry>
+ </row>
+
+ <row>
+ <entry valign="top"><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</screen></entry>
+ <entry>Constructs a special values parser using the supplied strings.</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <para>
+ <bridgehead renderas="sect4">Special Values Parser Accessors</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><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</screen></entry>
+ <entry>Replace the set of special value strings with the given ones.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool match(...)
+ Parameters:
+ stream_itr_type beg
+ stream_itr_type end
+ match_results</screen></entry>
+ <entry>Returns true if parse was successful. Upon a successful parse, <code>mr.current_match</code> will be set an int values corresponding to the equivalent special_value.</entry>
+ </row>
+ <row>
+ <entry><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>(
+ mr.match_results))
+} else {
+ // error, failed parse
+}
+// d == "9999-Dec-31"</screen></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <para>_____________________________________________________</para>
+
+ <anchor id="io_objects.format_date_parser" />
+ <bridgehead renderas="sect3">Format Date Parser</bridgehead>
+ <para>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.</para>
+
+ <bridgehead renderas="sect4">Format Date Parser Reference</bridgehead>
+ The complete class reference can be found here: <classname alt="boost::date_time::format_date_parser">Doxygen Reference</classname>
+
+ <para>
+ <bridgehead renderas="sect4">Format Date Parser Constructor</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top"><screen>format_date_parser(...)
+ Parameters:
+ string_type format
+ std::locale</screen></entry>
+ <entry>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.</entry>
+ </row>
+
+ <row>
+ <entry valign="top"><screen>format_date_parser(...)
+ Parameters:
+ string_type format
+ input_collection_type
+ input_collection_type
+ input_collection_type
+ input_collection_type</screen></entry>
+ <entry>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).</entry>
+ </row>
+
+ <row>
+ <entry valign="top"><screen>format_date_parser(...)
+ Parameters:
+ format_date_parser</screen></entry>
+ <entry>Copy Constructor</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <para>
+ <bridgehead renderas="sect4">Format Date Parser Accessors</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>string_type format()</screen></entry>
+ <entry>Returns the format that will be used when parsing dates in those functions where there is no format parameter.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void format(string_type)</screen></entry>
+ <entry>Sets the format that will be used when parsing dates in those functions where there is no format parameter.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void short_month_names(...)
+ Parameter:
+ input_collection_type names</screen></entry>
+ <entry>Replace the short month names used by the parser. The collection must contain values for each month, starting with January.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void long_month_names(...)
+ Parameter:
+ input_collection_type names</screen></entry>
+ <entry>Replace the long month names used by the parser. The collection must contain values for each month, starting with January.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void short_weekday_names(...)
+ Parameter:
+ input_collection_type names</screen></entry>
+ <entry>Replace the short weekday names used by the parser. The collection must contain values for each weekday, starting with Sunday.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void long_weekday_names(...)
+ Parameter:
+ input_collection_type names</screen></entry>
+ <entry>Replace the long weekday names used by the parser. The collection must contain values for each weekday, starting with Sunday.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date_type parse_date(...)
+ Parameters:
+ string_type input
+ string_type format
+ special_values_parser</screen></entry>
+ <entry>Parse a date from the given input using the given format.</entry>
+ </row>
+ <row>
+ <entry><screen>string inp("2005-Apr-15");
+string format("%Y-%b-%d");
+date d;
+d = parser.parse_date(inp,
+ format,
+ svp);
+// d == 2005-Apr-15</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date_type parse_date(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end
+ special_values_parser</screen></entry>
+ <entry>Parse a date from stream using the parser's format.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date_type parse_date(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end
+ string_type format
+ special_values_parser</screen></entry>
+ <entry>Parse a date from stream using the given format.</entry>
+ </row>
+ <row>
+ <entry><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</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>month_type parse_month(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end
+ string_type format</screen></entry>
+ <entry>Parses a month from stream using given format. Throws bad_month if unable to parse.</entry>
+ </row>
+ <row>
+ <entry><screen>// stream holds "March"
+string format("%B");
+greg_month m;
+m = parser.parse_month(itr,
+ str_end,
+ format);
+// m == March</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>day_type parse_day_of_month(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry><screen>// stream holds "01"
+greg_day d;
+d = parser.parse_day_of_month(itr,
+ str_end);
+// d == 1st</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>day_type parse_var_day_of_month(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry><screen>// stream holds "1"
+greg_day d;
+d = parser.parse_var_day_of_month(itr,
+ str_end);
+// d == 1st</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>day_of_week_type parse_weekday(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end
+ string_type format</screen></entry>
+ <entry>Parse a weekday from stream according to the given format. Throws a bad_weekday if unable to parse.</entry>
+ </row>
+ <row>
+ <entry><screen>// stream holds "Tue"
+string format("%a");
+greg_weekday wd;
+wd = parser.parse_weekday(itr,
+ str_end,
+ format);
+// wd == Tuesday</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>year_type parse_year(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end
+ string_type format</screen></entry>
+ <entry>Parse a year from stream according to given format. Throws bad year if unable to parse.</entry>
+ </row>
+ <row>
+ <entry><screen>// stream holds "98"
+string format("%y");
+greg_year y;
+y = parser.parse_year(itr,
+ str_end,
+ format);
+// y == 1998</screen></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/io_tutorial.xml b/src/boost/libs/date_time/xmldoc/io_tutorial.xml
new file mode 100644
index 000000000..3a3829503
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/io_tutorial.xml
@@ -0,0 +1,306 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.io_tutorial"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+ <title>Date Time IO Tutorial</title>
+ <bridgehead renderas="sect2">Date Time IO Tutorial</bridgehead>
+
+ <link linkend="basic_use">Basic Use</link> |
+ <link linkend="format_strings">Format Strings</link> |
+ <link linkend="content_strings">Content Strings</link> |
+ <link linkend="tut_sv">Special Values</link> |
+ <link linkend="tut_dper">Date/Time Periods</link> |
+ <link linkend="tut_dgen">Date Generators</link>
+
+ <anchor id="basic_use" />
+ <bridgehead renderas="sect4">Basic Use</bridgehead>
+ <para>Facets are automatically imbued when operators '>>' and '&lt;&lt;' are called. The list of date_time objects that can be streamed are:</para>
+ <bridgehead renderas="sect5">Gregorian</bridgehead>
+ <para>
+ <code>date</code>,
+ <code>days</code>,
+ <code>date_period</code>,
+ <code>greg_month</code>,
+ <code>greg_weekday</code>,
+ <code>greg_year</code>,
+ <code>partial_date</code>,
+ <code>nth_day_of_the_week_in_month</code>,
+ <code>first_day_of_the_week_in_month</code>,
+ <code>last_day_of_the_week_in_month</code>,
+ <code>first_day_of_the_week_after</code>,
+ <code>first_day_of_the_week_before</code>
+ </para>
+ <bridgehead renderas="sect5">Posix_time</bridgehead>
+ <para>
+ <code>ptime</code>,
+ <code>time_period</code>,
+ <code>time_duration</code>
+ </para>
+ <bridgehead renderas="sect5">Local_time</bridgehead>
+ <para>
+ <code>local_date_time</code>
+ </para>
+
+ <para>
+ 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>libs/date_time/example/tutorial</code> directory)
+ </para>
+ <programlisting>
+ <![CDATA[
+ date d(2004, Feb, 29);
+ time_duration td(12,34,56,789);
+ stringstream ss;
+ ss << d << ' ' << td;
+ ptime pt(not_a_date_time);
+ cout << pt << endl; // "not-a-date-time"
+ ss >> pt;
+ cout << pt << endl; // "2004-Feb-29 12:34:56.000789"
+ ss.str("");
+ ss << pt << " EDT-05EDT,M4.1.0,M10.5.0";
+ local_date_time ldt(not_a_date_time);
+ ss >> ldt;
+ cout << ldt << endl; // "2004-Feb-29 12:34:56.000789 EDT"
+ ]]>
+ </programlisting>
+
+ <para>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 <link linkend="date_time.local_time.posix_time_zone">posix time zone string</link>. 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).</para>
+
+ <anchor id="format_strings" />
+ <bridgehead renderas="sect4">Format Strings</bridgehead>
+ <para>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.</para>
+ (continued from previous example)
+ <programlisting>
+ <![CDATA[
+ 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->format("%a %b %d, %H:%M %z");
+ ss.str("");
+ ss << ldt;
+ cout << ss.str() << endl; // "Sun Feb 29, 12:34 EDT"
+
+ output_facet->format(local_time_facet::iso_time_format_specifier);
+ ss.str("");
+ ss << ldt;
+ cout << ss.str() << endl; // "20040229T123456.000789-0500"
+
+ output_facet->format(local_time_facet::iso_time_format_extended_specifier);
+ ss.str("");
+ ss << ldt;
+ cout << ss.str() << endl; // "2004-02-29 12:34:56.000789-05:00"
+ ]]>
+ </programlisting>
+
+ <para>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.</para>
+ (continued from previous example)
+ <programlisting>
+ <![CDATA[
+ // 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->format(my_format.c_str());
+ input_facet->format(my_format.c_str());
+ ss.str("");
+ ss << ldt;
+ cout << ss.str() << 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 >> ldt;
+ cout << ldt << endl;
+ ]]>
+ </programlisting>
+
+ <anchor id="content_strings" />
+ <bridgehead renderas="sect4">Content Strings</bridgehead>
+ <para>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.</para>
+ <para>The default values for these are as follows:</para>
+ <bridgehead renderas="sect5">Special values</bridgehead>
+ <para>
+ <code>not-a-date-time</code>,
+ <code>-infinity</code>,
+ <code>+infinity</code>,
+ <code>minimum-date-time</code>,
+ <code>maximum-date-time</code>
+ </para>
+ <bridgehead renderas="sect5">Months</bridgehead>
+ <para>
+ <code>English calendar and three letter abbreviations</code>
+ </para>
+ <bridgehead renderas="sect5">Weekdays</bridgehead>
+ <para>
+ <code>English calendar and three letter abbreviations</code>
+ </para>
+ <bridgehead renderas="sect5">Date generator phrase elements</bridgehead>
+ <para>
+ <code>first</code>,
+ <code>second</code>,
+ <code>third</code>,
+ <code>fourth</code>,
+ <code>fifth</code>,
+ <code>last</code>,
+ <code>before</code>,
+ <code>after</code>,
+ <code>of</code>
+ </para>
+ <para>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.</para>
+
+ <bridgehead renderas="sect4">Content Strings</bridgehead>
+ <para>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).</para>
+ (continued from previous example)
+ <programlisting>
+ <![CDATA[
+ // 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<string> long_months(&month_names[0], &month_names[12]);
+ string day_names[7] = { "sunday", "monday", "tuesday", "wednesday",
+ "thursday", "friday", "saturday" };
+ vector<string> long_days(&day_names[0], &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->long_month_names(long_months);
+ date_output->long_weekday_names(long_days);
+
+ // replace names in the input facet
+ date_input->long_month_names(long_months);
+ date_input->long_weekday_names(long_days);
+
+ // customize month, weekday and date formats
+ date_output->format("%Y-%B-%d");
+ date_input->format("%Y-%B-%d");
+ date_output->month_format("%B"); // full name
+ date_input->month_format("%B"); // full name
+ date_output->weekday_format("%A"); // full name
+ date_input->weekday_format("%A"); // full name
+
+ ss.str("");
+ ss << greg_month(3);
+ cout << ss.str() << endl; // "march"
+ ss.str("");
+ ss << greg_weekday(3);
+ cout << ss.str() << endl; // "tuesday"
+ ss.str("");
+ ss << date(2005,Jul,4);
+ cout << ss.str() << endl; // "2005-july-04"
+ ]]>
+ </programlisting>
+
+
+ <anchor id="tut_sv" />
+ <bridgehead renderas="sect4">Special Values</bridgehead>
+ <para>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).</para>
+ (continued from previous example)
+ <programlisting>
+ <![CDATA[
+ // reset the formats to defaults
+ output_facet->format(local_time_facet::default_time_format);
+ input_facet->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<string> sv_names(&sv[0], &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->special_values_formatter(sv_formatter);
+ input_facet->special_values_parser(sv_parser);
+
+ ss.str("");
+ ldt = local_date_time(not_a_date_time);
+ ss << ldt;
+ cout << ss.str() << endl; // "nadt"
+
+ ss.str("min_dt");
+ ss >> ldt;
+ ss.str("");
+ ss << ldt;
+ cout << ss.str() << endl; // "1400-Jan-01 00:00:00 UTC"
+ ]]>
+ </programlisting>
+ <para>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).</para>
+
+
+ <anchor id="tut_dper" />
+ <bridgehead renderas="sect4">Date/Time Periods</bridgehead>
+ <para>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).</para>
+ (continued from previous example)
+ <programlisting>
+ <![CDATA[
+ // 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 << dp;
+ cout << ss.str() << endl; // "[2005-Mar-01/2005-Mar-31]"
+
+ // add out custom parser and formatter to the facets
+ date_output->period_formatter(per_formatter);
+ date_input->period_parser(per_parser);
+
+ // custom output
+ ss.str("");
+ ss << dp;
+ cout << ss.str() << endl; // "from 2005-Feb-01 to 2005-Apr-01 exclusive"
+ ]]>
+ </programlisting>
+
+ <anchor id="tut_dgen" />
+ <bridgehead renderas="sect4">Date Generators</bridgehead>
+ <para>Customizing the input and output of date_generators is done by replacing the existing strings (in the facet) with new strings.</para>
+ <para>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.</para>
+ (continued from previous example)
+ <programlisting>
+ <![CDATA[
+ // custom date_generator phrases
+ string dg_phrases[9] = { "1st", "2nd", "3rd", "4th", "5th",
+ "final", "prior to", "following", "in" };
+ vector<string> phrases(&dg_phrases[0], &dg_phrases[9]);
+
+ // create our date_generator
+ first_day_of_the_week_before d_gen(Monday);
+
+ // default output
+ ss.str("");
+ ss << d_gen;
+ cout << ss.str() << endl; // "Mon before"
+
+ // add our custom strings to the date facets
+ date_output->date_gen_phrase_strings(phrases);
+ date_input->date_gen_element_strings(phrases);
+
+ // custom output
+ ss.str("");
+ ss << d_gen;
+ cout << ss.str() << endl; // "Mon prior to"
+ ]]>
+ </programlisting>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/license.xml b/src/boost/libs/date_time/xmldoc/license.xml
new file mode 100644
index 000000000..15544605b
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/license.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- Copyright (c) 2001-2006 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.license">
+ <title>Boost Date-Time Library License</title>
+ <bridgehead renderas="sect2">Boost Date-Time Library License</bridgehead>
+ <!--
+ <ulink url="../../../index.htm">
+ <imagedata align="left"
+ format="GIF"
+ fileref="../../../boost.png"
+ alt="C++ Boost" />
+ </ulink>-->
+ <!--hr /-->
+ <para>
+ The following is the overall license for the boost date_time
+ library. This notice is found in all source files related to the
+ library.
+ </para>
+ <para>
+ Copyright &#169; 2002 CrystalClear Software, Inc.
+ </para>
+ <para>
+ Permission to use, copy, modify, distribute and sell this software
+ and its documentation for any purpose is hereby granted without
+ fee, provided that the above copyright notice appear in all copies
+ and that both that copyright notice and this permission notice
+ appear in supporting documentation. CrystalClear Software makes no
+ representations about the suitability of this software for any
+ purpose. It is provided "as is" without express or implied
+ warranty.
+ </para>
+ <!--hr / -->
+ <ulink url="mailto:jeff@crystalclearsoftware.com">Jeff Garland</ulink>
+ &#169; 2000-2002
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/local_date_time.xml b/src/boost/libs/date_time/xmldoc/local_date_time.xml
new file mode 100644
index 000000000..c9bbf40a6
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/local_date_time.xml
@@ -0,0 +1,463 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.local_time.local_date_time">
+ <title>Local Date Time</title>
+
+ <link linkend="local_date_time_intro">Introduction</link> --
+ <link linkend="local_date_time_header">Header</link> --
+ <link linkend="local_date_time_clock_constr">Construct From Clock</link> --
+ <link linkend="local_date_time_constr">Construction</link> --
+ <link linkend="local_date_time_accessors">Accessors</link> --
+ <link linkend="local_date_time_operators">Operators</link> --
+ <link linkend="local_date_time_tm_func">Struct tm Functions</link>
+
+ <anchor id="local_date_time_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>
+ A local_date_time object is a point in time and an associated time zone. The time is represented internally as UTC.
+ </para>
+
+ <anchor id="local_date_time_header" />
+ <bridgehead renderas="sect3">Header</bridgehead>
+ <para>
+ The inclusion of a single header will bring in all boost::local_time types,
+functions, and IO operators.
+ <programlisting>
+ #include "boost/date_time/local_time/local_time.hpp"
+ </programlisting>
+ </para>
+
+ <anchor id="local_date_time_clock_constr" />
+ <bridgehead renderas="sect3">Construct From Clock</bridgehead>
+ <para>
+ Creation of a local_date_time object from clock is possible with either second, or sub second resolution.
+ </para>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Syntax</entry>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top"><screen>local_microsec_clock(...)
+ Return Type:
+ local_date_time
+ Parameter:
+ time_zone_ptr</screen></entry>
+ <entry><screen>time_zone_ptr zone(
+ new posix_time_zone("MST-07")
+);
+local_date_time ldt =
+ local_microsec_clock::local_time(
+ zone);</screen>
+ </entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>local_sec_clock(...)
+ Return Type:
+ local_date_time
+ Parameter:
+ time_zone_ptr</screen></entry>
+ <entry><screen>time_zone_ptr zone(
+ new posix_time_zone("MST-07")
+);
+local_date_time ldt =
+ local_sec_clock::local_time(zone);</screen>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <anchor id="local_date_time_constr" />
+ <bridgehead renderas="sect3">Construction</bridgehead>
+ <para>
+ 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.
+ </para>
+ <para>
+ 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.
+ </para>
+ <para>
+ 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>local_time::dst_not_valid</code> exception is thrown. If a time label is invalid (does not exist), a <code>local_time::time_label_invalid</code> exception is thrown.
+ </para>
+ <para>
+ There are two elements in the <code>local_date_time::DST_CALC_OPTIONS</code> enum: <code>EXCEPTION_ON_ERROR</code> and <code>NOT_DATE_TIME_ON_ERROR</code>. The possible exceptions thrown are a <code>local_time::ambiguous_result</code> or a <code>local_time::time_label_invalid</code>. The <code>NOT_DATE_TIME_ON_ERROR</code> sets the time value to the special value <code>local_time::not_a_date_time</code> in the event of either a invalid or an ambiguous time label.
+ </para>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>local_date_time(...)
+ Parameters:
+ posix_time::ptime
+ time_zone_ptr</screen></entry>
+ <entry>The given time is expected to be UTC. Therefore, the given time will be adjusted according to the offset described in the time zone.</entry>
+ </row>
+ <row>
+ <entry><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);</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>local_date_time(...)
+ Parameters:
+ date
+ time_duration
+ time_zone_ptr
+ bool</screen></entry>
+<entry>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>dst_not_valid</code> or <code>time_label_invalid</code> exception.</entry>
+ </row>
+ <row>
+ <entry><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);</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>local_date_time(...)
+ Parameters:
+ date
+ time_duration
+ time_zone_ptr
+ DST_CALC_OPTIONS</screen></entry>
+ <entry>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>ambiguous_result</code> or <code>time_label_invalid</code> exception.</entry>
+ </row>
+ <row>
+ <entry><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);</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>local_date_time(local_date_time);</screen></entry>
+ <entry>Copy Constructor.</entry>
+ </row>
+ <row>
+ <entry><screen>local_date_time az_2(az);</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>local_date_time(...)
+ Parameters:
+ special_values
+ time_zone_ptr</screen></entry>
+ <entry>Special Values constructor.</entry>
+ </row>
+ <row>
+ <entry><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);</screen>
+ </entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <anchor id="local_date_time_accessors" />
+ <bridgehead renderas="sect3">Accessors</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>time_zone_ptr zone()</screen></entry>
+ <entry>Returns associated time_zone object via a time_zone_ptr</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_dst()</screen></entry>
+ <entry>Determines if time value is in DST for associated zone.</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime utc_time()</screen></entry>
+ <entry>Converts the local time value to a UTC value.</entry>
+ </row>
+ <row>
+ <entry><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</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime local_time()</screen></entry>
+ <entry>Returns the local time for this object (Wall-clock).</entry>
+ </row>
+ <row>
+ <entry><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</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>local_time_in(...)
+ Return Type:
+ local_date_time
+ Parameters:
+ time_zone_ptr
+ time_duration</screen></entry>
+ <entry>Returns a local_date_time representing the same UTC time as calling object, plus optional time_duration, with given time zone.</entry>
+ </row>
+ <row>
+ <entry><screen>local_date_time nyc = az.local_time_in(nyc_zone);
+// nyc == 7am 2004-Nov-5</screen>
+ </entry>
+ </row>
+ <!--
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string zone_name()</screen></entry>
+ <entry>Returns full zone name from associated time zone or "Coordinated Universal Time" if time_zone_ptr is NULL.</entry>
+ </row>
+ <row>
+ <entry>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string zone_abbrev()</screen></entry>
+ <entry>Returns zone abbreviation from associated time zone or "UTC" if time_zone_ptr is NULL.</entry>
+ </row>
+ <row>
+ <entry>
+ </entry>
+ </row>
+ -->
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_infinity() const</screen></entry>
+ <entry>Returns true if local_date_time is either positive or negative infinity</entry>
+ </row>
+ <row>
+ <entry><screen>local_date_time ldt(pos_infin);
+ldt.is_infinity(); // --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_neg_infinity() const</screen></entry>
+ <entry>Returns true if local_date_time is negative infinity</entry>
+ </row>
+ <row>
+ <entry><screen>local_date_time ldt(neg_infin);
+ldt.is_neg_infinity(); // --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_pos_infinity() const</screen></entry>
+ <entry>Returns true if local_date_time is positive infinity</entry>
+ </row>
+ <row>
+ <entry><screen>local_date_time ldt(neg_infin);
+ldt.is_pos_infinity(); // --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_not_a_date_time() const</screen></entry>
+ <entry>Returns true if value is not a date</entry>
+ </row>
+ <row>
+ <entry><screen>local_date_time ldt(not_a_date_time);
+ldt.is_not_a_date_time(); // --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_special() const</screen></entry>
+ <entry>Returns true if local_date_time is any <code>special_value</code></entry>
+ </row>
+ <row>
+ <entry><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(); // --> true
+ldt2.is_special(); // --> true
+ldt3.is_special(); // --> false</screen></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <anchor id="local_date_time_operators" />
+ <bridgehead renderas="sect3">Operators</bridgehead>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&lt;&lt;</screen></entry>
+ <entry>Output streaming operator. This operator is part of the v1.33 IO addition to date_time. For complete details on this feature see <link linkend="date_time.date_time_io">Date Time IO</link>. The default output is shown in this example.</entry>
+ </row>
+ <row>
+ <entry><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"
+ </screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator>></screen></entry>
+ <entry>Input streaming operator. This operator is part of the v1.33 IO addition to date_time. For complete details on this feature see <link linkend="date_time.date_time_io">Date Time IO</link>. At this time, <code>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 <link linkend="posix_time_zone_intro">posix_time_zone</link> class.</entry>
+ </row>
+ <row>
+ <entry><screen>stringstream ss;
+ss.str("2005-Jul-04 20:00:00 MST-07");
+ss >> ldt;
+ </screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator==, operator!=,
+operator>, operator&lt;,
+operator>=, operator&lt;=</screen></entry>
+ <entry>A full complement of comparison operators</entry>
+ </row>
+ <row>
+ <entry><screen>ldt1 == ldt2, etc</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator+, operator+=,
+operator-, operator-=</screen></entry>
+ <entry>Addition, subtraction, and shortcut operators for <code>local_date_time</code> and date duration types. These include: <code>days</code>, <code>months</code>, and <code>years</code>.</entry>
+ </row>
+ <row>
+ <entry><screen>ldt + days(5), etc</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator+, operator+=,
+operator-, operator-=</screen></entry>
+ <entry>Addition, subtraction, and shortcut operators for <code>local_date_time</code> and <code>time_duration</code>.</entry>
+ </row>
+ <row>
+ <entry><screen>ldt + hours(5), etc</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <anchor id="local_date_time_tm_func" />
+ <bridgehead renderas="sect3">Struct tm Functions</bridgehead>
+ <para>Function for converting a <code>local_date_time</code> object to a <code>tm</code> struct is provided.</para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>tm to_tm(local_date_time)</screen></entry>
+ <entry>A function for converting a <code>local_date_time</code> object to a <code>tm</code> struct.</entry>
+ </row>
+ <row>
+ <entry><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 => 105
+ tm_mon => 6
+ tm_mday => 5
+ tm_wday => 2 (Tuesday)
+ tm_yday => 185
+ tm_hour => 6
+ tm_min => 0
+ tm_sec => 0
+ tm_isdst => 1 */</screen>
+ </entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/local_time.xml b/src/boost/libs/date_time/xmldoc/local_time.xml
new file mode 100644
index 000000000..6e22bbd83
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/local_time.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.local_time"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+ <title>Local Time</title>
+ <bridgehead renderas="sect2">Local Time System</bridgehead>
+ <para>
+ <link linkend="local_intro">Introduction</link> --
+ <link linkend="local_ex">Usage Examples</link>
+ </para>
+
+ <anchor id="local_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>
+ The library supports 4 main extensions for the management of local times. This includes
+ <simplelist>
+ <member>local_date_time -- locally adjusted time point</member>
+ <member>posix_time_zone -- time zone defined by posix string (eg: "EST10EDT,M10.5.0,M3.5.0/03")</member>
+ <member>time_zone_database -- get time zones by region from .csv file (eg: America/New York)</member>
+ <member>time_zone -- abstract time zone interface</member>
+ </simplelist>
+ </para>
+ <para>
+ 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 <link linkend="date_time.posix_time">posix_time</link> 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;.
+ </para>
+ <para>
+ 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.
+ </para>
+
+ <anchor id="local_ex" />
+ <bridgehead renderas="sect3">Usage Examples</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Example</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><link linkend="date_time.examples.simple_time_zone">Simple Time Zone</link></entry>
+ <entry>Side by side examples of Time Zone usage. Both <type>custom_time_zone</type> and <type>posix_time_zone</type> are shown.</entry>
+ </row>
+ <row>
+ <entry><link linkend="date_time.examples.calc_rules">Daylight Savings Calc Rules</link></entry>
+ <entry>Simple example showing the creation of all five <type>dst_calc_rule</type> types.</entry>
+ </row>
+ <row>
+ <entry><link linkend="date_time.examples.seconds_since_epoch">Seconds Since Epoch</link></entry>
+ <entry>Example that calculates the total seconds elapsed since the epoch (1970-Jan-01) utilizing local_date_time.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <!-- this order chosen on 2005-Jan-30 -->
+ <xi:include href="time_zone_base.xml" />
+ <xi:include href="posix_time_zone.xml" />
+ <xi:include href="tz_database.xml" />
+ <xi:include href="custom_time_zone.xml" />
+ <xi:include href="local_date_time.xml" />
+ <xi:include href="local_time_period.xml" />
+ <!--<xi:include href=".xml" /> for serialization -->
+ <!-- includes here -->
+
+</section>
+
diff --git a/src/boost/libs/date_time/xmldoc/local_time_autodoc.xml b/src/boost/libs/date_time/xmldoc/local_time_autodoc.xml
new file mode 100644
index 000000000..c2a1e5e30
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/local_time_autodoc.xml
@@ -0,0 +1,371 @@
+<?xml version="1.0" standalone="yes"?>
+<library-reference id="local_time_reference"><title>Local Time Reference</title><header name="boost/date_time/local_time/conversion.hpp">
+<namespace name="boost">
+<namespace name="local_time">
+
+
+
+
+
+
+
+
+
+
+
+
+<function name="to_tm"><type>std::tm</type><parameter name="lt"><paramtype>const <classname>local_date_time</classname> &amp;</paramtype></parameter><purpose>Function that creates a tm struct from a local_date_time. </purpose></function>
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/local_time/custom_time_zone.hpp">
+<namespace name="boost">
+<namespace name="local_time">
+<class name="custom_time_zone_base"><template>
+ <template-type-parameter name="CharT"/>
+ </template><inherit access="public">date_time::time_zone_base&lt; posix_time::ptime, CharT &gt;</inherit><purpose>A real time zone. </purpose><typedef name="time_duration_type"><type>boost::posix_time::time_duration</type></typedef>
+<typedef name="base_type"><type>date_time::time_zone_base&lt; posix_time::ptime, CharT &gt;</type></typedef>
+<typedef name="string_type"><type>base_type::string_type</type></typedef>
+<typedef name="stringstream_type"><type>base_type::stringstream_type</type></typedef>
+<typedef name="time_zone_names"><type>date_time::time_zone_names_base&lt; CharT &gt;</type></typedef>
+<typedef name="char_type"><type>CharT</type></typedef>
+<method-group name="public member functions">
+<method name="dst_zone_abbrev" cv="const" specifiers="virtual"><type>string_type</type></method>
+<method name="std_zone_abbrev" cv="const" specifiers="virtual"><type>string_type</type></method>
+<method name="dst_zone_name" cv="const" specifiers="virtual"><type>string_type</type></method>
+<method name="std_zone_name" cv="const" specifiers="virtual"><type>string_type</type></method>
+<method name="has_dst" cv="const" specifiers="virtual"><type>bool</type><purpose>True if zone uses daylight savings adjustments. </purpose></method>
+<method name="dst_local_start_time" cv="const" specifiers="virtual"><type>posix_time::ptime</type><parameter name="y"><paramtype>gregorian::greg_year</paramtype></parameter><purpose>Local time that DST starts – NADT if has_dst is false. </purpose></method>
+<method name="dst_local_end_time" cv="const" specifiers="virtual"><type>posix_time::ptime</type><parameter name="y"><paramtype>gregorian::greg_year</paramtype></parameter><purpose>Local time that DST ends – NADT if has_dst is false. </purpose></method>
+<method name="base_utc_offset" cv="const" specifiers="virtual"><type>time_duration_type</type><purpose>Base offset from UTC for zone (eg: -07:30:00) </purpose></method>
+<method name="dst_offset" cv="const" specifiers="virtual"><type>time_duration_type</type><purpose>Adjustment forward or back made while DST is in effect. </purpose></method>
+<method name="to_posix_string" cv="const" specifiers="virtual"><type>string_type</type><purpose>Returns a POSIX time_zone string for this object. </purpose></method>
+</method-group>
+<constructor><parameter name="zone_names"><paramtype>const time_zone_names &amp;</paramtype></parameter><parameter name="utc_offset"><paramtype>const time_duration_type &amp;</paramtype></parameter><parameter name="dst_shift"><paramtype>const dst_adjustment_offsets &amp;</paramtype></parameter><parameter name="calc_rule"><paramtype>boost::shared_ptr&lt; dst_calc_rule &gt;</paramtype></parameter></constructor>
+<destructor/>
+</class><typedef name="dst_calc_rule_ptr"><type>boost::shared_ptr&lt; dst_calc_rule &gt;</type></typedef>
+<typedef name="custom_time_zone"><type><classname>custom_time_zone_base</classname>&lt; char &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/local_time/date_duration_operators.hpp">
+<para>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. </para><namespace name="boost">
+<namespace name="local_time">
+
+
+
+
+<function name="operator+"><type><classname>local_date_time</classname></type><parameter name="t"><paramtype>const <classname>local_date_time</classname> &amp;</paramtype></parameter><parameter name="m"><paramtype>const boost::gregorian::months &amp;</paramtype></parameter><description><para>Adds a months object and a local_date_time. Result will be same day-of-month as local_date_time unless original day was the last day of month. see date_time::months_duration for more details </para></description></function>
+<function name="operator+="><type><classname>local_date_time</classname></type><parameter name="t"><paramtype><classname>local_date_time</classname> &amp;</paramtype></parameter><parameter name="m"><paramtype>const boost::gregorian::months &amp;</paramtype></parameter><description><para>Adds a months object to a local_date_time. Result will be same day-of-month as local_date_time unless original day was the last day of month. see date_time::months_duration for more details </para></description></function>
+<function name="operator-"><type><classname>local_date_time</classname></type><parameter name="t"><paramtype>const <classname>local_date_time</classname> &amp;</paramtype></parameter><parameter name="m"><paramtype>const boost::gregorian::months &amp;</paramtype></parameter><description><para>Subtracts a months object and a local_date_time. Result will be same day-of-month as local_date_time unless original day was the last day of month. see date_time::months_duration for more details </para></description></function>
+<function name="operator-="><type><classname>local_date_time</classname></type><parameter name="t"><paramtype><classname>local_date_time</classname> &amp;</paramtype></parameter><parameter name="m"><paramtype>const boost::gregorian::months &amp;</paramtype></parameter><description><para>Subtracts a months object from a local_date_time. Result will be same day-of-month as local_date_time unless original day was the last day of month. see date_time::months_duration for more details </para></description></function>
+<function name="operator+"><type><classname>local_date_time</classname></type><parameter name="t"><paramtype>const <classname>local_date_time</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const boost::gregorian::years &amp;</paramtype></parameter><description><para>Adds a years object and a local_date_time. Result will be same month and day-of-month as local_date_time unless original day was the last day of month. see date_time::years_duration for more details </para></description></function>
+<function name="operator+="><type><classname>local_date_time</classname></type><parameter name="t"><paramtype><classname>local_date_time</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const boost::gregorian::years &amp;</paramtype></parameter><description><para>Adds a years object to a local_date_time. Result will be same month and day-of-month as local_date_time unless original day was the last day of month. see date_time::years_duration for more details </para></description></function>
+<function name="operator-"><type><classname>local_date_time</classname></type><parameter name="t"><paramtype>const <classname>local_date_time</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const boost::gregorian::years &amp;</paramtype></parameter><description><para>Subtracts a years object and a local_date_time. Result will be same month and day-of-month as local_date_time unless original day was the last day of month. see date_time::years_duration for more details </para></description></function>
+<function name="operator-="><type><classname>local_date_time</classname></type><parameter name="t"><paramtype><classname>local_date_time</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const boost::gregorian::years &amp;</paramtype></parameter><description><para>Subtracts a years object from a local_date_time. Result will be same month and day-of-month as local_date_time unless original day was the last day of month. see date_time::years_duration for more details </para></description></function>
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/local_time/dst_transition_day_rules.hpp">
+<namespace name="boost">
+<namespace name="local_time">
+<struct name="first_last_rule_spec"><typedef name="date_type"><type>gregorian::date</type></typedef>
+<typedef name="start_rule"><type>gregorian::first_kday_of_month</type></typedef>
+<typedef name="end_rule"><type>gregorian::last_kday_of_month</type></typedef>
+</struct><struct name="last_last_rule_spec"><typedef name="date_type"><type>gregorian::date</type></typedef>
+<typedef name="start_rule"><type>gregorian::last_kday_of_month</type></typedef>
+<typedef name="end_rule"><type>gregorian::last_kday_of_month</type></typedef>
+</struct><struct name="nth_kday_rule_spec"><typedef name="date_type"><type>gregorian::date</type></typedef>
+<typedef name="start_rule"><type>gregorian::nth_kday_of_month</type></typedef>
+<typedef name="end_rule"><type>gregorian::nth_kday_of_month</type></typedef>
+</struct><struct name="nth_last_rule_spec"><typedef name="date_type"><type>gregorian::date</type></typedef>
+<typedef name="start_rule"><type>gregorian::nth_kday_of_month</type></typedef>
+<typedef name="end_rule"><type>gregorian::last_kday_of_month</type></typedef>
+</struct><struct name="partial_date_rule_spec"><typedef name="date_type"><type>gregorian::date</type></typedef>
+<typedef name="start_rule"><type>gregorian::partial_date</type></typedef>
+<typedef name="end_rule"><type>gregorian::partial_date</type></typedef>
+</struct><typedef name="dst_calc_rule"><purpose>Provides rule of the form starting Apr 30 ending Oct 21. </purpose><type>date_time::dst_day_calc_rule&lt; gregorian::date &gt;</type></typedef>
+<typedef name="partial_date_dst_rule"><purpose>Provides rule of the form first Sunday in April, last Saturday in Oct. </purpose><type>date_time::day_calc_dst_rule&lt; <classname>partial_date_rule_spec</classname> &gt;</type></typedef>
+<typedef name="first_last_dst_rule"><purpose>Provides rule of the form first Sunday in April, last Saturday in Oct. </purpose><type>date_time::day_calc_dst_rule&lt; <classname>first_last_rule_spec</classname> &gt;</type></typedef>
+<typedef name="last_last_dst_rule"><purpose>Provides rule of the form last Sunday in April, last Saturday in Oct. </purpose><type>date_time::day_calc_dst_rule&lt; <classname>last_last_rule_spec</classname> &gt;</type></typedef>
+<typedef name="nth_last_dst_rule"><purpose>Provides rule in form of [1st|2nd|3rd|4th] Sunday in April, last Sunday in Oct. </purpose><type>date_time::day_calc_dst_rule&lt; <classname>nth_last_rule_spec</classname> &gt;</type></typedef>
+<typedef name="nth_kday_dst_rule"><purpose>Provides rule in form of [1st|2nd|3rd|4th] Sunday in April/October. </purpose><type>date_time::day_calc_dst_rule&lt; <classname>nth_kday_rule_spec</classname> &gt;</type></typedef>
+<typedef name="nth_day_of_the_week_in_month_dst_rule"><purpose>Provides rule in form of [1st|2nd|3rd|4th] Sunday in April/October. </purpose><type>date_time::day_calc_dst_rule&lt; <classname>nth_kday_rule_spec</classname> &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/local_time/local_date_time.hpp">
+<namespace name="boost">
+<namespace name="local_time">
+<struct name="ambiguous_result"><inherit access="public">logic_error</inherit><purpose>simple exception for reporting when STD or DST cannot be determined </purpose><method-group name="public member functions">
+</method-group>
+<constructor><parameter name="msg"><paramtype>std::string const &amp;</paramtype><default>std::string()</default></parameter></constructor>
+</struct><struct name="dst_not_valid"><inherit access="public">logic_error</inherit><method-group name="public member functions">
+</method-group>
+<constructor><parameter name="msg"><paramtype>std::string const &amp;</paramtype><default>std::string()</default></parameter></constructor>
+</struct><class name="local_date_time_base"><template>
+ <template-type-parameter name="utc_time_"><default>posix_time::ptime</default></template-type-parameter>
+ <template-type-parameter name="tz_type"><default>date_time::time_zone_base&lt;utc_time_,char&gt;</default></template-type-parameter>
+ </template><inherit access="public">date_time::base_time&lt; utc_time_, boost::posix_time::posix_time_system &gt;</inherit><purpose>Representation of "wall-clock" time in a particular time zone. </purpose><description><para>Representation of "wall-clock" time in a particular time zone Local_date_time_base holds a time value (date and time offset from 00:00) along with a time zone. The time value is stored as UTC and conversions to wall clock time are made as needed. This approach allows for operations between wall-clock times in different time zones, and daylight savings time considerations, to be made. Time zones are required to be in the form of a boost::shared_ptr&lt;time_zone_base&gt;. </para></description><enum name="DST_CALC_OPTIONS"><enumvalue name="EXCEPTION_ON_ERROR"/><enumvalue name="NOT_DATE_TIME_ON_ERROR"/></enum>
+<typedef name="utc_time_type"><type>utc_time_</type></typedef>
+<typedef name="time_duration_type"><type>utc_time_type::time_duration_type</type></typedef>
+<typedef name="date_type"><type>utc_time_type::date_type</type></typedef>
+<typedef name="date_duration_type"><type>date_type::duration_type</type></typedef>
+<typedef name="time_system_type"><type>utc_time_type::time_system_type</type></typedef>
+<method-group name="public member functions">
+<method name="zone" cv="const"><type>boost::shared_ptr&lt; tz_type &gt;</type><purpose>returns time zone associated with calling instance </purpose></method>
+<method name="is_dst" cv="const"><type>bool</type><purpose>returns false is time_zone is NULL and if time value is a special_value </purpose></method>
+<method name="utc_time" cv="const"><type>utc_time_type</type><purpose>Returns object's time value as a utc representation. </purpose></method>
+<method name="local_time" cv="const"><type>utc_time_type</type><purpose>Returns object's time value as a local representation. </purpose></method>
+<method name="to_string" cv="const"><type>std::string</type><purpose>Returns string in the form "2003-Aug-20 05:00:00 EDT". </purpose><description><para>Returns string in the form "2003-Aug-20 05:00:00 EDT". If time_zone is NULL the time zone abbreviation will be "UTC". The time zone abbrev will not be included if calling object is a special_value </para></description></method>
+<method name="local_time_in" cv="const"><type><classname>local_date_time_base</classname></type><parameter name="new_tz"><paramtype>boost::shared_ptr&lt; tz_type &gt;</paramtype></parameter><parameter name="td"><paramtype>time_duration_type</paramtype><default>time_duration_type(0, 0, 0)</default></parameter><description><para>returns a <classname alt="boost::local_time::local_date_time_base">local_date_time_base</classname> in the given time zone with the optional time_duration added. </para></description></method>
+<method name="zone_name" cv="const"><type>std::string</type><parameter name="as_offset"><paramtype>bool</paramtype><default>false</default></parameter><purpose>Returns name of associated time zone or "Coordinated Universal Time". </purpose><description><para>Optional bool parameter will return time zone as an offset (ie "+07:00" extended iso format). Empty string is returned for classes that do not use a time_zone </para></description></method>
+<method name="zone_abbrev" cv="const"><type>std::string</type><parameter name="as_offset"><paramtype>bool</paramtype><default>false</default></parameter><purpose>Returns abbreviation of associated time zone or "UTC". </purpose><description><para>Optional bool parameter will return time zone as an offset (ie "+0700" iso format). Empty string is returned for classes that do not use a time_zone </para></description></method>
+<method name="zone_as_posix_string" cv="const"><type>std::string</type><purpose>returns a posix_time_zone string for the associated time_zone. If no time_zone, "UTC+00" is returned. </purpose></method>
+<method name="operator==" cv="const"><type>bool</type><parameter name="rhs"><paramtype>const <classname>local_date_time_base</classname> &amp;</paramtype></parameter><purpose>Equality comparison operator. </purpose><description><para>Equality comparison operator </para></description></method>
+<method name="operator!=" cv="const"><type>bool</type><parameter name="rhs"><paramtype>const <classname>local_date_time_base</classname> &amp;</paramtype></parameter><purpose>Non-Equality comparison operator. </purpose></method>
+<method name="operator&lt;" cv="const"><type>bool</type><parameter name="rhs"><paramtype>const <classname>local_date_time_base</classname> &amp;</paramtype></parameter><purpose>Less than comparison operator. </purpose></method>
+<method name="operator&lt;=" cv="const"><type>bool</type><parameter name="rhs"><paramtype>const <classname>local_date_time_base</classname> &amp;</paramtype></parameter><purpose>Less than or equal to comparison operator. </purpose></method>
+<method name="operator&gt;" cv="const"><type>bool</type><parameter name="rhs"><paramtype>const <classname>local_date_time_base</classname> &amp;</paramtype></parameter><purpose>Greater than comparison operator. </purpose></method>
+<method name="operator&gt;=" cv="const"><type>bool</type><parameter name="rhs"><paramtype>const <classname>local_date_time_base</classname> &amp;</paramtype></parameter><purpose>Greater than or equal to comparison operator. </purpose></method>
+<method name="operator+" cv="const"><type><classname>local_date_time_base</classname></type><parameter name="dd"><paramtype>const date_duration_type &amp;</paramtype></parameter><purpose>Local_date_time + date_duration. </purpose></method>
+<method name="operator+="><type><classname>local_date_time_base</classname></type><parameter name="dd"><paramtype>const date_duration_type &amp;</paramtype></parameter><purpose>Local_date_time += date_duration. </purpose></method>
+<method name="operator-" cv="const"><type><classname>local_date_time_base</classname></type><parameter name="dd"><paramtype>const date_duration_type &amp;</paramtype></parameter><purpose>Local_date_time - date_duration. </purpose></method>
+<method name="operator-="><type><classname>local_date_time_base</classname></type><parameter name="dd"><paramtype>const date_duration_type &amp;</paramtype></parameter><purpose>Local_date_time -= date_duration. </purpose></method>
+<method name="operator+" cv="const"><type><classname>local_date_time_base</classname></type><parameter name="td"><paramtype>const time_duration_type &amp;</paramtype></parameter><purpose>Local_date_time + time_duration. </purpose></method>
+<method name="operator+="><type><classname>local_date_time_base</classname></type><parameter name="td"><paramtype>const time_duration_type &amp;</paramtype></parameter><purpose>Local_date_time += time_duration. </purpose></method>
+<method name="operator-" cv="const"><type><classname>local_date_time_base</classname></type><parameter name="td"><paramtype>const time_duration_type &amp;</paramtype></parameter><purpose>Local_date_time - time_duration. </purpose></method>
+<method name="operator-="><type><classname>local_date_time_base</classname></type><parameter name="td"><paramtype>const time_duration_type &amp;</paramtype></parameter><purpose>Local_date_time -= time_duration. </purpose></method>
+<method name="operator-" cv="const"><type>time_duration_type</type><parameter name="rhs"><paramtype>const <classname>local_date_time_base</classname> &amp;</paramtype></parameter><purpose>local_date_time -= local_date_time --&gt; time_duration_type </purpose></method>
+</method-group>
+<constructor><parameter name="t"><paramtype>utc_time_type</paramtype><description><para>A UTC time </para></description></parameter><parameter name="tz"><paramtype>boost::shared_ptr&lt; tz_type &gt;</paramtype><description><para>Timezone for to adjust the UTC time to. </para></description></parameter><description><para>This constructor interprets the passed time as a UTC time. So, for example, if the passed timezone is UTC-5 then the time will be adjusted back 5 hours. The time zone allows for automatic calculation of whether the particular time is adjusted for daylight savings, etc. If the time zone shared pointer is null then time stays unadjusted.
+</para></description></constructor>
+<constructor><parameter name="d"><paramtype>date_type</paramtype></parameter><parameter name="td"><paramtype>time_duration_type</paramtype></parameter><parameter name="tz"><paramtype>boost::shared_ptr&lt; tz_type &gt;</paramtype></parameter><parameter name="dst_flag"><paramtype>bool</paramtype></parameter><description><para>This constructs a local time – 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.
+</para></description><throws><simpara><classname>&amp;ndash;</classname> <classname alt="boost::local_time::time_label_invalid">time_label_invalid</classname> if the time passed does not exist in the given locale. The non-existent case occurs typically during the shift-back from daylight savings time. When the clock is shifted forward a range of times (2 am to 3 am in the US) is skipped and hence is invalid. <classname alt="boost::local_time::dst_not_valid">dst_not_valid</classname> if the DST flag is passed for a period where DST is not active. </simpara></throws></constructor>
+<constructor><parameter name="d"><paramtype>date_type</paramtype></parameter><parameter name="td"><paramtype>time_duration_type</paramtype></parameter><parameter name="tz"><paramtype>boost::shared_ptr&lt; tz_type &gt;</paramtype></parameter><parameter name="calc_option"><paramtype>DST_CALC_OPTIONS</paramtype></parameter><description><para>This constructs a local time – the passed time information understood to be in the passed tz. The DST flag is calculated according to the specified rule. </para></description></constructor>
+<destructor><purpose>Simple destructor, releases time zone if last referrer. </purpose></destructor>
+<constructor><parameter name="rhs"><paramtype>const <classname>local_date_time_base</classname> &amp;</paramtype></parameter><purpose>Copy constructor. </purpose></constructor>
+<constructor specifiers="explicit"><parameter name="sv"><paramtype>const boost::date_time::special_values</paramtype></parameter><parameter name="tz"><paramtype>boost::shared_ptr&lt; tz_type &gt;</paramtype><default>boost::shared_ptr&lt; tz_type &gt;()</default></parameter><purpose>Special values constructor. </purpose></constructor>
+<method-group name="public static functions">
+<method name="check_dst" specifiers="static"><type>time_is_dst_result</type><parameter name="d"><paramtype>date_type</paramtype></parameter><parameter name="td"><paramtype>time_duration_type</paramtype></parameter><parameter name="tz"><paramtype>boost::shared_ptr&lt; tz_type &gt;</paramtype></parameter><purpose>Determines if given time label is in daylight savings for given zone. </purpose><description><para>Determines if given time label is in daylight savings for given zone. Takes a date and time_duration representing a local time, along with time zone, and returns a time_is_dst_result object as result. </para></description></method>
+</method-group>
+<method-group name="private member functions">
+<method name="construction_adjustment"><type>utc_time_type</type><parameter name="t"><paramtype>utc_time_type</paramtype></parameter><parameter name="z"><paramtype>boost::shared_ptr&lt; tz_type &gt;</paramtype></parameter><parameter name="dst_flag"><paramtype>bool</paramtype></parameter><description><para>Adjust the passed in time to UTC? </para></description></method>
+<method name="zone_as_offset" cv="const"><type>std::string</type><parameter name="td"><paramtype>const time_duration_type &amp;</paramtype></parameter><parameter name="separator"><paramtype>const std::string &amp;</paramtype></parameter><description><para>Simple formatting code – todo remove this? </para></description></method>
+</method-group>
+</class><struct name="time_label_invalid"><inherit access="public">logic_error</inherit><purpose>simple exception for when time label given cannot exist </purpose><method-group name="public member functions">
+</method-group>
+<constructor><parameter name="msg"><paramtype>std::string const &amp;</paramtype><default>std::string()</default></parameter></constructor>
+</struct><typedef name="local_date_time"><purpose>Use the default parameters to define local_date_time. </purpose><type><classname>local_date_time_base</classname></type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/local_time/local_time.hpp">
+</header>
+<header name="boost/date_time/local_time/local_time_io.hpp">
+<namespace name="boost">
+<namespace name="local_time">
+<typedef name="wlocal_time_facet"><type>boost::date_time::time_facet&lt; <classname>local_date_time</classname>, wchar_t &gt;</type></typedef>
+<typedef name="local_time_facet"><type>boost::date_time::time_facet&lt; <classname>local_date_time</classname>, char &gt;</type></typedef>
+<typedef name="wlocal_time_input_facet"><type>boost::date_time::time_input_facet&lt; local_date_time::utc_time_type, wchar_t &gt;</type></typedef>
+<typedef name="local_time_input_facet"><type>boost::date_time::time_input_facet&lt; local_date_time::utc_time_type, char &gt;</type></typedef>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="TraitsT"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</paramtype></parameter><parameter name="ldt"><paramtype>const <classname>local_date_time</classname> &amp;</paramtype></parameter><purpose>operator&lt;&lt; for local_date_time - see local_time docs for formatting details </purpose></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="ldt"><paramtype><classname>local_date_time</classname> &amp;</paramtype></parameter><purpose>input operator for local_date_time </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="TraitsT"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</paramtype></parameter><parameter name="p"><paramtype>const boost::local_time::local_time_period &amp;</paramtype></parameter><purpose>output operator for local_time_period </purpose></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="tp"><paramtype>boost::local_time::local_time_period &amp;</paramtype></parameter><purpose>input operator for local_time_period </purpose></function>
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/local_time/local_time_types.hpp">
+<namespace name="boost">
+<namespace name="local_time">
+<typedef name="local_time_period"><type>boost::date_time::period&lt; <classname>local_date_time</classname>, boost::posix_time::time_duration &gt;</type></typedef>
+<typedef name="local_time_iterator"><type>date_time::time_itr&lt; <classname>local_date_time</classname> &gt;</type></typedef>
+<typedef name="local_sec_clock"><type>date_time::second_clock&lt; <classname>local_date_time</classname> &gt;</type></typedef>
+<typedef name="local_microsec_clock"><type>date_time::microsec_clock&lt; <classname>local_date_time</classname> &gt;</type></typedef>
+<typedef name="time_zone"><type>date_time::time_zone_base&lt; posix_time::ptime, char &gt;</type></typedef>
+<typedef name="wtime_zone"><type>date_time::time_zone_base&lt; posix_time::ptime, wchar_t &gt;</type></typedef>
+<typedef name="time_zone_ptr"><purpose>Shared Pointer for custom_time_zone and posix_time_zone objects. </purpose><type>boost::shared_ptr&lt; time_zone &gt;</type></typedef>
+<typedef name="wtime_zone_ptr"><type>boost::shared_ptr&lt; wtime_zone &gt;</type></typedef>
+<typedef name="time_zone_names"><type>date_time::time_zone_names_base&lt; char &gt;</type></typedef>
+<typedef name="wtime_zone_names"><type>date_time::time_zone_names_base&lt; wchar_t &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/local_time/posix_time_zone.hpp">
+<namespace name="boost">
+<namespace name="local_time">
+<struct name="bad_adjustment"><inherit access="public">out_of_range</inherit><purpose>simple exception for UTC daylight savings adjustment </purpose><method-group name="public member functions">
+</method-group>
+<constructor><parameter name="msg"><paramtype>std::string const &amp;</paramtype><default>std::string()</default></parameter></constructor>
+</struct><struct name="bad_offset"><inherit access="public">out_of_range</inherit><purpose>simple exception for UTC and Daylight savings start/end offsets </purpose><method-group name="public member functions">
+</method-group>
+<constructor><parameter name="msg"><paramtype>std::string const &amp;</paramtype><default>std::string()</default></parameter></constructor>
+</struct><class name="posix_time_zone_base"><template>
+ <template-type-parameter name="CharT"/>
+ </template><inherit access="public">date_time::time_zone_base&lt; posix_time::ptime, CharT &gt;</inherit><purpose>A time zone class constructed from a POSIX time zone string. </purpose><description><para>A POSIX time zone string takes the form of:<sbr/>
+ "std offset dst [offset],start[/time],end[/time]" (w/no spaces) 'std' specifies the abbrev of the time zone.<sbr/>
+ 'offset' is the offset from UTC.<sbr/>
+ 'dst' specifies the abbrev of the time zone during daylight savings time.<sbr/>
+ The second offset is how many hours changed during DST. Default=1<sbr/>
+ 'start' and'end' are the dates when DST goes into (and out of) effect.<sbr/>
+ 'offset' takes the form of: [+|-]hh[:mm[:ss]] {h=0-23, m/s=0-59}<sbr/>
+ 'time' and 'offset' take the same form. Time defaults=02:00:00<sbr/>
+ 'start' and 'end' can be one of three forms:<sbr/>
+ Mm.w.d {month=1-12, week=1-5 (5 is always last), day=0-6}<sbr/>
+ Jn {n=1-365 Feb29 is never counted}<sbr/>
+ n {n=0-365 Feb29 is counted in leap years}<sbr/>
+ Example "PST-5PDT01:00:00,M4.1.0/02:00:00,M10.1.0/02:00:00" <sbr/>
+ Exceptions will be thrown under these conditions:<sbr/>
+ An invalid date spec (see date class)<sbr/>
+ A <classname alt="boost::local_time::bad_offset">boost::local_time::bad_offset</classname> exception will be thrown for:<sbr/>
+ A DST start or end offset that is negative or more than 24 hours<sbr/>
+ A UTC zone that is greater than +14 or less than -12 hours<sbr/>
+ A <classname alt="boost::local_time::bad_adjustment">boost::local_time::bad_adjustment</classname> exception will be thrown for:<sbr/>
+ A DST adjustment that is 24 hours or more (positive or negative)<sbr/>
+</para><para>Note that UTC zone offsets can be greater than +12: <ulink url="http://www.worldtimezone.com/utc/utc+1200.html">http://www.worldtimezone.com/utc/utc+1200.html</ulink> </para></description><typedef name="time_duration_type"><type>boost::posix_time::time_duration</type></typedef>
+<typedef name="time_zone_names"><type>date_time::time_zone_names_base&lt; CharT &gt;</type></typedef>
+<typedef name="base_type"><type>date_time::time_zone_base&lt; posix_time::ptime, CharT &gt;</type></typedef>
+<typedef name="string_type"><type>base_type::string_type</type></typedef>
+<typedef name="char_type"><type>CharT</type></typedef>
+<typedef name="stringstream_type"><type>base_type::stringstream_type</type></typedef>
+<typedef name="char_separator_type"><type>boost::char_separator&lt; char_type, std::char_traits&lt; char_type &gt; &gt;</type></typedef>
+<typedef name="tokenizer_type"><type>boost::tokenizer&lt; char_separator_type, typename string_type::const_iterator, string_type &gt;</type></typedef>
+<typedef name="tokenizer_iterator_type"><type>tokenizer_type::iterator</type></typedef>
+<method-group name="public member functions">
+<method name="std_zone_abbrev" cv="const" specifiers="virtual"><type>string_type</type><purpose>String for the zone when not in daylight savings (eg: EST) </purpose></method>
+<method name="dst_zone_abbrev" cv="const" specifiers="virtual"><type>string_type</type><purpose>String for the timezone when in daylight savings (eg: EDT) </purpose><description><para>For those time zones that have no DST, an empty string is used </para></description></method>
+<method name="std_zone_name" cv="const" specifiers="virtual"><type>string_type</type><purpose>String for the zone when not in daylight savings (eg: Eastern Standard Time) </purpose><description><para>The full STD name is not extracted from the posix time zone string. Therefore, the STD abbreviation is used in it's place </para></description></method>
+<method name="dst_zone_name" cv="const" specifiers="virtual"><type>string_type</type><purpose>String for the timezone when in daylight savings (eg: Eastern Daylight Time) </purpose><description><para>The full DST name is not extracted from the posix time zone string. Therefore, the STD abbreviation is used in it's place. For time zones that have no DST, an empty string is used </para></description></method>
+<method name="has_dst" cv="const" specifiers="virtual"><type>bool</type><purpose>True if zone uses daylight savings adjustments otherwise false. </purpose></method>
+<method name="dst_local_start_time" cv="const" specifiers="virtual"><type>posix_time::ptime</type><parameter name="y"><paramtype>gregorian::greg_year</paramtype></parameter><purpose>Local time that DST starts – NADT if has_dst is false. </purpose></method>
+<method name="dst_local_end_time" cv="const" specifiers="virtual"><type>posix_time::ptime</type><parameter name="y"><paramtype>gregorian::greg_year</paramtype></parameter><purpose>Local time that DST ends – NADT if has_dst is false. </purpose></method>
+<method name="base_utc_offset" cv="const" specifiers="virtual"><type>time_duration_type</type><purpose>Base offset from UTC for zone (eg: -07:30:00) </purpose></method>
+<method name="dst_offset" cv="const" specifiers="virtual"><type>time_duration_type</type><purpose>Adjustment forward or back made while DST is in effect. </purpose></method>
+<method name="to_posix_string" cv="const" specifiers="virtual"><type>string_type</type><purpose>Returns a POSIX time_zone string for this object. </purpose></method>
+</method-group>
+<constructor><parameter name="s"><paramtype>const string_type &amp;</paramtype></parameter><purpose>Construct from a POSIX time zone string. </purpose></constructor>
+<destructor/>
+<method-group name="private member functions">
+<method name="calc_zone"><type>void</type><parameter name="obj"><paramtype>const string_type &amp;</paramtype></parameter><description><para>Extract time zone abbreviations for STD &amp; DST as well as the offsets for the time shift that occurs and how much of a shift. At this time full time zone names are NOT extracted so the abbreviations are used in their place </para></description></method>
+<method name="calc_rules"><type>void</type><parameter name="start"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="end"><paramtype>const string_type &amp;</paramtype></parameter></method>
+<method name="M_func"><type>void</type><parameter name="s"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="e"><paramtype>const string_type &amp;</paramtype></parameter></method>
+<method name="julian_no_leap"><type>void</type><parameter name="s"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="e"><paramtype>const string_type &amp;</paramtype></parameter><purpose>Julian day. Feb29 is never counted, even in leap years. </purpose></method>
+<method name="julian_day"><type>void</type><parameter name="s"><paramtype>const string_type &amp;</paramtype></parameter><parameter name="e"><paramtype>const string_type &amp;</paramtype></parameter><purpose>Julian day. Feb29 is always counted, but exception thrown in non-leap years. </purpose></method>
+</method-group>
+<method-group name="private static functions">
+<method name="td_as_string" specifiers="static"><type>std::string</type><parameter name="td"><paramtype>const time_duration_type &amp;</paramtype></parameter><purpose>helper function used when throwing exceptions </purpose></method>
+</method-group>
+</class><typedef name="dst_adjustment_offsets"><type>boost::date_time::dst_adjustment_offsets&lt; boost::posix_time::time_duration &gt;</type></typedef>
+<typedef name="posix_time_zone"><type><classname>posix_time_zone_base</classname>&lt; char &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/local_time/tz_database.hpp">
+<namespace name="boost">
+<namespace name="local_time">
+<typedef name="tz_database"><purpose>Object populated with boost::shared_ptr&lt;time_zone_base&gt; objects. </purpose><description><para>Object populated with boost::shared_ptr&lt;time_zone_base&gt; objects Database is populated from specs stored in external csv file. See date_time::tz_db_base for greater detail </para></description><type>date_time::tz_db_base&lt; <classname>custom_time_zone</classname>, nth_kday_dst_rule &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+</library-reference> \ No newline at end of file
diff --git a/src/boost/libs/date_time/xmldoc/local_time_period.xml b/src/boost/libs/date_time/xmldoc/local_time_period.xml
new file mode 100644
index 000000000..2ea8f74c9
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/local_time_period.xml
@@ -0,0 +1,383 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.local_time.local_time_period">
+ <title>Local Time Period</title>
+
+ <link linkend="local_time_period_intro">Introduction</link> --
+ <link linkend="local_time_period_header">Header</link> --
+ <link linkend="local_time_period_constr">Construction</link> --
+ <link linkend="local_time_period_accessors">Accessors</link> --
+ <link linkend="local_time_period_operators">Operators</link>
+
+ <anchor id="local_time_period_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>
+ The class <code>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.
+ </para>
+ <para>
+ 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>last</code> point will always be one unit less that the <code>begin</code> point.
+ </para>
+
+ <anchor id="local_time_period_header" />
+ <bridgehead renderas="sect3">Header</bridgehead>
+ <para>
+ <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</programlisting>
+ </para>
+
+ <anchor id="local_time_period_constr" />
+ <bridgehead renderas="sect3">Construction</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>local_time_period(...)
+ Parameters:
+ local_date_time beginning
+ local_date_time end</screen></entry>
+ <entry> Create a period as [begin, end). If end is &lt;= begin then the period will be defined as invalid.</entry>
+ </row>
+ <row>
+ <entry><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);</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>local_time_period(...)
+ Parameters:
+ local_date_time beginning
+ time_duration length</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry><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));</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>local_time_period(local_time_period rhs)</screen></entry>
+ <entry>Copy constructor</entry>
+ </row>
+ <row>
+ <entry><screen>local_time_period ltp1(ltp);</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="local_time_period_accessors" />
+ <bridgehead renderas="sect3">Accessors</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>local_date_time begin()</screen></entry>
+ <entry>Return first local_date_time of the period.</entry>
+ </row>
+ <row>
+ <entry><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(); // => 2005-Jan-01 00:00:00</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>local_date_time last()</screen></entry>
+ <entry>Return last local_date_time in the period</entry>
+ </row>
+ <row>
+ <entry><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(); // => 2005-Jan-01 01:59:59.999999999</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>local_date_time end()</screen></entry>
+ <entry>Return one past the last in period</entry>
+ </row>
+ <row>
+ <entry><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(); // => 2005-Jan-01 02:00:00</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_duration length()</screen></entry>
+ <entry>Return the length of the local_time period.</entry>
+ </row>
+ <row>
+ <entry><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(); // => 02:00:00</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_null()</screen></entry>
+ <entry>True if period is not well formed. eg: end less than or equal to begin.</entry>
+ </row>
+ <row>
+ <entry><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(); // => true</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool contains(local_date_time)</screen></entry>
+ <entry>True if local_date_time is within the period. Zero length periods cannot contain any points</entry>
+ </row>
+ <row>
+ <entry><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); // => true
+
+local_time_period zero(beg, beg);
+zero.contains(beg); // false</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool contains(local_time_period)</screen></entry>
+ <entry>True if period is within the period</entry>
+ </row>
+ <row>
+ <entry><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); // => true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool intersects(local_time_period)</screen></entry>
+ <entry> True if periods overlap</entry>
+ </row>
+ <row>
+ <entry><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); // => true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>local_time_period intersection(local_time_period)</screen></entry>
+ <entry>Calculate the intersection of 2 periods. Null if no intersection.</entry>
+ </row>
+ <row>
+ <entry><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 => 2005-Jan-07 00:00:00 through
+// 2005-Jan-31 23:59:59.999999999 (inclusive)</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>local_time_period merge(local_time_period)</screen></entry>
+ <entry>Returns union of two periods. Null if no intersection.</entry>
+ </row>
+ <row>
+ <entry><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 => 2005-Jan-07 00:00:00 through
+// 2005-Feb-06 23:59:59.999999999 (inclusive)</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>local_time_period span(local_time_period)</screen></entry>
+ <entry>Combines two periods and any gap between them such that begin = min(p1.begin, p2.begin) and end = max(p1.end , p2.end).</entry>
+ </row>
+ <row>
+ <entry><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 => 2005-Jan-01 00:00:00 through
+// 2005-Mar-31 23:59:59.999999999 (inclusive)</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void shift(time_duration)</screen></entry>
+ <entry>Add duration to both begin and end.</entry>
+ </row>
+ <row>
+ <entry><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 => 2005-Mar-03 00:00:00 through
+// 2005-Apr-02 23:59:59.999999999 (inclusive)</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="local_time_period_operators" />
+ <bridgehead renderas="sect3">Operators</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <!-- TODO: the streaming operators have not bee changed from time_period to local_time_period
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&lt;&lt;</screen></entry>
+ <entry>Output streaming operator for time duration. Uses facet to output [date time_of_day/date time_of_day]. The default is format is <code>[YYYY-mmm-DD hh:mm:ss.fffffffff/YYYY-mmm-DD hh:mm:ss.fffffffff]</code> string where <code>mmm</code> is 3 char month name and the fractional seconds are left out when zero.</entry>
+ </row>
+ <row>
+ <entry><screen>[2002-Jan-01 01:25:10.000000001/ \
+ 2002-Jan-31 01:25:10.123456789]</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&gt;&gt;</screen></entry>
+ <entry>Input streaming operator for time duration. Uses facet to read [date time_of_day/date time_of_day]. The default is format is <code>[YYYY-mmm-DD hh:mm:ss.fffffffff/YYYY-mmm-DD hh:mm:ss.fffffffff]</code> string where <code>mmm</code> is 3 char month name and the fractional seconds are left out when zero.</entry>
+ </row>
+ <row>
+ <entry><screen>[2002-Jan-01 01:25:10.000000001/ \
+ 2002-Jan-31 01:25:10.123456789]</screen></entry>
+ </row>
+ -->
+ <row>
+ <entry valign="top" morerows="1"><screen>operator==, operator!=</screen></entry>
+ <entry>Equality operators. Periods are equal if ltp1.begin == ltp2.begin &amp;&amp; ltp1.last == ltp2.last</entry>
+ </row>
+ <row>
+ <entry><screen>if (ltp1 == ltp2) {...</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&lt;</screen></entry>
+ <entry>Ordering with no overlap. True if ltp1.end() less than ltp2.begin()</entry>
+ </row>
+ <row>
+ <entry><screen>if (ltp1 &lt; ltp2) {...</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&gt;</screen></entry>
+ <entry>Ordering with no overlap. True if ltp1.begin() greater than ltp2.end()</entry>
+ </row>
+ <row>
+ <entry><screen>if (ltp1 > ltp2) {... etc</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&lt;=, operator&gt;=</screen></entry>
+ <entry>Defined in terms of the other operators.</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/motivation.xml b/src/boost/libs/date_time/xmldoc/motivation.xml
new file mode 100644
index 000000000..81f97e436
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/motivation.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- Copyright (c) 2001-2006 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="Motivation">
+ <title>Motivation</title>
+
+ <para>
+ The motivation for this library comes from working with and helping build several date-time libraries on several projects. Date-time libraries provide fundamental infrastructure for most development projects. However, most of them have limitations in their ability to calculate, format, convert, or perform some other functionality. For example, most libraries do not correctly handle leap seconds, provide concepts such as infinity, or provide the ability to use high resolution or network time sources. These libraries also tend to be rigid in their representation of dates and times. Thus customized policies for a project or subproject are not possible.
+ </para>
+ <para>
+ Programming with dates and times should be almost as simple and natural as programming with strings and integers. Applications with lots of temporal logic can be radically simplified by having a robust set of operators and calculation capabilities. Classes should provide the ability to compare dates and times, add lengths or time durations, retrieve dates and times from clocks, and work naturally with date and time intervals.
+ </para>
+ <para>
+ Another motivation for development of the library was to apply modern C++ library design techniques to the date-time domain. Really to build a framework for the construction of building temporal types. For example, by providing iterators and traits classes to control fundamental properties of the library. To the authors knowledge this library is the only substantial attempt to apply modern C++ to a date-time library.
+ </para>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/posix_time.xml b/src/boost/libs/date_time/xmldoc/posix_time.xml
new file mode 100644
index 000000000..7d38660d6
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/posix_time.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.posix_time"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+ <title>Posix Time</title>
+ <bridgehead renderas="sect2">Posix Time System</bridgehead>
+ <para>
+ <link linkend="posix_intro">Introduction</link> --
+ <link linkend="posix_ex">Usage Examples</link>
+ </para>
+
+ <anchor id="posix_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>
+ 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 <link linkend="date_time.buildinfo">Build Options</link> for details). This time system uses the Gregorian calendar to implement the date portion of the time representation.
+ </para>
+
+ <anchor id="posix_ex" />
+ <bridgehead renderas="sect3">Usage Examples</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Example</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><link linkend="date_time.examples.time_math">Time Math</link></entry>
+ <entry>A few simple calculations using ptime and time_durations.</entry>
+ </row>
+ <row>
+ <entry><link linkend="date_time.examples.print_hours">Print Hours</link></entry>
+ <entry>Retrieve time from clock, use a time_iterator.</entry>
+ </row>
+ <row>
+ <entry><link linkend="date_time.examples.local_utc_conversion">Local to UTC Conversion</link></entry>
+ <entry>Demonstrates a couple different ways to convert a local to UTC time including daylight savings rules.</entry>
+ </row>
+ <row>
+ <entry><link linkend="date_time.examples.time_periods">Time Periods</link></entry>
+ <entry>Some simple examples of intersection and display of time periods.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <xi:include href="ptime_class.xml" />
+ <xi:include href="time_duration.xml" />
+ <xi:include href="time_period.xml" />
+ <xi:include href="time_iterators.xml" />
+ <!-- includes here -->
+
+</section>
+
diff --git a/src/boost/libs/date_time/xmldoc/posix_time_autodoc.xml b/src/boost/libs/date_time/xmldoc/posix_time_autodoc.xml
new file mode 100644
index 000000000..b0bbdf563
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/posix_time_autodoc.xml
@@ -0,0 +1,864 @@
+<?xml version="1.0" standalone="yes"?>
+<library-reference id="posix_time_reference"><title>Posix Time Reference</title><header name="boost/date_time/posix_time/conversion.hpp">
+<namespace name="boost">
+<namespace name="posix_time">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<function name="from_time_t"><type><classname>ptime</classname></type><parameter name="t"><paramtype>std::time_t</paramtype></parameter><purpose>Function that converts a time_t into a ptime. </purpose></function>
+<function name="to_time_t"><type>std::time_t</type><parameter name="pt"><paramtype><classname>ptime</classname></paramtype></parameter><purpose>Function that converts a ptime into a time_t. </purpose></function>
+<function name="to_tm"><type>std::tm</type><parameter name="t"><paramtype>const <classname>boost::posix_time::ptime</classname> &amp;</paramtype></parameter><purpose>Convert a time to a tm structure truncating any fractional seconds. </purpose></function>
+<function name="to_tm"><type>std::tm</type><parameter name="td"><paramtype>const <classname>boost::posix_time::time_duration</classname> &amp;</paramtype></parameter><purpose>Convert a <classname alt="boost::posix_time::time_duration">time_duration</classname> to a tm structure truncating any fractional seconds and zeroing fields for date components. </purpose></function>
+<function name="ptime_from_tm"><type><classname>ptime</classname></type><parameter name="timetm"><paramtype>const std::tm &amp;</paramtype></parameter><purpose>Convert a tm struct to a ptime ignoring is_dst flag. </purpose></function>
+<function name="from_ftime"><type>TimeT</type><template>
+ <template-type-parameter name="TimeT"/>
+ <template-type-parameter name="FileTimeT"/>
+ </template><parameter name="ft"><paramtype>const FileTimeT &amp;</paramtype></parameter><purpose>Function to create a time object from an initialized FILETIME struct. </purpose><description><para>Function to create a time object from an initialized FILETIME struct. A FILETIME struct holds 100-nanosecond units (0.0000001). When built with microsecond resolution the FILETIME's sub second value will be truncated. Nanosecond resolution has no truncation.</para><para><note><para>FILETIME is part of the Win32 API, so it is not portable to non-windows platforms.</para>
+</note>
+<note><para>The function is templated on the FILETIME type, so that it can be used with both native FILETIME and the ad-hoc boost::detail::winapi::FILETIME_ type. </para>
+</note>
+</para></description></function>
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/posix_time/date_duration_operators.hpp">
+<para>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. </para><namespace name="boost">
+<namespace name="posix_time">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<function name="operator+"><type>BOOST_CXX14_CONSTEXPR <classname>ptime</classname></type><parameter name="t"><paramtype>const <classname>ptime</classname> &amp;</paramtype></parameter><parameter name="m"><paramtype>const boost::gregorian::months &amp;</paramtype></parameter><description><para>Adds a months object and a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details </para></description></function>
+<function name="operator+="><type>BOOST_CXX14_CONSTEXPR <classname>ptime</classname></type><parameter name="t"><paramtype><classname>ptime</classname> &amp;</paramtype></parameter><parameter name="m"><paramtype>const boost::gregorian::months &amp;</paramtype></parameter><description><para>Adds a months object to a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details </para></description></function>
+<function name="operator-"><type>BOOST_CXX14_CONSTEXPR <classname>ptime</classname></type><parameter name="t"><paramtype>const <classname>ptime</classname> &amp;</paramtype></parameter><parameter name="m"><paramtype>const boost::gregorian::months &amp;</paramtype></parameter><description><para>Subtracts a months object and a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details </para></description></function>
+<function name="operator-="><type>BOOST_CXX14_CONSTEXPR <classname>ptime</classname></type><parameter name="t"><paramtype><classname>ptime</classname> &amp;</paramtype></parameter><parameter name="m"><paramtype>const boost::gregorian::months &amp;</paramtype></parameter><description><para>Subtracts a months object from a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details </para></description></function>
+<function name="operator+"><type>BOOST_CXX14_CONSTEXPR <classname>ptime</classname></type><parameter name="t"><paramtype>const <classname>ptime</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const boost::gregorian::years &amp;</paramtype></parameter><description><para>Adds a years object and a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details </para></description></function>
+<function name="operator+="><type>BOOST_CXX14_CONSTEXPR <classname>ptime</classname></type><parameter name="t"><paramtype><classname>ptime</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const boost::gregorian::years &amp;</paramtype></parameter><description><para>Adds a years object to a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details </para></description></function>
+<function name="operator-"><type>BOOST_CXX14_CONSTEXPR <classname>ptime</classname></type><parameter name="t"><paramtype>const <classname>ptime</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const boost::gregorian::years &amp;</paramtype></parameter><description><para>Subtracts a years object and a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details </para></description></function>
+<function name="operator-="><type>BOOST_CXX14_CONSTEXPR <classname>ptime</classname></type><parameter name="t"><paramtype><classname>ptime</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const boost::gregorian::years &amp;</paramtype></parameter><description><para>Subtracts a years object from a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details </para></description></function>
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/posix_time/posix_time.hpp">
+<para>Global header file to get all of posix time types </para></header>
+<header name="boost/date_time/posix_time/posix_time_config.hpp">
+<namespace name="boost">
+<namespace name="posix_time">
+<class name="millisec_posix_time_system_config"><typedef name="time_rep_type"><type>boost::int64_t</type></typedef>
+<typedef name="date_type"><type>gregorian::date</type></typedef>
+<typedef name="date_duration_type"><type>gregorian::date_duration</type></typedef>
+<typedef name="time_duration_type"><type><classname>time_duration</classname></type></typedef>
+<typedef name="int_type"><type>time_res_traits::tick_type</type></typedef>
+<typedef name="impl_type"><type>time_res_traits::impl_type</type></typedef>
+<typedef name="resolution_traits"><type>time_res_traits</type></typedef>
+<method-group name="public member functions">
+<method name="BOOST_STATIC_CONSTANT"><type/><parameter name=""><paramtype>boost::int64_t</paramtype></parameter><parameter name=""><paramtype>tick_per_second</paramtype><default>1000000</default></parameter></method>
+</method-group>
+</class><class name="posix_time_system_config"><typedef name="time_rep_type"><type><classname>simple_time_rep</classname></type></typedef>
+<typedef name="date_type"><type>gregorian::date</type></typedef>
+<typedef name="date_duration_type"><type>gregorian::date_duration</type></typedef>
+<typedef name="time_duration_type"><type><classname>time_duration</classname></type></typedef>
+<typedef name="int_type"><type>time_res_traits::tick_type</type></typedef>
+<typedef name="resolution_traits"><type>time_res_traits</type></typedef>
+<method-group name="public member functions">
+<method name="BOOST_STATIC_CONSTANT"><type/><parameter name=""><paramtype>boost::int64_t</paramtype></parameter><parameter name=""><paramtype>tick_per_second</paramtype><default>1000000000</default></parameter></method>
+</method-group>
+</class><struct name="simple_time_rep"><purpose>Simple implementation for the time rep. </purpose><typedef name="date_type"><type>gregorian::date</type></typedef>
+<typedef name="time_duration_type"><type><classname>time_duration</classname></type></typedef>
+<data-member name="day"><type>date_type</type></data-member>
+<data-member name="time_of_day"><type><classname>time_duration_type</classname></type></data-member>
+<method-group name="public member functions">
+<method name="is_special" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type></method>
+<method name="is_pos_infinity" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type></method>
+<method name="is_neg_infinity" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type></method>
+<method name="is_not_a_date_time" cv="const"><type>BOOST_CXX14_CONSTEXPR bool</type></method>
+</method-group>
+<constructor><parameter name="d"><paramtype>date_type</paramtype></parameter><parameter name="tod"><paramtype><classname>time_duration_type</classname></paramtype></parameter></constructor>
+</struct><class name="time_duration"><inherit access="public">date_time::time_duration&lt; time_duration, time_res_traits &gt;</inherit><purpose>Base time duration type. </purpose><typedef name="rep_type"><type>time_res_traits</type></typedef>
+<typedef name="day_type"><type>time_res_traits::day_type</type></typedef>
+<typedef name="hour_type"><type>time_res_traits::hour_type</type></typedef>
+<typedef name="min_type"><type>time_res_traits::min_type</type></typedef>
+<typedef name="sec_type"><type>time_res_traits::sec_type</type></typedef>
+<typedef name="fractional_seconds_type"><type>time_res_traits::fractional_seconds_type</type></typedef>
+<typedef name="tick_type"><type>time_res_traits::tick_type</type></typedef>
+<typedef name="impl_type"><type>time_res_traits::impl_type</type></typedef>
+<method-group name="public member functions">
+</method-group>
+<constructor><parameter name="hour"><paramtype>hour_type</paramtype></parameter><parameter name="min"><paramtype>min_type</paramtype></parameter><parameter name="sec"><paramtype>sec_type</paramtype></parameter><parameter name="fs"><paramtype>fractional_seconds_type</paramtype><default>0</default></parameter></constructor>
+<constructor/>
+<constructor><parameter name="sv"><paramtype>boost::date_time::special_values</paramtype></parameter><purpose>Construct from special_values. </purpose></constructor>
+<method-group name="protected member functions">
+</method-group>
+<constructor specifiers="explicit"><parameter name="tick_count"><paramtype>impl_type</paramtype></parameter></constructor>
+</class><typedef name="time_res_traits"><type>date_time::time_resolution_traits&lt; boost::date_time::time_resolution_traits_adapted64_impl, boost::date_time::nano, 1000000000, 9 &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/posix_time/posix_time_duration.hpp">
+<namespace name="boost">
+<namespace name="posix_time">
+<class name="hours"><inherit access="public">boost::posix_time::time_duration</inherit><description><para>Allows expression of durations as an hour count The argument must be an integral type </para></description><method-group name="public member functions">
+</method-group>
+<constructor specifiers="explicit"><template>
+ <template-type-parameter name="T"/>
+ </template><parameter name="h"><paramtype>T const &amp;</paramtype></parameter><parameter name=""><paramtype>typename boost::enable_if&lt; boost::is_integral&lt; T &gt;, void &gt;::type *</paramtype><default>BOOST_DATE_TIME_NULLPTR</default></parameter></constructor>
+</class><class name="minutes"><inherit access="public">boost::posix_time::time_duration</inherit><description><para>Allows expression of durations as a minute count The argument must be an integral type </para></description><method-group name="public member functions">
+</method-group>
+<constructor specifiers="explicit"><template>
+ <template-type-parameter name="T"/>
+ </template><parameter name="m"><paramtype>T const &amp;</paramtype></parameter><parameter name=""><paramtype>typename boost::enable_if&lt; boost::is_integral&lt; T &gt;, void &gt;::type *</paramtype><default>BOOST_DATE_TIME_NULLPTR</default></parameter></constructor>
+</class><class name="seconds"><inherit access="public">boost::posix_time::time_duration</inherit><description><para>Allows expression of durations as a seconds count The argument must be an integral type </para></description><method-group name="public member functions">
+</method-group>
+<constructor specifiers="explicit"><template>
+ <template-type-parameter name="T"/>
+ </template><parameter name="s"><paramtype>T const &amp;</paramtype></parameter><parameter name=""><paramtype>typename boost::enable_if&lt; boost::is_integral&lt; T &gt;, void &gt;::type *</paramtype><default>BOOST_DATE_TIME_NULLPTR</default></parameter></constructor>
+</class><typedef name="millisec"><purpose>Allows expression of durations as milli seconds. </purpose><type>date_time::subsecond_duration&lt; <classname>time_duration</classname>, 1000 &gt;</type></typedef>
+<typedef name="milliseconds"><type>date_time::subsecond_duration&lt; <classname>time_duration</classname>, 1000 &gt;</type></typedef>
+<typedef name="microsec"><purpose>Allows expression of durations as micro seconds. </purpose><type>date_time::subsecond_duration&lt; <classname>time_duration</classname>, 1000000 &gt;</type></typedef>
+<typedef name="microseconds"><type>date_time::subsecond_duration&lt; <classname>time_duration</classname>, 1000000 &gt;</type></typedef>
+<typedef name="nanosec"><purpose>Allows expression of durations as nano seconds. </purpose><type>date_time::subsecond_duration&lt; <classname>time_duration</classname>, 1000000000 &gt;</type></typedef>
+<typedef name="nanoseconds"><type>date_time::subsecond_duration&lt; <classname>time_duration</classname>, 1000000000 &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/posix_time/posix_time_io.hpp">
+<namespace name="boost">
+<namespace name="posix_time">
+<typedef name="wtime_facet"><purpose>wptime_facet is depricated and will be phased out. use wtime_facet instead </purpose><description><para>ptime_facet is depricated and will be phased out. use time_facet instead wptime_input_facet is depricated and will be phased out. use wtime_input_facet instead ptime_input_facet is depricated and will be phased out. use time_input_facet instead </para></description><type>boost::date_time::time_facet&lt; <classname>ptime</classname>, wchar_t &gt;</type></typedef>
+<typedef name="time_facet"><type>boost::date_time::time_facet&lt; <classname>ptime</classname>, char &gt;</type></typedef>
+<typedef name="wtime_input_facet"><type>boost::date_time::time_input_facet&lt; <classname>ptime</classname>, wchar_t &gt;</type></typedef>
+<typedef name="time_input_facet"><type>boost::date_time::time_input_facet&lt; <classname>ptime</classname>, char &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="TraitsT"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</paramtype></parameter><parameter name="p"><paramtype>const <classname>ptime</classname> &amp;</paramtype></parameter></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="pt"><paramtype><classname>ptime</classname> &amp;</paramtype></parameter><purpose>input operator for ptime </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="TraitsT"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</paramtype></parameter><parameter name="p"><paramtype>const boost::posix_time::time_period &amp;</paramtype></parameter></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="tp"><paramtype>time_period &amp;</paramtype></parameter><purpose>input operator for time_period </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="td"><paramtype>const <classname>time_duration</classname> &amp;</paramtype></parameter><purpose>ostream operator for <classname alt="boost::posix_time::time_duration">posix_time::time_duration</classname> </purpose></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
+ <template-type-parameter name="CharT"/>
+ <template-type-parameter name="Traits"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="td"><paramtype><classname>time_duration</classname> &amp;</paramtype></parameter><purpose>input operator for <classname alt="boost::posix_time::time_duration">time_duration</classname> </purpose></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/posix_time/posix_time_legacy_io.hpp">
+<namespace name="boost">
+<namespace name="posix_time">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; charT, traits &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ <template-type-parameter name="traits"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; charT, traits &gt; &amp;</paramtype></parameter><parameter name="td"><paramtype>const <classname>time_duration</classname> &amp;</paramtype></parameter><purpose>ostream operator for <classname alt="boost::posix_time::time_duration">posix_time::time_duration</classname> </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; charT, traits &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ <template-type-parameter name="traits"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; charT, traits &gt; &amp;</paramtype></parameter><parameter name="t"><paramtype>const <classname>ptime</classname> &amp;</paramtype></parameter><purpose>ostream operator for <classname alt="boost::posix_time::ptime">posix_time::ptime</classname> </purpose></function>
+<function name="operator&lt;&lt;"><type>std::basic_ostream&lt; charT, traits &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ <template-type-parameter name="traits"/>
+ </template><parameter name="os"><paramtype>std::basic_ostream&lt; charT, traits &gt; &amp;</paramtype></parameter><parameter name="tp"><paramtype>const time_period &amp;</paramtype></parameter><purpose>ostream operator for posix_time::time_period </purpose></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; charT &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; charT &gt; &amp;</paramtype></parameter><parameter name="td"><paramtype><classname>time_duration</classname> &amp;</paramtype></parameter></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; charT &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; charT &gt; &amp;</paramtype></parameter><parameter name="pt"><paramtype><classname>ptime</classname> &amp;</paramtype></parameter></function>
+<function name="operator&gt;&gt;"><type>std::basic_istream&lt; charT &gt; &amp;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="is"><paramtype>std::basic_istream&lt; charT &gt; &amp;</paramtype></parameter><parameter name="tp"><paramtype>time_period &amp;</paramtype></parameter><description><para>operator&gt;&gt; for time_period. time_period must be in "[date time_duration/date time_duration]" format. </para></description></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/posix_time/posix_time_system.hpp">
+<namespace name="boost">
+<namespace name="posix_time">
+<typedef name="posix_time_system"><type>date_time::split_timedate_system&lt; <classname>posix_time_system_config</classname>, 1000000000 &gt;</type></typedef>
+<typedef name="int64_time_rep"><type>date_time::counted_time_rep&lt; <classname>millisec_posix_time_system_config</classname> &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/posix_time/posix_time_types.hpp">
+<namespace name="boost">
+<namespace name="posix_time">
+<typedef name="time_iterator"><purpose>Iterator over a defined time duration. </purpose><type>date_time::time_itr&lt; <classname>ptime</classname> &gt;</type></typedef>
+<typedef name="second_clock"><purpose>A time clock that has a resolution of one second. </purpose><type>date_time::second_clock&lt; <classname>ptime</classname> &gt;</type></typedef>
+<typedef name="microsec_clock"><purpose>A time clock that has a resolution of one microsecond. </purpose><type>date_time::microsec_clock&lt; <classname>ptime</classname> &gt;</type></typedef>
+<typedef name="no_dst"><purpose>Define a dst null dst rule for the posix_time system. </purpose><type>date_time::null_dst_rules&lt; ptime::date_type, <classname>time_duration</classname> &gt;</type></typedef>
+<typedef name="us_dst"><purpose>Define US dst rule calculator for the posix_time system. </purpose><type>date_time::us_dst_rules&lt; ptime::date_type, <classname>time_duration</classname> &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/posix_time/ptime.hpp">
+<namespace name="boost">
+<namespace name="posix_time">
+<class name="ptime"><inherit access="public">date_time::base_time&lt; ptime, posix_time_system &gt;</inherit><purpose>Time type with no timezone or other adjustments. </purpose><typedef name="time_system_type"><type>posix_time_system</type></typedef>
+<typedef name="time_rep_type"><type>time_system_type::time_rep_type</type></typedef>
+<typedef name="time_duration_type"><type>time_system_type::time_duration_type</type></typedef>
+<typedef name="time_type"><type><classname>ptime</classname></type></typedef>
+<method-group name="public member functions">
+</method-group>
+<constructor><parameter name="d"><paramtype>gregorian::date</paramtype></parameter><parameter name="td"><paramtype>time_duration_type</paramtype></parameter><purpose>Construct with date and offset in day. </purpose></constructor>
+<constructor specifiers="explicit"><parameter name="d"><paramtype>gregorian::date</paramtype></parameter><purpose>Construct a time at start of the given day (midnight) </purpose></constructor>
+<constructor><parameter name="rhs"><paramtype>const time_rep_type &amp;</paramtype></parameter><purpose>Copy from time_rep. </purpose></constructor>
+<constructor><parameter name="sv"><paramtype>const special_values</paramtype></parameter><purpose>Construct from special value. </purpose></constructor>
+<constructor/>
+</class>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<function name="operator=="><type>BOOST_CXX14_CONSTEXPR bool</type><parameter name="lhs"><paramtype>const <classname>ptime</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>ptime</classname> &amp;</paramtype></parameter></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/posix_time/time_formatters.hpp">
+<namespace name="boost">
+<namespace name="posix_time">
+
+
+
+
+
+
+
+
+
+
+<function name="to_simple_string_type"><type>std::basic_string&lt; charT &gt;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="td"><paramtype><classname>time_duration</classname></paramtype></parameter></function>
+<function name="to_iso_string_type"><type>std::basic_string&lt; charT &gt;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="td"><paramtype><classname>time_duration</classname></paramtype></parameter></function>
+<function name="to_simple_string_type"><type>std::basic_string&lt; charT &gt;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="t"><paramtype><classname>ptime</classname></paramtype></parameter><purpose>Time to simple format CCYY-mmm-dd hh:mm:ss.fffffff. </purpose></function>
+<function name="to_simple_string_type"><type>std::basic_string&lt; charT &gt;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="tp"><paramtype>time_period</paramtype></parameter></function>
+<function name="to_iso_string_type"><type>std::basic_string&lt; charT &gt;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="t"><paramtype><classname>ptime</classname></paramtype></parameter></function>
+<function name="to_iso_extended_string_type"><type>std::basic_string&lt; charT &gt;</type><template>
+ <template-type-parameter name="charT"/>
+ </template><parameter name="t"><paramtype><classname>ptime</classname></paramtype></parameter></function>
+<function name="to_simple_wstring"><type>std::wstring</type><parameter name="td"><paramtype><classname>time_duration</classname></paramtype></parameter><purpose>Time duration to wstring -hh::mm::ss.fffffff. Example: 10:09:03.0123456. </purpose></function>
+<function name="to_iso_wstring"><type>std::wstring</type><parameter name="td"><paramtype><classname>time_duration</classname></paramtype></parameter><purpose>Time duration in iso format -hhmmss,fffffff Example: 10:09:03,0123456. </purpose></function>
+<function name="to_simple_wstring"><type>std::wstring</type><parameter name="t"><paramtype><classname>ptime</classname></paramtype></parameter></function>
+<function name="to_simple_wstring"><type>std::wstring</type><parameter name="tp"><paramtype>time_period</paramtype></parameter><purpose>Convert to wstring of form [YYYY-mmm-DD HH:MM::SS.ffffff/YYYY-mmm-DD HH:MM::SS.fffffff]. </purpose></function>
+<function name="to_iso_wstring"><type>std::wstring</type><parameter name="t"><paramtype><classname>ptime</classname></paramtype></parameter><purpose>Convert iso short form YYYYMMDDTHHMMSS where T is the date-time separator. </purpose></function>
+<function name="to_iso_extended_wstring"><type>std::wstring</type><parameter name="t"><paramtype><classname>ptime</classname></paramtype></parameter><purpose>Convert to form YYYY-MM-DDTHH:MM:SS where T is the date-time separator. </purpose></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/posix_time/time_formatters_limited.hpp">
+<namespace name="boost">
+<namespace name="posix_time">
+
+
+
+
+<function name="to_simple_string"><type>std::string</type><parameter name="td"><paramtype><classname>time_duration</classname></paramtype></parameter><purpose>Time duration to string -hh::mm::ss.fffffff. Example: 10:09:03.0123456. </purpose></function>
+<function name="to_iso_string"><type>std::string</type><parameter name="td"><paramtype><classname>time_duration</classname></paramtype></parameter><purpose>Time duration in iso format -hhmmss,fffffff Example: 10:09:03,0123456. </purpose></function>
+<function name="to_simple_string"><type>std::string</type><parameter name="t"><paramtype><classname>ptime</classname></paramtype></parameter><purpose>Time to simple format CCYY-mmm-dd hh:mm:ss.fffffff. </purpose></function>
+<function name="to_simple_string"><type>std::string</type><parameter name="tp"><paramtype>time_period</paramtype></parameter><purpose>Convert to string of form [YYYY-mmm-DD HH:MM::SS.ffffff/YYYY-mmm-DD HH:MM::SS.fffffff]. </purpose></function>
+<function name="to_iso_string"><type>std::string</type><parameter name="t"><paramtype><classname>ptime</classname></paramtype></parameter><purpose>Convert iso short form YYYYMMDDTHHMMSS where T is the date-time separator. </purpose></function>
+<function name="to_iso_extended_string"><type>std::string</type><parameter name="t"><paramtype><classname>ptime</classname></paramtype></parameter><purpose>Convert to form YYYY-MM-DDTHH:MM:SS where T is the date-time separator. </purpose></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/posix_time/time_parsers.hpp">
+<namespace name="boost">
+<namespace name="posix_time">
+<function name="duration_from_string"><type><classname>time_duration</classname></type><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter><purpose>Creates a <classname alt="boost::posix_time::time_duration">time_duration</classname> object from a delimited string. </purpose><description><para>Expected format for string is "[-]h[h][:mm][:ss][.fff]". A negative duration will be created if the first character in string is a '-', all other '-' will be treated as delimiters. Accepted delimiters are "-:,.". </para></description></function>
+<function name="time_from_string"><type><classname>ptime</classname></type><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter></function>
+<function name="from_iso_string"><type><classname>ptime</classname></type><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter></function>
+<function name="from_iso_extended_string"><type><classname>ptime</classname></type><parameter name="s"><paramtype>const std::string &amp;</paramtype></parameter></function>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/posix_time/time_period.hpp">
+<namespace name="boost">
+<namespace name="posix_time">
+<typedef name="time_period"><purpose>Time period type. </purpose><type>date_time::period&lt; <classname>ptime</classname>, <classname>time_duration</classname> &gt;</type></typedef>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</namespace>
+</namespace>
+</header>
+<header name="boost/date_time/posix_time/time_serialize.hpp">
+</header>
+</library-reference> \ No newline at end of file
diff --git a/src/boost/libs/date_time/xmldoc/posix_time_zone.xml b/src/boost/libs/date_time/xmldoc/posix_time_zone.xml
new file mode 100644
index 000000000..0bcce72f3
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/posix_time_zone.xml
@@ -0,0 +1,224 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.local_time.posix_time_zone">
+ <title>Posix Time Zone</title>
+
+ <link linkend="posix_time_zone_intro">Introduction</link> --
+ <link linkend="posix_time_zone_notes">Important Notes</link> --
+ <link linkend="posix_time_zone_header">Header</link> --
+ <link linkend="posix_time_zone_constr">Construction</link> --
+ <link linkend="posix_time_zone_accessors">Accessors</link>
+
+ <anchor id="posix_time_zone_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>
+ 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 <link linkend="date_time.local_time.dst_calc_rules">dst_calc_rules</link>. These rules are stored as a boost::shared_ptr&lt;dst_calc_rules&gt;.
+ </para>
+ <para>
+ As a convenience, a typedef for shared_ptr&lt;dst_calc_rules&gt; is provided.
+ <programlisting>typedef boost::shared_ptr&lt;dst_calc_rules&gt; local_time::dst_calc_rule_ptr;</programlisting>
+ </para>
+ <para>
+ 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:
+ <literallayout>
+ "std offset dst [offset],start[/time],end[/time]" (w/no spaces).</literallayout>'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:
+ <literallayout>
+ [+|-]hh[:mm[:ss]] {h=0-23, m/s=0-59}</literallayout>'time' and 'offset' take the same form. 'start' and 'end' can be one of three forms:
+ <literallayout>
+ Mm.w.d {month=1-12, week=1-5 (5 is always last), day=0-6}
+ Jn {n=1-365 Feb29 is never counted}
+ n {n=0-365 Feb29 is counted in leap years}</literallayout>
+ </para>
+ <para>
+ Exceptions will be thrown under the following conditions:
+ <itemizedlist>
+ <listitem>An exception will be thrown for an invalid date spec (see <link linkend="date_time.gregorian.date_class">date class</link>).</listitem>
+ <listitem>A boost::local_time::bad_offset exception will be thrown for:</listitem>
+ <listitem>A DST start or end offset that is negative or more than 24 hours.</listitem>
+ <listitem>A UTC zone that is greater than +14 or less than -12 hours.</listitem>
+ <listitem>A boost::local_time::bad_adjustment exception will be thrown for a DST adjustment that is 24 hours or more (positive or negative)</listitem>
+ </itemizedlist>
+ </para>
+ <para>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'.
+ </para>
+ <para>
+ Some examples are:
+ <literallayout>
+ "PST-8PDT01:00:00,M4.1.0/02:00:00,M10.1.0/02:00:00"
+ "PST-8PDT,M4.1.0,M10.1.0"</literallayout>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.
+ <literallayout>
+ "MST-7"</literallayout>This zone is as simple as it gets. This zone lies seven hours west of GMT and has no daylight savings.
+ <literallayout>
+ "EST10EDT,M10.5.0,M3.5.0/03"</literallayout>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.
+ <literallayout>
+ "FST+3FDT02:00,J60/00,J304/02"</literallayout>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.
+ <literallayout>
+ "FST+3FDT,59,304"</literallayout>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:
+ <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</programlisting>
+ </para>
+ <para>
+ 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:
+ <programlisting>typedef boost::shared_ptr&lt;time_zone_base&gt; local_time::time_zone_ptr;</programlisting>
+ </para>
+ <para>
+ See <link linkend="date_time.examples.simple_time_zone">Simple time zone</link> for a side by side example of time_zone and posix_time_zone usage.
+ </para>
+
+ <anchor id="posix_time_zone_notes" />
+ <bridgehead renderas="sect3">Important Notes</bridgehead>
+ <itemizedlist>
+ <listitem>posix_time_zone objects use the standard and daylight savings abbreviations in place of the full names (see <link linkend="posix_time_zone_accessors">Accessors</link> below).</listitem>
+ <listitem>'Jn' and 'n' date specifications can not be mixed in a specification string. Ex: "FST+3FDT,59,J304" </listitem>
+ <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.</listitem>
+ </itemizedlist>
+
+ <anchor id="posix_time_zone_header" />
+ <bridgehead renderas="sect3">Header</bridgehead>
+ <para>
+ The inclusion of a single header will bring in all boost::local_time types, functions, and IO operators.
+ <programlisting>#include "boost/date_time/local_time/local_time.hpp"</programlisting>
+ </para>
+
+ <anchor id="posix_time_zone_constr" />
+ <bridgehead renderas="sect3">Construction</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Syntax</entry>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top"><screen>posix_time_zone(std::string)</screen></entry>
+ <entry><screen>std::string nyc("EST-5EDT,M4.1.0,M10.5.0");
+time_zone_ptr zone(new posix_time_zone(nyc));</screen>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <anchor id="posix_time_zone_accessors" />
+ <bridgehead renderas="sect3">Accessors</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string dst_zone_abbrev()</screen></entry>
+ <entry>Returns the daylight savings abbreviation for the represented time zone.</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_zone_sh_ptr-&gt;dst_zone_abbrev(); // "EDT"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string std_zone_abbrev()</screen></entry>
+ <entry>Returns the standard abbreviation for the represented time zone.</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_zone_sh_ptr-&gt;std_zone_abbrev(); // "EST"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string dst_zone_name()</screen></entry>
+ <entry>Returns the daylight savings ABBREVIATION for the represented time zone.</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_zone_sh_ptr-&gt;dst_zone_name(); // "EDT"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string std_zone_name()</screen></entry>
+ <entry>Returns the standard ABBREVIATION for the represented time zone.</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_zone_sh_ptr-&gt;std_zone_name(); // "EST"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool has_dst()</screen></entry>
+ <entry>Returns true when time_zone's shared_ptr to dst_calc_rules is not NULL.</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_zone_sh_ptr-&gt;has_dst(); // true
+phx_zone_sh_ptr-&gt;has_dst(); // false</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>
+ptime dst_local_start_time(greg_year)</screen></entry>
+ <entry>The date and time daylight savings time begins in given year. Returns not_a_date_time if this zone has no daylight savings.</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_zone_sh_ptr-&gt;dst_local_start_time(2004);
+// 2004-Apr-04 02:00</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>
+ptime dst_local_end_time(greg_year)</screen></entry>
+ <entry>The date and time daylight savings time ends in given year. Returns not_a_date_time if this zone has no daylight savings.</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_zone_sh_ptr-&gt;dst_local_end_time(2004);
+// 2004-Oct-31 02:00</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>
+time_duration base_utc_offset()</screen></entry>
+ <entry>The amount of time offset from UTC (typically in hours).</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_zone_sh_ptr-&gt;base_utc_offset(); // -05:00</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>posix_time::time_duration dst_offset()</screen></entry>
+ <entry>The amount of time shifted during daylight savings.</entry>
+ </row>
+ <row>
+ <entry><screen>nyc_zone_sh_ptr-&gt;dst_offset(); // 01:00</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string to_posix_string()</screen></entry>
+ <entry>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 <link linkend="date_time.local_time.posix_time_zone">posix_time_zone</link>.</entry>
+ </row>
+ <row>
+ <entry><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"
+ </screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ptime_class.xml b/src/boost/libs/date_time/xmldoc/ptime_class.xml
new file mode 100644
index 000000000..7388dbe95
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ptime_class.xml
@@ -0,0 +1,574 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.posix_time.ptime_class">
+ <title>Ptime</title>
+
+ <link linkend="ptime_intro">Introduction</link> --
+ <link linkend="ptime_header">Header</link> --
+ <link linkend="ptime_constr">Construction</link> --
+ <link linkend="ptime_from_string">Construct from String</link> --
+ <link linkend="ptime_from_clock">Construct from Clock</link> --
+ <link linkend="ptime_from_funcs">Construct using Conversion functions</link> --
+ <link linkend="ptime_accessors">Accessors</link> --
+ <link linkend="ptime_to_string">Conversion To String</link> --
+ <link linkend="ptime_operators">Operators</link> --
+ <link linkend="ptime_struct_tm">Struct tm, time_t, and FILETIME Functions</link>
+
+ <anchor id="ptime_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>
+ 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.
+ </para>
+ <para>
+ Class ptime is dependent on <link linkend="date_time.gregorian.date_class">gregorian::date</link> for the interface to the date portion of a time point.
+ </para>
+ <para>
+ Other techniques for creating times include <link linkend="date_time.posix_time.time_iterators">time iterators</link>.
+ </para>
+
+ <anchor id="ptime_header" />
+ <bridgehead renderas="sect3">Header</bridgehead>
+ <para>
+ <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</programlisting>
+ </para>
+
+ <anchor id="ptime_constr" />
+ <bridgehead renderas="sect3">Construction</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime(date,time_duration)</screen></entry>
+ <entry>Construct from a date and offset</entry>
+ </row>
+ <row>
+ <entry><screen>ptime t1(date(2002,Jan,10),
+ time_duration(1,2,3));
+ptime t2(date(2002,Jan,10),
+ hours(1)+nanosec(5));</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime(ptime)</screen></entry>
+ <entry>Copy constructor</entry>
+ </row>
+ <row>
+ <entry><screen>ptime t3(t1)</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime(special_values sv)</screen></entry>
+ <entry>Constructor for infinities, not-a-date-time, max_date_time, and min_date_time</entry>
+ </row>
+ <row>
+ <entry><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);</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime;</screen></entry>
+ <entry>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)</entry>
+ </row>
+ <row>
+ <entry><screen>ptime p; // p =&gt; not_a_date_time</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="ptime_from_string" />
+ <bridgehead renderas="sect3">Construct from String</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime time_from_string(std::string)</screen></entry>
+ <entry>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 <link linkend="date_time.buildinfo">Build-Compiler Information</link>.</entry>
+ </row>
+ <row>
+ <entry><screen>std::string ts("2002-01-20 23:59:59.000");
+ptime t(time_from_string(ts))</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime from_iso_string(std::string)</screen></entry>
+ <entry>From non delimited iso form string.</entry>
+ </row>
+ <row>
+ <entry><screen>std::string ts("20020131T235959");
+ptime t(from_iso_string(ts))</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime from_iso_extended_string(std::string)</screen></entry>
+ <entry>From delimited iso form string.</entry>
+ </row>
+ <row>
+ <entry><screen>std::string ts("2020-01-31T23:59:59.123");
+ptime t(from_iso_extended_string(ts))</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="ptime_from_clock" />
+ <bridgehead renderas="sect3">Construct from Clock</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime second_clock::local_time()</screen></entry>
+ <entry>Get the local time, second level resolution, based on the time zone settings of the computer.</entry>
+ </row>
+ <row>
+ <entry><screen>ptime t(second_clock::local_time());</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime second_clock::universal_time()</screen></entry>
+ <entry>Get the UTC time.</entry>
+ </row>
+ <row>
+ <entry><screen>ptime t(second_clock::universal_time())</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime microsec_clock::local_time()</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry><screen>ptime t(microsec_clock::local_time());</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime microsec_clock::universal_time()</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry><screen>ptime t(microsec_clock::universal_time());</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="ptime_from_funcs" />
+ <bridgehead renderas="sect3">Construct using Conversion Functions</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime from_time_t(time_t t);</screen></entry>
+ <entry>Converts a time_t into a ptime.</entry>
+ </row>
+ <row>
+ <entry><screen>ptime t = from_time_t(tt);</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime from_ftime&lt;ptime&gt;(FILETIME ft);</screen></entry>
+ <entry>Creates a ptime object from a FILETIME structure.</entry>
+ </row>
+ <row>
+ <entry><screen>ptime t = from_ftime&lt;ptime&gt;(ft);</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="ptime_accessors" />
+ <bridgehead renderas="sect3">Accessors</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>date date()</screen></entry>
+ <entry>Get the date part of a time.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2002,Jan,10);
+ptime t(d, hour(1));
+t.date() --> 2002-Jan-10;</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_duration time_of_day()</screen></entry>
+ <entry>Get the time offset in the day.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2002,Jan,10);
+ptime t(d, hour(1));
+t.time_of_day() --> 01:00:00;</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_infinity() const</screen></entry>
+ <entry>Returns true if ptime is either positive or negative infinity</entry>
+ </row>
+ <row>
+ <entry><screen>ptime pt(pos_infin);
+pt.is_infinity(); // --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_neg_infinity() const</screen></entry>
+ <entry>Returns true if ptime is negative infinity</entry>
+ </row>
+ <row>
+ <entry><screen>ptime pt(neg_infin);
+pt.is_neg_infinity(); // --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_pos_infinity() const</screen></entry>
+ <entry>Returns true if ptime is positive infinity</entry>
+ </row>
+ <row>
+ <entry><screen>ptime pt(neg_infin);
+pt.is_pos_infinity(); // --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_not_a_date_time() const</screen></entry>
+ <entry>Returns true if value is not a ptime</entry>
+ </row>
+ <row>
+ <entry><screen>ptime pt(not_a_date_time);
+pt.is_not_a_date_time(); // --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_special() const</screen></entry>
+ <entry>Returns true if ptime is any <code>special_value</code></entry>
+ </row>
+ <row>
+ <entry><screen>ptime pt(pos_infin);
+ptime pt2(not_a_date_time);
+ptime pt3(date(2005,Mar,1), hours(10));
+pt.is_special(); // --> true
+pt2.is_special(); // --> true
+pt3.is_special(); // --> false</screen></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="ptime_to_string" />
+ <bridgehead renderas="sect3">Conversion to String</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string to_simple_string(ptime)</screen></entry>
+ <entry>To <code>YYYY-mmm-DD HH:MM:SS.fffffffff</code> string where <code>mmm</code> 3 char month name. Fractional seconds only included if non-zero.</entry>
+ </row>
+ <row>
+ <entry><screen>2002-Jan-01 10:00:01.123456789</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string to_iso_string(ptime)</screen></entry>
+ <entry>Convert to form <code>YYYYMMDDTHHMMSS,fffffffff</code> where <code>T</code> is the date-time separator</entry>
+ </row>
+ <row>
+ <entry><screen>20020131T100001,123456789</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string to_iso_extended_string(ptime)</screen></entry>
+ <entry>Convert to form <code>YYYY-MM-DDTHH:MM:SS,fffffffff</code> where <code>T</code> is the date-time separator</entry>
+ </row>
+ <row>
+ <entry><screen>2002-01-31T10:00:01,123456789</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="ptime_operators" />
+ <bridgehead renderas="sect3">Operators</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&lt;&lt;, operator&gt;&gt;</screen></entry>
+ <entry>Streaming operators. <emphasis role="strong">Note:</emphasis> As of version 1.33, streaming operations have been greatly improved. See <link linkend="date_time.date_time_io">Date Time IO System</link> for more details (including exceptions and error conditions).</entry>
+ </row>
+ <row>
+ <entry><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"
+ </screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator==, operator!=,
+operator>, operator&lt;,
+operator>=, operator&lt;=</screen>
+ </entry>
+ <entry>A full complement of comparison operators</entry>
+ </row>
+ <row>
+ <entry><screen>t1 == t2, etc</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime operator+(days)</screen></entry>
+ <entry>Return a ptime adding a day offset</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2002,Jan,1);
+ptime t(d,minutes(5));
+days dd(1);
+ptime t2 = t + dd;</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime operator-(days)</screen></entry>
+ <entry>Return a ptime subtracting a day offset</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2002,Jan,1);
+ptime t(d,minutes(5));
+days dd(1);
+ptime t2 = t - dd;</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime operator+(time_duration)</screen></entry>
+ <entry>Return a ptime adding a time duration</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2002,Jan,1);
+ptime t(d,minutes(5));
+ptime t2 = t + hours(1) + minutes(2);</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime operator-(time_duration)</screen></entry>
+ <entry>Return a ptime subtracting a time duration</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2002,Jan,1);
+ptime t(d,minutes(5));
+ptime t2 = t - minutes(2);</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_duration operator-(ptime)</screen></entry>
+ <entry>Take the difference between two times.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2002,Jan,1);
+ptime t1(d,minutes(5));
+ptime t2(d,seconds(5));
+time_duration t3 = t2 - t1;//negative result</screen>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <anchor id="ptime_struct_tm" />
+ <bridgehead renderas="sect3">Struct tm, time_t, and FILETIME Functions</bridgehead>
+ <para>Functions for converting posix_time objects to, and from, <code>tm</code> structs are provided as well as conversion from <code>time_t</code> and <code>FILETIME</code>.</para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>tm to_tm(ptime)</screen></entry>
+ <entry>A function for converting a <code>ptime</code> object to a <code>tm</code> struct. The <code>tm_isdst</code> field is set to -1.</entry>
+ </row>
+ <row>
+ <entry><screen>ptime pt(date(2005,Jan,1), time_duration(1,2,3));
+tm pt_tm = to_tm(pt);
+/* tm_year => 105
+ tm_mon => 0
+ tm_mday => 1
+ tm_wday => 6 (Saturday)
+ tm_yday => 0
+ tm_hour => 1
+ tm_min => 2
+ tm_sec => 3
+ tm_isdst => -1 */</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime ptime_from_tm(tm timetm)</screen></entry>
+ <entry>A function for converting a <code>tm</code> struct to a <code>ptime</code> object. The fields: <code>tm_wday </code>, <code>tm_yday </code>, and <code>tm_isdst</code> are ignored.</entry>
+ </row>
+ <row>
+ <entry><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 => 2005-Jan-01 01:02:03</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>tm to_tm(time_duration)</screen></entry>
+ <entry>A function for converting a <code>time_duration</code> object to a <code>tm</code> struct. The fields: <code>tm_year</code>, <code>tm_mon</code>, <code>tm_mday</code>, <code>tm_wday</code>, <code>tm_yday</code> are set to zero. The <code>tm_isdst</code> field is set to -1.</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(1,2,3);
+tm td_tm = to_tm(td);
+/* tm_year => 0
+ tm_mon => 0
+ tm_mday => 0
+ tm_wday => 0
+ tm_yday => 0
+ tm_hour => 1
+ tm_min => 2
+ tm_sec => 3
+ tm_isdst => -1 */</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime from_time_t(std::time_t)</screen></entry>
+ <entry>Creates a <code>ptime</code> from the time_t parameter. The seconds held in the time_t are added to a time point of 1970-Jan-01.</entry>
+ </row>
+ <row>
+ <entry><screen>ptime pt(not_a_date_time);
+std::time_t t;
+t = 1118158776;
+pt = from_time_t(t);
+// pt => 2005-Jun-07 15:39:36</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime from_ftime&lt;ptime>(FILETIME)</screen></entry>
+ <entry>A template function that constructs a <code>ptime</code> from a FILETIME struct.</entry>
+ </row>
+ <row>
+ <entry><screen>FILETIME ft;
+ft.dwHighDateTime = 29715317;
+ft.dwLowDateTime = 3865122988UL;
+ptime pt = from_ftime&lt;ptime>(ft);
+// pt => 2005-Jun-07 15:30:57.039582000</screen></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/ref_tag_fix.pl b/src/boost/libs/date_time/xmldoc/ref_tag_fix.pl
new file mode 100644
index 000000000..23b66d539
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/ref_tag_fix.pl
@@ -0,0 +1,114 @@
+#!/usr/bin/perl -w
+# Bart Garst - 7/1/2004
+# additional comments at bottom of file
+
+#############################################################################
+# Copyright (c) 2001-2005 CrystalClear Software, Inc. #
+# Subject to the Boost Software License, Version 1.0. #
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) #
+#############################################################################
+
+use strict;
+
+# key-value of file name and id attribute
+# if the attributes are changed here it would be a good idea to
+# also change the links in doxy.xml
+my %files = (
+ 'date_time_autodoc.boostbook' => 'date_time_reference',
+ 'gregorian_autodoc.boostbook' => 'gregorian_reference',
+ 'posix_time_autodoc.boostbook' => 'posix_time_reference',
+ 'local_time_autodoc.boostbook' => 'local_time_reference'
+);
+
+
+foreach my $key(keys %files) {
+ rewrite_tags($key, $files{$key});
+}
+
+exit;
+
+### subroutines ###
+
+# separate words at underscores and capitalize first letter of each
+sub make_title {
+ my $a = shift || die "Missing required parameter to make_title()\n";
+ my @wrds = split(/_/, $a); # remove underscores
+ foreach(@wrds){
+ $_ = "\u$_"; # capitalize first letter
+ }
+ $a = join(" ",@wrds);
+
+ return $a;
+}
+
+sub rewrite_tags {
+ my $filename = shift || die "Error: argument 1 missing to sub $!";
+ my $id_tag = shift || die "Error: argument 2 missing to sub $!";
+ my ($line, @new_file, $title, $processed);
+
+ $processed = 1; # has this file already been processed?
+
+ print "...processing $filename...\n";
+
+ # prepare a title from id attribute
+ $title = make_title($id_tag);
+
+ # open & read file and change appropriate line
+ open(INP, "<$filename") || die "File open (read) failed: $!";
+ while($line = <INP>){
+ if($line =~ /<library-reference>/) {
+ push(@new_file, "<section id=\"$id_tag\">\n");
+ push(@new_file, "<title>$title</title>\n");
+ $processed = 0; # file had not been previously processed
+ }
+ elsif($line =~ /<\/library-reference>/) {
+ push(@new_file, "</section>\n");
+ }
+ else{
+ push(@new_file, $line);
+ }
+ }
+ close(INP);
+
+ # open & write new file w/ same name
+ open(OTP, ">$filename") || die "File open (write) failed: $!";
+ print OTP shift(@new_file);
+
+ if($processed == 0){ # has not been previously processed so add license
+ my($day, $year) = (localtime)[3,5];
+ my $month = (qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec))[(localtime)[4]];
+ $year += 1900; # adjust year
+ print OTP <<EO_LIC;
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+<!-- date source directory processed: $year-$month-$day -->
+EO_LIC
+ }
+
+ foreach(@new_file){
+ print OTP "$_";
+ }
+ close(OTP);
+}
+
+__END__
+
+Rewrites the library-reference tagset as a section tagset and adds
+a title to the generated *.boostbook files. It will NOT update a
+file that has already been rewritten.
+
+Change log
+7/19/2004
+ - rewrite library-reference tags as section tags and add title tags
+ - renamed fix_id sub to rewrite_tags.
+8/31/2004
+ - added license to this file and writes license to boostbook files
+11/01/2004
+ - fixed minor bug that placed multiple license statements in files if
+ input file had already had it's tags fixed.
+ - added a processed date to the license statement
+12/02/2005
+ - added local_time_autodoc.boostbook
+ - updated copyrights to 2005
diff --git a/src/boost/libs/date_time/xmldoc/references.xml b/src/boost/libs/date_time/xmldoc/references.xml
new file mode 100644
index 000000000..5147d34b1
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/references.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.references">
+ <title>References</title>
+
+ <para>The design of the library is currently being evolved using Wiki and email discussions. You can find more information at: <ulink url="http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?GDTL">Boost Wiki GDTL Start Page</ulink>.
+ </para>
+
+ <para>
+ <itemizedlist mark="bullet">
+ <listitem><link linkend="date_ref">Date References</link></listitem>
+ <listitem><link linkend="time_ref">Time References</link></listitem>
+ <listitem><link linkend="other_c_libs">Other C/C++ Libraries</link></listitem>
+ <listitem><link linkend="java_libs">JAVA Date-Time Libraries</link></listitem>
+ <listitem><link linkend="script_libs">Scripting Language Libraries</link></listitem>
+ <listitem><link linkend="related">Related Commercial and Fanciful Pages</link></listitem>
+ <listitem><link linkend="resolution">Resolution, Precision, and Accuracy</link></listitem>
+ </itemizedlist>
+ </para>
+ <anchor id="date_ref" />
+ <bridgehead renderas="sect3">Date Calendar References</bridgehead>
+ <para>
+ <itemizedlist mark="bullet">
+ <listitem>ISO 8601 date time standard -- <ulink url="http://www.cl.cam.ac.uk/~mgk25/iso-time.html">Summary by Markus Kuhn</ulink> </listitem>
+ <listitem><ulink url="http://emr.cs.iit.edu/home/reingold/calendar-book/second-edition/">Calendrical Calculations</ulink> book by Reingold &amp; Dershowitz</listitem>
+ <listitem><ulink url="http://www.tondering.dk/claus/calendar.html">Calendar FAQ by Claus Tøndering</ulink></listitem>
+ <listitem>Calendar zone <ulink url="http://www.calendarzone.com" /> </listitem>
+ <listitem><ulink url="http://www.w3.org/TR/xmlschema-2/#dateTime">XML schema for date time</ulink> </listitem>
+ <listitem>Will Linden's <ulink url="http://www.ecben.net/calendar.shtml">Calendar Links</ulink> </listitem>
+ <listitem><ulink url="http://www21.brinkster.com/lonwolve/melt/index.htm">XMAS calendar melt</ulink> </listitem>
+ </itemizedlist>
+ </para>
+ <anchor id="time_ref" />
+ <bridgehead renderas="sect3">Time</bridgehead>
+ <para>
+ <itemizedlist mark="bullet">
+ <listitem>Martin Folwer on time patterns
+ <itemizedlist override="opencircle">
+ <listitem><ulink url="http://www.aw.com/cseng/titles/0-201-89542-0/apsupp/events2-1.html">Recurring Events for Calendars</ulink> </listitem>
+ <listitem>Patterns for things that <ulink url="http://martinfowler.com/ap2/timeNarrative.html">Change with time</ulink> </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>US National Institute of Standards and Technology <ulink url="http://nist.time.gov/exhibits.html">Time Exhibits</ulink> </listitem>
+ <listitem>Network Time Protocol at <ulink url="http://www.ntp.org/">NTP.org</ulink> </listitem>
+ <listitem>US Navy <ulink url="http://tycho.usno.navy.mil/systime.html">Systems of Time</ulink> </listitem>
+ <listitem><ulink url="http://www.bipm.fr/enus/5_Scientific/c_time/time_1.html">International Atomic Time</ulink> </listitem>
+ <listitem><ulink url="http://beta.zyprexia.com/docs/pgsql/user/datatype1130.htm">Date-Time type PostgreSQL</ulink> User Guide </listitem>
+ </itemizedlist>
+ </para>
+ <anchor id="other_c_libs" />
+ <bridgehead renderas="sect3">Other C/C++ Libraries</bridgehead>
+ <para>
+ <itemizedlist mark="bullet">
+ <listitem><ulink url="http://www.cplusplus.com/ref/ctime/index.html">ctime C</ulink> Standard library reference at cplusplus.com</listitem>
+ <listitem><ulink url="http://www.cl.cam.ac.uk/~mgk25/c-time/">XTime C extension</ulink> proposal</listitem>
+ <listitem><ulink url="http://david.tribble.com/text/c0xcalendar.html#author-info">Another C library extension proposal</ulink> by David Tribble</listitem>
+ <listitem><ulink url="http://cr.yp.to/libtai.html">libTAI</ulink> is a C based time library</listitem>
+ <listitem><ulink url="http://www.twinsun.com/tz/tz-link.htm">Time Zone Database</ulink> C library for managing timezones/places</listitem>
+ <listitem>International Components for Unicode by IBM (open source)
+ <itemizedlist override="opencircle">
+ <listitem><ulink url="http://icu.sourceforge.net/userguide/dateCalendar.html">Calendar Class</ulink></listitem>
+ <listitem><ulink url="http://icu.sourceforge.net/userguide/dateTime.html">Date Time Services</ulink></listitem>
+ <listitem><ulink url="http://oss.software.ibm.com/userguide/dateTimezone.html">Time Zone Class</ulink></listitem>
+ <listitem><ulink url="http://oss.software.ibm.com/userguide/formatDateTime.html">Date-Time Formatting</ulink></listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem><ulink url="http://pds-rings.seti.org/toolkits/julian_133_html/aareadme.html">Julian Library in C by Mark Showalter -- NASA</ulink></listitem>
+ </itemizedlist>
+ </para>
+ <anchor id="java_libs" />
+ <bridgehead renderas="sect3">JAVA Date &amp; Time Library Quick Reference</bridgehead>
+ <para>
+ <itemizedlist mark="bullet">
+ <listitem><ulink url="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Calendar.html">Calendar class</ulink></listitem>
+ <listitem><ulink url="http://java.sun.com/j2se/1.5.0/docs/api/java/util/GregorianCalendar.html">Gregorian calendar</ulink></listitem>
+ <listitem><ulink url="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Date.html">Date class</ulink></listitem>
+ <listitem><ulink url="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Time.html">sql.time class</ulink></listitem>
+ <listitem><ulink url="http://java.sun.com/j2se/1.5.0/docs/api/java/util/DateFormatSymbols.html#_top_">Date format symbols</ulink></listitem>
+ <listitem><ulink url="http://java.sun.com/j2se/1.5.0/docs/api/java/util/DateFormat.html">Date format</ulink></listitem>
+ <listitem><ulink url="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SimpleDateFormat.html">Simple Date Format</ulink></listitem>
+<listitem><ulink url="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SimpleTimeZone.html">Simple Time Zone</ulink></listitem>
+ </itemizedlist>
+ </para>
+ <anchor id="script_libs" />
+ <bridgehead renderas="sect3">Scripting Language Libraries</bridgehead>
+ <para>
+ <itemizedlist mark="bullet">
+ <listitem>A python date library <ulink url="http://www.lemburg.com/files/python/mxDateTime.html">MX Date Time</ulink></listitem>
+ <listitem>Perl date-time
+ <itemizedlist override="opencircle">
+ <listitem><ulink url="http://search-dev.develooper.com/search?m=module&amp;q=date&amp;s=11">Date-Time packages at CPAN</ulink></listitem>
+ <listitem><ulink url="http://search-dev.develooper.com/~stbey/Date-Calc-5.4/Calc.pod">Date::Calc</ulink> at CPAN</listitem>
+ <listitem><ulink url="http://search.cpan.org/doc/MORTY/DateConvert-0.16/Convert.pm">Date::Convert</ulink> calendar conversions at CPAN</listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <anchor id="related" />
+ <bridgehead renderas="sect3">Related Commercial and Fanciful Pages</bridgehead>
+ <para>
+ <itemizedlist mark="bullet">
+ <listitem><ulink url="http://www.craphound.com/est/">Eastern Standard Tribe</ulink> -- Cory Doctorow science fiction novel with time themes.</listitem>
+ <listitem><ulink url="http://www.leapsecond.com/java/gpsclock.htm">Leapsecond.com time</ulink> page</listitem>
+ <listitem><ulink url="http://www.worldtimeserver.com">World Time Server / TZ database</ulink></listitem>
+ <listitem><ulink url="http://www.longnow.org/10kclock/clock.htm">10000 year clock</ulink> at Long Now Foundation</listitem>
+ <listitem><ulink url="http://www.timezonesforpcs.com">Timezones for PCs</ulink></listitem>
+ </itemizedlist>
+ </para>
+ <anchor id="resolution" />
+ <bridgehead renderas="sect3">Resolution, Precision, and Accuracy</bridgehead>
+ <para>
+ <itemizedlist mark="bullet">
+ <listitem>Definitions with pictures from <ulink url="http://metrologyforum.tm.agilent.com/specs.shtml">Agilent Technologies</ulink></listitem>
+ <listitem>Definitions from <ulink url="http://www.solent.ac.uk/hydrography/notes/errorthe/accuracy.htm">Southampton Institute</ulink></listitem>
+ </itemizedlist>
+ </para>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/serialization.xml b/src/boost/libs/date_time/xmldoc/serialization.xml
new file mode 100644
index 000000000..38f507d47
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/serialization.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.serialization">
+ <title>Serialization</title>
+
+ <para>
+ 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:
+ </para>
+
+ <bridgehead renderas="sect3">boost::gregorian</bridgehead>
+
+ <informaltable frame="all" pgwide="1">
+ <tgroup cols="3">
+ <tbody>
+ <row>
+ <entry><link linkend="date_time.gregorian.date_class">date</link></entry>
+ <entry><link linkend="date_time.gregorian.date_duration">date_duration</link></entry>
+ <entry><link linkend="date_time.gregorian.date_period">date_period</link></entry>
+ </row>
+ <row>
+ <entry><link linkend="date_time.gregorian.date_algorithms">partial_date</link></entry>
+ <entry><link linkend="date_time.gregorian.date_algorithms">nth_day_of_week_in_month</link></entry>
+ <entry><link linkend="date_time.gregorian.date_algorithms">first_day_of_week_in_month</link></entry>
+ </row>
+ <row>
+ <entry><link linkend="date_time.gregorian.date_algorithms">last_day_of_week_in_month</link></entry>
+ <entry><link linkend="date_time.gregorian.date_algorithms">first_day_of_week_before</link></entry>
+ <entry><link linkend="date_time.gregorian.date_algorithms">first_day_of_week_after</link></entry>
+ </row>
+ <row>
+ <entry>greg_month</entry> <!-- no docs to link to for these three -->
+ <entry>greg_day</entry>
+ <entry>greg_weekday</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <bridgehead renderas="sect3">boost::posix_time</bridgehead>
+
+ <informaltable frame="all" pgwide="1">
+ <tgroup cols="3">
+ <tbody>
+ <row>
+ <entry><link linkend="date_time.posix_time.ptime_class">ptime</link></entry>
+ <entry><link linkend="date_time.posix_time.time_duration">time_duration</link></entry>
+ <entry><link linkend="date_time.posix_time.time_period">time_period</link></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ No extra steps are required to build the date_time library for serialization use.
+ </para>
+
+ <para>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.
+ <programlisting>
+ template&lt;class archive_type, class temporal_type>
+ void save_to(archive_type&amp; ar, const temporal_type&amp; tt)
+ {
+ ar &lt;&lt; tt;
+ }
+ </programlisting>
+ </para>
+
+ <para>
+ Example text_archive usage:
+ <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</programlisting>
+ </para>
+
+ <para>
+ Example xml_archive usage:
+ <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</programlisting>
+ </para>
+
+ <para>
+ To use the date_time serialization code, the proper header files must be explicitly included. The header files are:
+ <programlisting>
+ boost/date_time/gregorian/greg_serialize.hpp</programlisting>
+ and
+ <programlisting>
+ boost/date_time/posix_time/time_serialize.hpp</programlisting>
+ </para>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/snap_to_details.xml b/src/boost/libs/date_time/xmldoc/snap_to_details.xml
new file mode 100644
index 000000000..2b8b73000
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/snap_to_details.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+
+<para>
+<anchor id="snap_to_details" />
+<bridgehead renderas="sect4">Reversibility of Operations Pitfall</bridgehead>
+<para>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>date_time</code> library provides but there is one significant exception: The snap-to-end-of-month behavior implemented by the <link linkend="additional_duration_types">months</link> duration type. The <link linkend="additional_duration_types">months</link> duration type may provide unexpected results when the starting day is the 28th, 29th, or 30th in a 31 day month. The <link linkend="iterators_intro">month_iterator</link> is not affected by this issue and is therefore included in the examples to illustrate a possible alternative.
+</para>
+
+<para>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).
+ <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"
+ </programlisting>
+</para>
+
+<para>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.
+ <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" --> snap-to-end-of-month behavior kicks in
+ d += months(1); // "2006-Mar-31" --> unexpected result
+ d -= months(4); // "2005-Nov-30" --> unexpected result, not where we started
+
+ // using month_iterator
+ month_iterator itr(date(2005, Dec, 30));
+ ++itr; // "2006-Jan-30" --> ok
+ ++itr; // "2006-Feb-28" --> snap-to DOES NOT kick in
+ ++itr; // "2006-Mar-30" --> ok
+ --itr; // "2006-Feb-28" --> ok
+ --itr; // "2006-Jan-30" --> ok
+ --itr; // "2005-Dec-30" --> ok, back where we started
+ </programlisting>
+</para>
+
+<para>The additional duration types (<code>months</code>, <code>years</code>, and <code>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.</para>
+</para>
diff --git a/src/boost/libs/date_time/xmldoc/table_template.xml b/src/boost/libs/date_time/xmldoc/table_template.xml
new file mode 100644
index 000000000..358619f66
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/table_template.xml
@@ -0,0 +1,32 @@
+<!-- Copyright (c) 2004-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<!-- this file is here simply to make the creation of new tables easier and uniform in their layout -->
+
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>time_zone_ptr zone()</screen></entry>
+ <entry>Returns associated time_zone object via a time_zone_ptr</entry>
+ </row>
+ <row>
+ <entry><screen>the example...</screen></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
diff --git a/src/boost/libs/date_time/xmldoc/terminology.xml b/src/boost/libs/date_time/xmldoc/terminology.xml
new file mode 100644
index 000000000..bd29d1b57
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/terminology.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.terminology">
+ <title>Terminology</title>
+
+ <para>
+ The following are a number of terms relevant to the date-time domain.
+ </para>
+ <para>
+ A taxonomy of temporal types:
+ <itemizedlist mark="bullet">
+ <listitem>Timepoint -- Specifier for a location in the time continuum. Similar to a number on a ruler.</listitem>
+ <listitem>Timelength -- A duration of time unattached to any point on the time continuum.</listitem>
+ <listitem>Timeinterval -- A duration of time attached to a specific point in the time continuum.</listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ And some other terms:
+ <itemizedlist mark="bullet">
+ <listitem>Accuracy -- A measure of error, the difference between the reading of a clock and the true time.</listitem>
+ <listitem>Calendar System -- A system for labeling time points with day level resolution.</listitem>
+ <listitem>Clock Device -- A software component (tied to some hardware) that provides the current date or time with respect to a calendar or clock system.</listitem>
+ <listitem>Precision -- A measure of repeatability of a clock.</listitem>
+ <listitem>Resolution -- A specification of the smallest representable duration (eg: 1 second, 1 century) for a clock/calendar system or temporal type.</listitem>
+ <listitem>Stability -- The property of a class which says that the underlying representation (implementation) associated with a particular (abstract) value will never change.</listitem>
+ <listitem>Time System -- A system for labeling time points with higher resolution than day-level. </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Some standard date-time terminology:
+ <itemizedlist mark="bullet">
+ <listitem>Epoch -- Starting time point of a calendar or clock system.</listitem>
+ <listitem>DST -- Daylight savings time - a local time adjustment made in some regions during the summer to shift the clock time of the daylight hours</listitem>
+ <listitem>Time zone -- A region of the earth that provides for a 'local time' defined by DST rules and UT offset.</listitem>
+ <listitem>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 <ulink url="http://aa.usno.navy.mil/faq/docs/UT.html" /></listitem>
+ <listitem>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 <ulink url="http://www.bipm.fr/enus/5_Scientific/c_time/time_server.html" /></listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Some more experimental ones:
+ <itemizedlist mark="bullet">
+ <listitem>Local Time -- A time measured in a specific location of the universe.</listitem>
+ <listitem>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.</listitem>
+ <listitem>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. </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ These are design sorts of terms:
+ <itemizedlist mark="bullet">
+ <listitem>Generation function -- A function that generates a specific set of time points, lengths, or intervals based on one or more parameters. </listitem>
+ </itemizedlist>
+ </para>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/tests.xml b/src/boost/libs/date_time/xmldoc/tests.xml
new file mode 100644
index 000000000..91a3ca8b6
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/tests.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.tests">
+ <title>Tests</title>
+
+ <para>
+ The library provides a large number of tests in the
+ <programlisting>
+ libs/date_time/test
+ libs/date_time/test/gregorian
+ libs/date_time/test/posix_time
+ libs/date_time/test/local_time
+ </programlisting>
+ 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.
+ </para>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/time_duration.xml b/src/boost/libs/date_time/xmldoc/time_duration.xml
new file mode 100644
index 000000000..87be987f9
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/time_duration.xml
@@ -0,0 +1,621 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.posix_time.time_duration">
+ <title>Time Duration</title>
+
+ <link linkend="time_duration_intro">Introduction</link> --
+ <link linkend="time_duration_header">Header</link> --
+ <link linkend="time_duration_constr">Construction</link> --
+ <link linkend="time_duration_count_constr">Count Based Construction</link> --
+ <link linkend="time_duration_from_string">Construct from String</link> --
+ <link linkend="time_duration_accessors">Accessors</link> --
+ <link linkend="time_duration_to_string">Conversion To String</link> --
+ <link linkend="time_duration_operators">Operators</link> --
+ <link linkend="time_duration_struct_tm">Struct tm Functions</link>
+
+ <anchor id="time_duration_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>
+ 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 <link linkend="date_time.buildinfo">Build-Compiler Information</link> for more information.
+ </para>
+ <para>
+ <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</programlisting>
+ </para>
+ <para>
+ 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.
+ </para>
+ <imagedata fileref="../../libs/date_time/doc/time_duration_inherit.png" />
+ <para>
+ As an example:
+ <programlisting>using namespace boost::posix_time;
+
+time_duration td = hours(1) + seconds(10); //01:00:10
+td = hours(1) + nanoseconds(5); //01:00:00.000000005</programlisting>
+ Note that the existence of the higher resolution classes (eg: nanoseconds) depends on the installation of the library. See <link linkend="date_time.buildinfo">Build-Compiler Information</link> for more information.
+ </para>
+
+ <para>
+ 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:
+
+ <programlisting>
+count*(time_duration_ticks_per_second / count_ticks_per_second)
+ </programlisting>
+
+ 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.
+ <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
+ </programlisting>
+ </para>
+
+ <anchor id="time_duration_header" />
+ <bridgehead renderas="sect3">Header</bridgehead>
+ <para>
+ <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</programlisting>
+ </para>
+
+ <anchor id="time_duration_constr" />
+ <bridgehead renderas="sect3">Construction</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>time_duration(hours,
+ minutes,
+ seconds,
+ fractional_seconds)</screen></entry>
+ <entry>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 <link linkend="compile_options">Build-Compiler Information</link>). 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.</entry>
+ </row>
+ <row>
+ <entry><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 => "01:04:06.456789"
+// td3 => "01:02:03.001000"
+// with nanosecond resolution (9 digits)
+// td2 => "01:02:03.123456789"
+// td3 => "01:02:03.000001000"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top"><screen>time_duration(special_value sv)</screen></entry>
+ <entry>Special values constructor. <emphasis role="strong">Important note</emphasis>: When a time_duration is a special value, either by construction or other means, the following accessor functions will give unpredictable results: <screen>hours(), minutes(), seconds(), ticks(),
+fractional_seconds(), total_nanoseconds(),
+total_microseconds(), total_milliseconds(),
+total_seconds()</screen>The remaining accessor functions will work as expected.</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="time_duration_count_constr" />
+ <bridgehead renderas="sect3">Count Based Construction</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>hours(long)</screen></entry>
+ <entry>Number of hours</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td = hours(3);</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>minutes(long)</screen></entry>
+ <entry>Number of minutes</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td = minutes(3);</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>seconds(long)</screen></entry>
+ <entry> Number of seconds</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td = seconds(3);</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>milliseconds(long)</screen></entry>
+ <entry>Number of milliseconds.</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td = milliseconds(3);</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>microseconds(long)</screen></entry>
+ <entry>Number of microseconds.</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td = microseconds(3);</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>nanoseconds(long)</screen></entry>
+ <entry>Number of nanoseconds.</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td = nanoseconds(3);</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="time_duration_from_string" />
+ <bridgehead renderas="sect3">Construct from String</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>time_duration duration_from_string(std::string)</screen></entry>
+ <entry>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 <link linkend="date_time.buildinfo">Build-Compiler Information</link>.</entry>
+ </row>
+ <row>
+ <entry><screen>std::string ts("23:59:59.000");
+time_duration td(duration_from_string(ts));</screen>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="time_duration_accessors" />
+ <bridgehead renderas="sect3">Accessors</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>boost::int64_t hours()</screen></entry>
+ <entry>Get the number of normalized hours (will give unpredictable results if calling <code>time_duration</code> is a <code>special_value</code>).</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(1,2,3);
+time_duration neg_td(-1,2,3);
+td.hours(); // --> 1
+neg_td.hours(); // --> -1</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>boost::int64_t minutes()</screen></entry>
+ <entry>Get the number of minutes normalized +/-(0..59) (will give unpredictable results if calling <code>time_duration</code> is a <code>special_value</code>).</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(1,2,3);
+time_duration neg_td(-1,2,3);
+td.minutes(); // --> 2
+neg_td.minutes(); // --> -2</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>boost::int64_t seconds() const</screen></entry>
+ <entry>Get the normalized number of second +/-(0..59) (will give unpredictable results if calling <code>time_duration</code> is a <code>special_value</code>).</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(1,2,3);
+time_duration neg_td(-1,2,3);
+td.seconds(); // --> 3
+neg_td.seconds(); // --> -3</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>boost::int64_t total_seconds() const</screen></entry>
+ <entry>Get the total number of seconds truncating any fractional seconds (will give unpredictable results if calling <code>time_duration</code> is a <code>special_value</code>).</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(1,2,3,10);
+td.total_seconds();
+// --> (1*3600) + (2*60) + 3 == 3723</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>boost::int64_t total_milliseconds() const</screen></entry>
+ <entry>Get the total number of milliseconds truncating any remaining digits (will give unpredictable results if calling <code>time_duration</code> is a <code>special_value</code>).</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(1,2,3,123456789);
+td.total_milliseconds();
+// HMS --> (1*3600) + (2*60) + 3 == 3723 seconds
+// milliseconds is 3 decimal places
+// (3723 * 1000) + 123 == 3723123</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>boost::int64_t total_microseconds() const</screen></entry>
+ <entry>Get the total number of microseconds truncating any remaining digits (will give unpredictable results if calling <code>time_duration</code> is a <code>special_value</code>).</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(1,2,3,123456789);
+td.total_microseconds();
+// HMS --> (1*3600) + (2*60) + 3 == 3723 seconds
+// microseconds is 6 decimal places
+// (3723 * 1000000) + 123456 == 3723123456</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>boost::int64_t total_nanoseconds() const</screen></entry>
+ <entry>Get the total number of nanoseconds truncating any remaining digits (will give unpredictable results if calling <code>time_duration</code> is a <code>special_value</code>).</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(1,2,3,123456789);
+td.total_nanoseconds();
+// HMS --> (1*3600) + (2*60) + 3 == 3723 seconds
+// nanoseconds is 9 decimal places
+// (3723 * 1000000000) + 123456789
+// == 3723123456789</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>boost::int64_t fractional_seconds() const</screen></entry>
+ <entry>Get the number of fractional seconds (will give unpredictable results if calling <code>time_duration</code> is a <code>special_value</code>).</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(1,2,3, 1000);
+td.fractional_seconds(); // --> 1000</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_negative() const</screen></entry>
+ <entry>True if and only if duration is negative.</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(-1,0,0);
+td.is_negative(); // --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_zero() const</screen></entry>
+ <entry>True if and only if duration is zero.</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(0,0,0);
+td.is_zero(); // --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_positive() const</screen></entry>
+ <entry>True if and only if duration is positive.</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(1,0,0);
+td.is_positive(); // --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_duration invert_sign() const</screen></entry>
+ <entry>Generate a new duration with the sign inverted.</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(-1,0,0);
+td.invert_sign(); // --> 01:00:00</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_duration abs() const</screen></entry>
+ <entry>Generate a new duration with the absolute value of the time duration.</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(-1,0,0);
+td.abs(); // --> 01:00:00</screen></entry>
+ <entry><screen>time_duration td(+1,0,0);
+td.abs(); // --> 01:00:00</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>date_time::time_resolutions time_duration::resolution()</screen></entry>
+ <entry>Describes the resolution capability of the time_duration class. time_resolutions is an enum of resolution possibilities ranging from seconds to nanoseconds.</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration::resolution() --> nano</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>unsigned short time_duration::num_fractional_digits()</screen></entry>
+ <entry>Returns the number of fractional digits the time resolution has.</entry>
+ </row>
+ <row>
+ <entry><screen>unsigned short secs;
+secs = time_duration::num_fractional_digits();
+// 9 for nano, 6 for micro, etc.</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>boost::int64_t time_duration::ticks_per_second()</screen></entry>
+ <entry>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).</entry>
+ </row>
+ <row>
+ <entry><screen>std::cout &lt;&lt; time_duration::ticks_per_second();</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>boost::int64_t ticks()</screen></entry>
+ <entry>Return the raw count of the duration type (will give unpredictable results if calling <code>time_duration</code> is a <code>special_value</code>).</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(0,0,0, 1000);
+td.ticks() // --> 1000</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_duration time_duration::unit()</screen></entry>
+ <entry>Return smallest possible unit of duration type (1 nanosecond).</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration::unit() --> time_duration(0,0,0,1)</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_neg_infinity() const</screen></entry>
+ <entry>Returns true if time_duration is negative infinity</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(neg_infin);
+td.is_neg_infinity(); // --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_pos_infinity() const</screen></entry>
+ <entry>Returns true if time_duration is positive infinity</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(pos_infin);
+td.is_pos_infinity(); // --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_not_a_date_time() const</screen></entry>
+ <entry>Returns true if value is not a time</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(not_a_date_time);
+td.is_not_a_date_time(); // --> true</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_special() const</screen></entry>
+ <entry>Returns true if time_duration is any <code>special_value</code></entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(pos_infin);
+time_duration td2(not_a_date_time);
+time_duration td3(2,5,10);
+td.is_special(); // --> true
+td2.is_special(); // --> true
+td3.is_special(); // --> false</screen></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="time_duration_to_string" />
+ <bridgehead renderas="sect3">Conversion To String</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string to_simple_string(time_duration)</screen></entry>
+ <entry>To <code>HH:MM:SS.fffffffff</code> were <code>fff</code> is fractional seconds that are only included if non-zero.</entry>
+ </row>
+ <row>
+ <entry><screen>10:00:01.123456789</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string to_iso_string(time_duration)</screen></entry>
+ <entry>Convert to form <code>HHMMSS,fffffffff</code>.</entry>
+ </row>
+ <row>
+ <entry><screen>100001,123456789</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="time_duration_operators" />
+ <bridgehead renderas="sect3">Operators</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&lt;&lt;, operator&gt;&gt;</screen></entry>
+ <entry>Streaming operators. <emphasis role="strong">Note:</emphasis> As of version 1.33, streaming operations have been greatly improved. See <link linkend="date_time.date_time_io">Date Time IO System</link> for more details (including exceptions and error conditions).</entry>
+ </row>
+ <row>
+ <entry><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"
+ </screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator==, operator!=,
+operator>, operator&lt;,
+operator>=, operator&lt;=</screen>
+ </entry>
+ <entry>A full complement of comparison operators</entry>
+ </row>
+ <row>
+ <entry><screen>dd1 == dd2, etc</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_duration operator+(time_duration)</screen></entry>
+ <entry>Add durations.</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td1(hours(1)+minutes(2));
+time_duration td2(seconds(10));
+time_duration td3 = td1 + td2;</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_duration operator-(time_duration)</screen></entry>
+ <entry>Subtract durations.</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td1(hours(1)+nanoseconds(2));
+time_duration td2 = td1 - minutes(1);</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_duration operator/(int)</screen></entry>
+ <entry>Divide the length of a duration by an integer value. Discards any remainder.</entry>
+ </row>
+ <row>
+ <entry><screen>hours(3)/2 == time_duration(1,30,0);
+nanosecond(3)/2 == nanosecond(1);</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_duration operator*(int)</screen></entry>
+ <entry>Multiply the length of a duration by an integer value.</entry>
+ </row>
+ <row>
+ <entry><screen>hours(3)*2 == hours(6);</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <anchor id="time_duration_struct_tm" />
+ <bridgehead renderas="sect3">Struct tm, time_t, and FILETIME Functions</bridgehead>
+ <para>Function for converting a time_duration to a <code>tm</code> struct is provided.</para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>tm to_tm(time_duration)</screen></entry>
+ <entry>A function for converting a <code>time_duration</code> object to a <code>tm</code> struct. The fields: <code>tm_year</code>, <code>tm_mon</code>, <code>tm_mday</code>, <code>tm_wday</code>, <code>tm_yday</code> are set to zero. The <code>tm_isdst</code> field is set to -1.</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(1,2,3);
+tm td_tm = to_tm(td);
+/* tm_year => 0
+ tm_mon => 0
+ tm_mday => 0
+ tm_wday => 0
+ tm_yday => 0
+ tm_hour => 1
+ tm_min => 2
+ tm_sec => 3
+ tm_isdst => -1 */</screen>
+ </entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/time_facet.xml b/src/boost/libs/date_time/xmldoc/time_facet.xml
new file mode 100644
index 000000000..2fcacb87d
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/time_facet.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.time_facet">
+ <title>Time Facet</title>
+
+ <link linkend="time_facet_intro">Introduction</link> -
+ <link linkend="time_facet_constr">Construction</link> -
+ <link linkend="time_facet_accessors">Accessors</link>
+
+ <anchor id="time_facet_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>The <code>boost::date_time::time_facet</code> is an extension of the <code>boost::date_time::date_facet</code>. The time_facet is typedef'ed in the <code>posix_time</code> namespace as <code>time_facet</code> and <code>wtime_facet</code>. It is typedef'd in the <code>local_time</code> namespace as <code>local_time_facet</code> and <code>wlocal_time_facet</code>.
+ </para>
+
+ <anchor id="time_facet_constr" />
+ <bridgehead renderas="sect3">Construction</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top"><screen>time_facet()</screen></entry>
+ <entry>Default constructor</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>time_facet(...)
+ Parameters:
+ char_type* format
+ period_formatter_type
+ special_values_formatter_type
+ date_gen_formatter_type</screen></entry>
+ <entry>Format given will be used for time output. The remaining parameters are formatter objects. Further details on these objects can be found <link linkend="date_time.io_objects">here</link>. This constructor also provides default arguments for all parameters except the format. Therefore, <code>time_facet("%H:%M:S %m %d %Y")</code> will work.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <anchor id="time_facet_accessors" />
+ <bridgehead renderas="sect3">Accessors</bridgehead>
+ <para>
+ 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 <link linkend="date_time.date_facet">this</link> link.
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>void time_duration_format(...)
+ Parameter:
+ char_type*</screen></entry>
+ <entry>Sets the time_duration format. The time_duration format has the ability to display the sign of the duration. The <code>'%+'</code> flag will always display the sign. The <code>'%-'</code> will only display if the sign is negative. Currently the '-' and '+' characters are used to denote the sign.</entry>
+ </row>
+ <row>
+ <entry><screen>f->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"
+ </screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void set_iso_format()</screen></entry>
+ <entry>Sets the date and time format to ISO.</entry>
+ </row>
+ <row>
+ <entry><screen>f->set_iso_format();
+// "%Y%m%dT%H%M%S%F%q"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void set_iso_extended_format()</screen></entry>
+ <entry>Sets the date and time format to ISO Extended</entry>
+ </row>
+ <row>
+ <entry><screen>f->set_iso_extended_format();
+// "%Y-%m-%d %H:%M:%S%F%Q"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put(...)
+ Common parameters for all
+ 'put' functions:
+ OutItrT
+ ios_base
+ char_type
+ Unique parameter for 'put' funcs:
+ posix_time object</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put(..., ptime)</screen></entry>
+ <entry>Puts a ptime object into the stream using the format set by <code>format(...)</code> or the default.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put(..., time_duration)</screen></entry>
+ <entry>Puts a time_duration object into the stream using the format set by <code>time_duration_format(...)</code> or the default.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>OutItrT put(..., time_period)</screen></entry>
+ <entry>Puts a time_period into the stream. The format of the dates and times will use the format set by <code>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.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+</section>
+
+
diff --git a/src/boost/libs/date_time/xmldoc/time_input_facet.xml b/src/boost/libs/date_time/xmldoc/time_input_facet.xml
new file mode 100644
index 000000000..f74c3994b
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/time_input_facet.xml
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.time_input_facet">
+ <title>Time Input Facet</title>
+
+ <link linkend="time_input_facet_intro">Introduction</link> -
+ <link linkend="time_input_facet_constr">Construction</link> -
+ <link linkend="time_input_facet_accessors">Accessors</link>
+
+ <anchor id="time_input_facet_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>The <code>boost::date_time::time_input_facet</code> is an extension of the <code>date_input_facet</code>. It is typedef'ed in the <code>boost::posix_time</code> namespace as <code>time_input_facet</code> and <code>wtime_input_facet</code>. It is typedef'ed in the <code>boost::local_time</code> namespace as <code>local_time_input_facet</code> and <code>wlocal_time_input_facet</code>.
+ </para>
+
+ <anchor id="time_input_facet_constr" />
+ <bridgehead renderas="sect3">Construction</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top"><screen>time_input_facet()</screen></entry>
+ <entry>Default constructor</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>time_input_facet(string_type)</screen></entry>
+ <entry>Format given will be used for date/time input. All other formats will use their defaults.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>time_input_facet(...)
+ Parameters:
+ string_type format
+ format_date_parser_type
+ special_values_parser_type
+ period_parser_type
+ date_gen_parser_type</screen></entry>
+<entry>Format given will be used for date/time input. The remaining parameters are parser objects. Further details on these objects can be found <link linkend="date_time.io_objects">here</link>.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <anchor id="time_input_facet_accessors" />
+ <bridgehead renderas="sect3">Accessors</bridgehead>
+ <para>
+ 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 <link linkend="date_time.date_input_facet">this</link> link.
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void set_iso_format()</screen></entry>
+ <entry>Sets the time format to ISO</entry>
+ </row>
+ <row>
+ <entry><screen>f->set_iso_format();
+// "%Y%m%dT%H%M%S%F%q"
+"20051225T132536.789-0700"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void set_iso_extended_format()</screen></entry>
+ <entry>Sets the date format to ISO Extended</entry>
+ </row>
+ <row>
+ <entry><screen>f->set_iso_extended_format();
+// "%Y-%m-%d %H:%M:%S%F %Q"
+"2005-12-25 13:25:36.789 -07:00"</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>void time_duration_format(...)
+ Parameter:
+ char_type*</screen></entry>
+ <entry>Sets the time_duration format.</entry>
+ </row>
+ <row>
+ <entry><screen>f->time_duration_format("%H:%M");
+// hours and minutes only</screen></entry>
+ </row>
+
+
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get(...)
+ Common parameters for all
+ 'get' functions:
+ InItrT from
+ InItrT to
+ ios_base
+ Unique parameter for 'get' funcs:
+ gregorian object</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get(..., ptime)</screen></entry>
+ <entry>Gets a ptime object from the stream using the format set by <code>format(...)</code> or the default.</entry>
+ </row>
+ <row>
+ <entry><screen>ss.str("2005-Jan-01 13:12:01");
+ss >> pt; // default format</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get(..., time_duration)</screen></entry>
+ <entry>Gets a time_duration object from the stream using the format set by <code>time_duration_format(...)</code> or the default.</entry>
+ </row>
+ <row>
+ <entry><screen>ss.str("01:25:15.000123000");
+ss >> td; // default format</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get(..., time_period)</screen></entry>
+ <entry>Gets a time_period from the stream. The format of the dates/times will use the format set by <code>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.</entry>
+ </row>
+ <row>
+ <entry>see the <link linkend="date_time.io_tutorial">tutorial</link> for a complete example.</entry>
+ </row>
+
+ <!-- This should be changed later
+ <row>
+ <entry valign="top" morerows="1"><screen>InItrT get_local_time(..., local_date_time)</screen></entry>
+ <entry>Gets a local_date_time object from the stream using the format set by <code>format(...)</code> or the default.</entry>
+ </row>
+ <row>
+ <entry><screen></screen></entry>
+ </row>
+ -->
+
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/time_iterators.xml b/src/boost/libs/date_time/xmldoc/time_iterators.xml
new file mode 100644
index 000000000..cb51404bb
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/time_iterators.xml
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.posix_time.time_iterators">
+ <title>Time Iterators</title>
+
+ <link linkend="time_iter_intro">Introduction</link> --
+ <link linkend="time_iter_header">Header</link> --
+ <link linkend="time_iter_overview">Overview</link> --
+ <link linkend="time_iter_operators">Operators</link>
+
+ <anchor id="time_iter_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>
+ Time iterators provide a mechanism for iteration through times. Time iterators are similar to <ulink url="http://www.sgi.com/tech/stl/BidirectionalIterator.html">Bidirectional Iterators</ulink>. 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 <link linkend="date_time.posix_time.ptime_class">class ptime</link>. 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 <link linkend="date_time.examples.print_hours">print hours</link> example also illustrates the use of the time_iterator.
+ </para>
+ <para>
+ <programlisting>
+ <![CDATA[
+ #include "boost/date_time/posix_time/posix_time.hpp"
+ #include <iostream>
+
+
+ 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 < end) {
+ std::cout << to_simple_string(*titr) << std::endl;
+ ++titr;
+ }
+ std::cout << "Now backward" << std::endl;
+ //produces 01:00:00, 00:45:00, 00:30:00, 00:15:00
+ while (titr > start) {
+ std::cout << to_simple_string(*titr) << std::endl;
+ --titr;
+ }
+ }
+ ]]>
+ </programlisting>
+ </para>
+
+ <anchor id="time_iter_header" />
+ <bridgehead renderas="sect3">Header</bridgehead>
+ <para>
+ <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</programlisting>
+ </para>
+
+ <anchor id="time_iter_overview" />
+ <bridgehead renderas="sect3">Overview</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Class</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Construction Parameters</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>time_iterator</screen></entry>
+ <entry>Iterate incrementing by the specified duration.</entry>
+ </row>
+ <row>
+ <entry><screen>ptime start_time, time_duration increment</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="time_iter_operators" />
+ <bridgehead renderas="sect3">Operators</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>operator==(const ptime&amp; rhs),
+operator!=(const ptime&amp; rhs),
+operator>, operator&lt;,
+operator>=, operator&lt;=</screen>
+ </entry>
+ <entry>A full complement of comparison operators</entry>
+ </row>
+ <row>
+ <entry><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 >= end_time) // false
+if (titr &lt;= end_time) // true</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>prefix increment</screen></entry>
+ <entry>Increment the iterator by the specified duration.</entry>
+ </row>
+ <row>
+ <entry><screen>//increment by 10 milli seconds
+time_iterator titr(start_time, milliseconds(10));
+++titr; // == start_time + 10 milliseconds</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>prefix decrement</screen></entry>
+ <entry>Decrement the iterator by the specified time duration.</entry>
+ </row>
+ <row>
+ <entry><screen>time_duration td(1,2,3);
+time_iterator titr(start_time, td);
+--titr; // == start_time - 01:02:03</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/time_period.xml b/src/boost/libs/date_time/xmldoc/time_period.xml
new file mode 100644
index 000000000..ba451aabd
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/time_period.xml
@@ -0,0 +1,396 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2006 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.posix_time.time_period">
+ <title>Time Period</title>
+
+ <link linkend="time_period_intro">Introduction</link> --
+ <link linkend="time_period_header">Header</link> --
+ <link linkend="time_period_constr">Construction</link> --
+ <link linkend="time_period_mutators">Mutators</link> --
+ <link linkend="time_period_accessors">Accessors</link> --
+ <link linkend="time_period_to_string">Conversion To String</link> --
+ <link linkend="time_period_operators">Operators</link>
+
+ <anchor id="time_period_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>
+ 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.
+ </para>
+ <para>
+ 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>last</code> point will always be one unit less that the <code>begin</code> point.
+ </para>
+ <para>
+ The <link linkend="date_time.examples.time_periods">time periods example</link> provides an example of using time periods.
+ </para>
+
+ <anchor id="time_period_header" />
+ <bridgehead renderas="sect3">Header</bridgehead>
+ <para>
+ <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</programlisting>
+ </para>
+
+ <anchor id="time_period_constr" />
+ <bridgehead renderas="sect3">Construction</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>time_period(ptime,
+ ptime)</screen></entry>
+ <entry> Create a period as [begin, end). If end is &lt;= begin then the period will be defined as invalid.</entry>
+ </row>
+ <row>
+ <entry><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);</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_period(ptime,
+ time_duration)</screen></entry>
+ <entry> 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.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2002,Jan,01);
+ptime t(d, seconds(10)); //10 sec after midnight
+time_period tp(t, hours(3));</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_period(time_period rhs)</screen></entry>
+ <entry> Copy constructor</entry>
+ </row>
+ <row>
+ <entry><screen>time_period tp1(tp);</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="time_period_mutators" />
+ <bridgehead renderas="sect3">Mutators</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_period shift(time_duration)</screen></entry>
+ <entry>Add duration to both begin and end.</entry>
+ </row>
+ <row>
+ <entry>
+ <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
+ </screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_period expand(days)</screen></entry>
+ <entry>Subtract duration from begin and add duration to end.</entry>
+ </row>
+ <row>
+ <entry>
+ <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
+ </screen>
+ </entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="time_period_accessors" />
+ <bridgehead renderas="sect3">Accessors</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime begin()</screen></entry>
+ <entry>Return first time of period.</entry>
+ </row>
+ <row>
+ <entry><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(); // --> 2002-Jan-01 00:00:10</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime last()</screen></entry>
+ <entry>Return last time in the period</entry>
+ </row>
+ <row>
+ <entry><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();// --> 2002-Jan-01 09:59:59.999999999</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>ptime end()</screen></entry>
+ <entry> Return one past the last in period</entry>
+ </row>
+ <row>
+ <entry><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(); // --> 2002-Jan-01 10:00:00</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_duration length()</screen></entry>
+ <entry>Return the length of the time period.</entry>
+ </row>
+ <row>
+ <entry><screen>date d(2002,Jan,01);
+ptime t1(d); //midnight
+time_period tp(t1, hours(1));
+tp.length() --> 1 hour</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool is_null()</screen></entry>
+ <entry>True if period is not well formed. eg: end is less than or equal to begin.</entry>
+ </row>
+ <row>
+ <entry><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</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool contains(ptime)</screen></entry>
+ <entry>True if ptime is within the period. Zero length periods cannot contain any points.</entry>
+ </row>
+ <row>
+ <entry><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</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool contains(time_period)</screen></entry>
+ <entry>True if period is within the period</entry>
+ </row>
+ <row>
+ <entry><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); // --> true
+tp2.contains(tp1); // --> false</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool intersects(time_period)</screen></entry>
+ <entry> True if periods overlap</entry>
+ </row>
+ <row>
+ <entry><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); // --> true</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_period intersection(time_period)</screen></entry>
+ <entry>Calculate the intersection of 2 periods. Null if no intersection.</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_period merge(time_period)</screen></entry>
+ <entry>Returns union of two periods. Null if no intersection.</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_period span(time_period)</screen></entry>
+ <entry>Combines two periods and any gap between them such that begin = min(p1.begin, p2.begin) and end = max(p1.end , p2.end).</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="time_period_to_string" />
+ <bridgehead renderas="sect3">Conversion To String</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>std::string
+ to_simple_string(time_period dp)</screen></entry>
+ <entry>To <code>[YYYY-mmm-DD hh:mm:ss.fffffffff/YYYY-mmm-DD hh:mm:ss.fffffffff]</code> string where <code>mmm</code> is 3 char month name.</entry>
+ </row>
+ <row>
+ <entry><screen>[2002-Jan-01 01:25:10.000000001/
+ 2002-Jan-31 01:25:10.123456789]
+// string occupies one line</screen></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+
+ <anchor id="time_period_operators" />
+ <bridgehead renderas="sect3">Operators</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&lt;&lt;</screen></entry>
+ <entry>Output streaming operator for time duration. Uses facet to output [date time_of_day/date time_of_day]. The default is format is <code>[YYYY-mmm-DD hh:mm:ss.fffffffff/YYYY-mmm-DD hh:mm:ss.fffffffff]</code> string where <code>mmm</code> is 3 char month name and the fractional seconds are left out when zero.</entry>
+ </row>
+ <row>
+ <entry><screen>[2002-Jan-01 01:25:10.000000001/ \
+ 2002-Jan-31 01:25:10.123456789]</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&gt;&gt;</screen></entry>
+ <entry>Input streaming operator for time duration. Uses facet to read [date time_of_day/date time_of_day]. The default is format is <code>[YYYY-mmm-DD hh:mm:ss.fffffffff/YYYY-mmm-DD hh:mm:ss.fffffffff]</code> string where <code>mmm</code> is 3 char month name and the fractional seconds are left out when zero.</entry>
+ </row>
+ <row>
+ <entry><screen>[2002-Jan-01 01:25:10.000000001/ \
+ 2002-Jan-31 01:25:10.123456789]</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator==, operator!=</screen></entry>
+ <entry>Equality operators. Periods are equal if p1.begin == p2.begin &amp;&amp; p1.last == p2.last</entry>
+ </row>
+ <row>
+ <entry><screen>if (tp1 == tp2) {...</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&lt;</screen></entry>
+ <entry>Ordering with no overlap. True if tp1.end() less than tp2.begin()</entry>
+ </row>
+ <row>
+ <entry><screen>if (tp1 &lt; tp2) {...</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&gt;</screen></entry>
+ <entry>Ordering with no overlap. True if tp1.begin() greater than tp2.end()</entry>
+ </row>
+ <row>
+ <entry><screen>if (tp1 > tp2) {... etc</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>operator&lt;=, operator&gt;=</screen></entry>
+ <entry>Defined in terms of the other operators.</entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/time_zone_base.xml b/src/boost/libs/date_time/xmldoc/time_zone_base.xml
new file mode 100644
index 000000000..53ddc2862
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/time_zone_base.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.local_time.time_zone_base">
+ <title>Time Zone (abstract)</title>
+
+ <link linkend="time_zone_base_intro">Introduction</link> --
+ <link linkend="time_zone_base_header">Header</link> --
+ <link linkend="time_zone_base_constr">Construction</link> --
+ <link linkend="time_zone_base_accessors">Accessors</link>
+
+ <anchor id="time_zone_base_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>
+ 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.
+ </para>
+ <para>
+ 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.
+ </para>
+
+ <anchor id="time_zone_base_header" />
+ <bridgehead renderas="sect3">Header</bridgehead>
+ <para>
+ The time_zone_base class is defined in the header:
+ <programlisting>#include "boost/date_time/time_zone_base.hpp"
+ </programlisting>
+ </para>
+
+ <anchor id="time_zone_base_constr" />
+ <bridgehead renderas="sect3">Construction</bridgehead>
+ <para>
+ A default constructor is provided in the time_zone_base class. There are no private data members in this base class to initialize.
+ </para>
+ <para>
+ Template parameters are time_type (typically posix_time::ptime) and CharT (defaults to char).
+ </para>
+
+ <anchor id="time_zone_base_accessors" />
+ <bridgehead renderas="sect3">Accessors</bridgehead>
+ <para>
+ All of the accessors listed here are pure virtual functions.
+ </para>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top"><screen>
+string_type dst_zone_abbrev();</screen></entry>
+ <entry>Returns the daylight savings abbreviation for the represented time zone.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>
+string_type std_zone_abbrev();</screen></entry>
+ <entry>Returns the standard abbreviation for the represented time zone.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>
+string_type dst_zone_name();</screen></entry>
+ <entry>Returns the daylight savings name for the represented time zone.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>
+string_type std_zone_name();</screen></entry>
+ <entry>Returns the standard name for the represented time zone.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>bool has_dst();</screen></entry>
+ <entry>Returns true if this time zone does not make a daylight savings shift.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>
+time_type dst_local_start_time(year_type);</screen></entry>
+ <entry>The date and time daylight savings time begins in given year.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>
+time_type dst_local_end_time(year_type);</screen></entry>
+ <entry valign="top">The date and time daylight savings time ends in given year.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>
+time_duration_type base_utc_offset();</screen></entry>
+ <entry>The amount of time offset from UTC (typically in hours).</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>
+time_duration_type dst_offset();</screen></entry>
+ <entry>The amount of time shifted during daylight savings.</entry>
+ </row>
+ <row>
+ <entry valign="top"><screen>
+std::string to_posix_string();</screen></entry>
+ <entry>Returns a posix time zone string representation of this time_zone_base object. For a detailed description of a posix time zone string see <link linkend="date_time.local_time.posix_time_zone">posix_time_zone</link>.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/tradeoffs.xml b/src/boost/libs/date_time/xmldoc/tradeoffs.xml
new file mode 100644
index 000000000..4b72f9697
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/tradeoffs.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.tradeoffs">
+ <title>Tradeoffs: Stability, Predictability, and Approximations</title>
+ <bridgehead renderas="sect2">
+ Unavoidable Trade-offs
+ </bridgehead>
+ <para>
+ The library does its best to provide everything a user could want, but there are certain inherent constraints that limit what <emphasis>any</emphasis> temporal library can do. Specifically, a user must choose which two of the following three capabilities are desired in any particular application:
+ <itemizedlist mark="bullet">
+ <listitem>exact agreement with wall-clock time</listitem>
+ <listitem>accurate math, e.g. duration calculations</listitem>
+ <listitem>ability to handle timepoints in the future</listitem>
+ </itemizedlist>
+ 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:
+ </para>
+ <para>
+ 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.
+ </para>
+ <para>
+ 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.
+ </para>
+ <para>
+ 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.
+ </para>
+
+ <bridgehead renderas="sect2">
+ Stability, Predictability, and Approximations
+ </bridgehead>
+ <para>
+ 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.
+ </para>
+
+ <bridgehead renderas="sect3">
+ Stability
+ </bridgehead>
+ <para>
+ The representation of a type is <emphasis>stable</emphasis> 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.
+ </para>
+ <para>
+ An operation on a type is stable if the result of applying the operation to a particular operand(s) does not change over time.
+ </para>
+
+ <bridgehead renderas="sect3">
+ Predictability
+ </bridgehead>
+ <para>
+ 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 <emphasis>is_member( x )</emphasis> which determines whether a value x is a member of type T. This predicate must return <emphasis>true, false,</emphasis> or <emphasis>dont_know</emphasis>.
+ </para>
+ <para>
+ If for all x, is_member( x ) returns either true or false, we say the set T is <emphasis>well-defined</emphasis>.
+ </para>
+ <para>
+ If for any x, is_member( x ) returns dont_know, we say the set T is <emphasis>ill-defined</emphasis>.
+ </para>
+ <para>
+ 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:
+ </para>
+ <para>
+ For any temporal type T, there must be a predicate <emphasis>is_member( x, t )</emphasis> 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<subscript>i</subscript>, there must be a time t<subscript>i</subscript> and a value v such that:
+ <itemizedlist mark="bullet">
+ <listitem>v = true or v = false, and</listitem>
+ <listitem>for all t &lt; t<subscript>i</subscript>, is_member( x<subscript>i</subscript>, t ) returns dont_know, and</listitem>
+ <listitem>for all t >= t<subscript>i</subscript>, is_member( x<subscript>i</subscript>, t ) returns v.</listitem>
+ </itemizedlist>
+ t<subscript>i</subscript> is thus the time when we "find out" whether x<subscript>i</subscript> is a member of T. Now we can define three categories of temporal types:
+ </para>
+ <para>
+ If for all x<subscript>i</subscript>, t<subscript>i</subscript> = negative infinity, we say the type T is <emphasis>predictable</emphasis>.
+ </para>
+ <para>
+ If for some x<subscript>i</subscript>, t<subscript>i</subscript> = positive infinity, we say the type T is <emphasis>ill-formed</emphasis>.
+ </para>
+ <para>
+ Otherwise we say the type T is <emphasis>unpredictable</emphasis> (this implies that for some x<subscript>i</subscript>, t<subscript>i</subscript> is finite).
+ </para>
+ <para>
+ 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.
+ </para>
+
+ <bridgehead renderas="sect3">
+ Stability of Operations
+ </bridgehead>
+ <para>
+ Predictable types have a couple of important properties:
+ <itemizedlist mark="bullet">
+ <listitem>there is an order-preserving mapping from their elements onto a set of consecutive integers, and</listitem>
+ <listitem>duration operations on their values are stable</listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ 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.
+ </para>
+ <para>
+ Unpredictable types have exactly the opposite properties:
+ <itemizedlist mark="bullet">
+ <listitem>there is no order-preserving mapping from their elements onto a set of consecutive integers, and</listitem>
+ <listitem>duration operations on their values are not stable. </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Examples of unpredictable types are UTC timepoints and Local Time timepoints.
+ </para>
+ <para>
+ 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.
+ </para>
+
+ <bridgehead renderas="sect3">
+ Approximations
+ </bridgehead>
+ <para>
+ 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.
+ </para>
+ <para>
+ 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.
+ </para>
+ <para>
+ 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.
+ </para>
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/tz_database.xml b/src/boost/libs/date_time/xmldoc/tz_database.xml
new file mode 100644
index 000000000..b47ad1f9e
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/tz_database.xml
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.local_time.tz_database">
+ <title>Time Zone Database</title>
+
+ <link linkend="tz_database_intro">Introduction</link> --
+ <link linkend="tz_database_header">Header</link> --
+ <link linkend="tz_database_constr">Construction</link> --
+ <link linkend="tz_database_accessors">Accessors</link> --
+ <link linkend="tz_database_datafile">Data File Details</link>
+
+ <anchor id="tz_database_intro" />
+ <bridgehead renderas="sect3">Introduction</bridgehead>
+ <para>
+ 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 <ulink url="http://www.twinsun.com/tz/tz-link.htm">zoneinfo datebase</ulink>. The specifications are stored in the file:<screen>libs/date_time/data/date_time_zonespec.csv</screen>. 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 <link linkend="tz_database_datafile">Data File Details</link> to learn how this is accomplished.
+ </para>
+
+ <anchor id="tz_database_header" />
+ <bridgehead renderas="sect3">Header</bridgehead>
+ <para>
+ The inclusion of a single header will bring in all boost::local_time types, functions, and IO operators.
+ <programlisting>#include "boost/date_time/local_time/local_time.hpp"
+ </programlisting>
+ </para>
+
+ <anchor id="tz_database_constr" />
+ <bridgehead renderas="sect3">Construction</bridgehead>
+ <para>
+ 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>add_record(...)</code> function (see the <link linkend="tz_database_accessors">Accessors table</link>). A <code>local_time::data_not_accessible</code> exception will be thrown if given zonespec file cannot be found. <code>local_time::bad_field_count</code> exception will be thrown if the number of fields in given zonespec file is incorrect.
+ </para>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>tz_database()</screen></entry>
+ <entry>Constructor creates an empty database.</entry>
+ </row>
+ <row>
+ <entry><screen>tz_database tz_db;</screen></entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>bool load_from_file(std::string)</screen></entry>
+ <entry>Parameter is path to a time zone spec csv file (see <link linkend="tz_database_datafile">Data File Details</link> 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>local_time::data_not_accessible</code> exception will be thrown if given zonespec file cannot be found. <code>local_time::bad_field_count</code> exception will be thrown if the number of fields in given zonespec file is incorrect.</entry>
+ </row>
+ <row>
+ <entry><screen>tz_database tz_db;
+tz_db.load_from_file("./date_time_zonespec.csv");</screen>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <anchor id="tz_database_accessors" />
+ <bridgehead renderas="sect3">Accessors</bridgehead>
+ <para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry valign="top" morerows="1">Syntax</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Example</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry valign="top" morerows="1"><screen>bool tz_db.add_record(std::string id,
+ <link linkend="date_time.local_time.custom_time_zone_ptr">time_zone_ptr</link> tz);</screen></entry>
+ <entry>Adds a time_zone, or a posix_time_zone, to the database. ID is the region name for this zone (Ex: "America/Phoenix").</entry>
+ </row>
+ <row>
+ <entry><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);</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>time_zone_ptr
+ tz_db.time_zone_from_region(string id);</screen></entry>
+ <entry>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.
+ </entry>
+ </row>
+ <row>
+ <entry><screen>time_zone_ptr nyc =
+ tz_db.time_zone_from_region("America/New_York");</screen>
+ </entry>
+ </row>
+
+ <row>
+ <entry valign="top" morerows="1"><screen>vector&lt;string&gt; tz_db.region_list();</screen></entry>
+ <entry>Returns a vector of strings that holds all the region ID strings from the database.</entry>
+ </row>
+ <row>
+ <entry><screen>std::vector&lt;std::string&gt; regions;
+regions = tz_db.region_list();</screen>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <anchor id="tz_database_datafile" />
+ <bridgehead renderas="sect3">Data File Details</bridgehead>
+ <link linkend="tz_database_fields">Field Description/Details</link>
+ <para>
+ 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.
+ </para>
+ <para>
+ This first line is expected to contain column headings and is therefore
+not processed by the tz_database.
+ </para>
+ <para>
+ 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.
+ <literallayout>
+ Ex:
+ "America/Phoenix" &lt;- string enclosed in quotes
+ "" &lt;- empty field
+ </literallayout>
+ </para>
+ <para>
+ Some fields represent a length of time. The format of these fields must be:
+ <literallayout>
+ "{+|-}hh:mm[:ss]" &lt;- length-of-time format
+ </literallayout>
+ Where the plus or minus is mandatory and the seconds are optional.
+ </para>
+ <para>
+ 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).
+ </para>
+
+ <anchor id="tz_database_fields" />
+ <bridgehead renderas="sect3">Field Description/Details</bridgehead>
+ <para>
+ <itemizedlist>
+ <listitem>
+ ID
+ <para>
+ 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.
+ </para>
+ </listitem>
+ <listitem>
+ STD ABBR
+ </listitem>
+ <listitem>
+ STD NAME
+ </listitem>
+ <listitem>
+ DST ABBR
+ </listitem>
+ <listitem>
+ DST NAME
+ <para>
+ 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.
+ </para>
+ </listitem>
+ <listitem>
+ GMT offset
+ <para>
+ 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.
+ </para>
+ </listitem>
+ <listitem>
+ DST adjustment
+ <para>
+ 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.
+ </para>
+ <para>
+ NOTE: more rule capabilities are needed - this portion of the tz_database is incomplete
+ </para>
+ </listitem>
+ <listitem>
+ DST Start Date rule
+ <para>
+ 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.
+ <orderedlist>
+ <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).
+ </listitem>
+ <listitem>
+ The second field indicates the day-of-week from 0-6 (Sun=0).
+ </listitem>
+ <listitem>
+ The third field indicates the month from 1-12 (Jan=1).
+ </listitem>
+ </orderedlist>
+ Examples are: "-1;5;9"="Last Friday of September", "2;1;3"="Second Monday of March"
+ </para>
+ </listitem>
+ <listitem>
+ Start time
+ <para>
+ 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.
+ </para>
+ </listitem>
+ <listitem>
+ DST End date rule
+ <para>
+ See DST Start date rule. The difference here is this is the day daylight savings ends (transition to STD).
+ </para>
+ </listitem>
+ <listitem>
+ End time
+ <para>
+ Same as Start time.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+</section>
diff --git a/src/boost/libs/date_time/xmldoc/usage_examples.xml b/src/boost/libs/date_time/xmldoc/usage_examples.xml
new file mode 100644
index 000000000..541be695c
--- /dev/null
+++ b/src/boost/libs/date_time/xmldoc/usage_examples.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+"../../../tools/boostbook/dtd/boostbook.dtd">
+
+<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
+ Subject to the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="date_time.examples.general_usage_examples">
+ <title>General Usage Examples</title>
+
+ <para>
+ The following provides some sample usage of dates.
+ See <link linkend="date_time.gregorian">Date Programming</link>
+ for more details.
+
+ <programlisting><emphasis role="keyword">using namespace</emphasis> boost::gregorian;
+ date weekstart(<emphasis role="number">2002</emphasis>,Feb,<emphasis role="number">1</emphasis>);
+ date weekend = weekstart + weeks(<emphasis role="number">1</emphasis>);
+ date d2 = d1 + days(<emphasis role="number">5</emphasis>);
+ date today = day_clock::local_day();
+ if (d2 &gt;= today) {} <emphasis role="comment">//date comparison operators</emphasis>
+
+ date_period thisWeek(d1,d2);
+ <emphasis role="keyword">if</emphasis> (thisWeek.contains(today)) {}<emphasis role="comment">//do something
+
+ //iterate and print the week</emphasis>
+ day_iterator itr(weekstart);
+ <emphasis role="keyword">while</emphasis> (itr &lt;= weekend) {
+ std::cout &lt;&lt; (*itr) &lt;&lt; std::endl;
+ ++itr;
+ }
+ <emphasis role="comment">//input streaming</emphasis>
+ std::stringstream ss(<emphasis role="string">"2004-Jan-1"</emphasis>);
+ ss &gt;&gt; d3;
+
+ <emphasis role="comment">//date generator functions</emphasis>
+ date d5 = next_weekday(d4, Sunday); <emphasis role="comment">//calculate Sunday following d4
+
+ //US labor day is first Monday in Sept</emphasis>
+ <emphasis role="keyword">typedef</emphasis> nth_day_of_the_week_in_month nth_dow;
+ nth_dow labor_day(nth_dow::first,Monday, Sep);
+ <emphasis role="comment">//calculate a specific date for 2004 from functor</emphasis>
+ date d6 = labor_day.get_date(<emphasis role="number">2004</emphasis>);
+ </programlisting>
+
+ The following provides some example code using times.
+ See <link linkend="date_time.posix_time">Time Programming</link>
+ for more details.
+
+ <programlisting><emphasis role="keyword">using namespace</emphasis> boost::posix_time;
+ date d(<emphasis role="number">2002</emphasis>,Feb,<emphasis role="number">1</emphasis>); <emphasis role="comment">//an arbitrary date</emphasis>
+ ptime t1(d, hours(<emphasis role="number">5</emphasis>)+nanosec(<emphasis role="number">100</emphasis>)); <emphasis role="comment">//date + time of day offset</emphasis>
+ ptime t2 = t1 - minutes(<emphasis role="number">4</emphasis>)+seconds(<emphasis role="number">2</emphasis>);
+ ptime now = second_clock::local_time(); <emphasis role="comment">//use the clock</emphasis>
+ date today = now.date(); <emphasis role="comment">//Get the date part out of the time</emphasis>
+ date tomorrow = today + date_duration(<emphasis role="number">1</emphasis>);
+ ptime tomorrow_start(tomorrow); <emphasis role="comment">//midnight
+
+ //input streaming</emphasis>
+ std::stringstream ss(<emphasis role="string">"2004-Jan-1 05:21:33.20"</emphasis>);
+ ss &gt;&gt; t2;
+
+ <emphasis role="comment">//starting at current time iterator adds by one hour</emphasis>
+ time_iterator titr(now,hours(<emphasis role="number">1</emphasis>));
+ <emphasis role="keyword">for</emphasis> (; titr &lt; tomorrow_start; ++titr) {
+ std::cout &lt;&lt; (*titr) &lt;&lt; std::endl;
+ }
+ </programlisting>
+ </para>
+
+ <para>
+ The following provides some example code using times.
+ See <link linkend="date_time.local_time">Local Time Programming</link>
+ for more details.
+
+ <programlisting>
+ <emphasis role="keyword">using namespace</emphasis> boost::local_time;
+ <emphasis role="comment">//setup some timezones for creating and adjusting times
+ //first time zone uses the time zone file for regional timezone definitions</emphasis>
+ tz_database tz_db;
+ tz_db.load_from_file(<emphasis role="string">"date_time_zonespec.csv"</emphasis>);
+ time_zone_ptr nyc_tz = tz_db.time_zone_from_region(<emphasis role="string">"America/New_York"</emphasis>);
+ <emphasis role="comment">//This timezone uses a posix time zone string definition to create a time zone</emphasis>
+ time_zone_ptr phx_tz(new posix_time_zone(<emphasis role="string">"MST-07:00:00"</emphasis>));
+
+ <emphasis role="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)</emphasis>
+ local_date_time phx_departure(date(<emphasis role="number">2005</emphasis>, Apr, <emphasis role="number">2</emphasis>), hours(<emphasis role="number">23</emphasis>), phx_tz,
+ local_date_time::NOT_DATE_TIME_ON_ERROR);
+
+ time_duration flight_length = hours(<emphasis role="number">4</emphasis>) + minutes(<emphasis role="number">30</emphasis>);
+ local_date_time phx_arrival = phx_departure + flight_length;
+ <emphasis role="comment">//convert the phx time to a nyz time</emphasis>
+ local_date_time nyc_arrival = phx_arrival.local_time_in(nyc_tz);
+
+ <emphasis role="comment">//2005-Apr-03 06:30:00 EDT</emphasis>
+ std::cout &lt;&lt; nyc_arrival &lt;&lt; std::endl;
+ </programlisting>
+ </para>
+
+</section>