9b5d99078e
[SVN r43422]
341 lines
14 KiB
XML
341 lines
14 KiB
XML
<?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>
|