summaryrefslogtreecommitdiff
path: root/doc/html/date_generator_parser.html
blob: 94f539d55d93a41626183d4f2eaee8a673f8b091 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Class template date_generator_parser</title>
<link rel="stylesheet" href="boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="index.html" title="The Boost C++ Libraries">
<link rel="up" href="date_time/doxy.html#id872048" title="Header &lt;boost/date_time/date_generator_parser.hpp&gt;">
<link rel="prev" href="date_generator_formatter.html" title="Class template date_generator_formatter">
<link rel="next" href="year_based_generator.html" title="Class template year_based_generator">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%">
<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
<td align="center"><a href="../../index.htm">Home</a></td>
<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="../../people/people.htm">People</a></td>
<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
<td align="center"><a href="../../more/index.htm">More</a></td>
</table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="date_generator_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id872048"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="year_based_generator.html"><img src="images/next.png" alt="Next"></a>
</div>
<div class="refentry" lang="en">
<a name="date_generator_parser"></a><div class="titlepage"></div>
<div class="refnamediv">
<h2><span class="refentrytitle">Class template date_generator_parser</span></h2>
<p>boost::date_time::date_generator_parser &#8212; Class for date_generator parsing. </p>
</div>
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> charT&gt; 
<span class="bold"><strong>class</strong></span> date_generator_parser {
<span class="bold"><strong>public</strong></span>:
  <span class="emphasis"><em>// types</em></span>
  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; charT &gt;                string_type;      
  <span class="bold"><strong>typedef</strong></span> std::istreambuf_iterator&lt; charT &gt;         stream_itr_type;  
  <span class="bold"><strong>typedef</strong></span> date_type::month_type                     month_type;       
  <span class="bold"><strong>typedef</strong></span> date_type::day_of_week_type               day_of_week_type; 
  <span class="bold"><strong>typedef</strong></span> date_type::day_type                       day_type;         
  <span class="bold"><strong>typedef</strong></span> <a href="string_parse_tree.html" title="Struct template string_parse_tree">string_parse_tree</a>&lt; charT &gt;                parse_tree_type;  
  <span class="bold"><strong>typedef</strong></span> parse_tree_type::parse_match_result_type  match_results;    
  <span class="bold"><strong>typedef</strong></span> std::vector&lt; std::basic_string&lt; charT &gt; &gt; collection_type;  
  <span class="bold"><strong>typedef</strong></span> <a href="partial_date.html" title="Class template partial_date">partial_date</a>&lt; date_type &gt;                 partial_date_type;
  <span class="bold"><strong>typedef</strong></span> <a href="nth_kday_of_month.html" title="Class template nth_kday_of_month">nth_kday_of_month</a>&lt; date_type &gt;            nth_kday_type;    
  <span class="bold"><strong>typedef</strong></span> <a href="first_kday_of_month.html" title="Class template first_kday_of_month">first_kday_of_month</a>&lt; date_type &gt;          first_kday_type;  
  <span class="bold"><strong>typedef</strong></span> <a href="last_kday_of_month.html" title="Class template last_kday_of_month">last_kday_of_month</a>&lt; date_type &gt;           last_kday_type;   
  <span class="bold"><strong>typedef</strong></span> <a href="first_kday_after.html" title="Class template first_kday_after">first_kday_after</a>&lt; date_type &gt;             kday_after_type;  
  <span class="bold"><strong>typedef</strong></span> <a href="first_kday_before.html" title="Class template first_kday_before">first_kday_before</a>&lt; date_type &gt;            kday_before_type; 
  <span class="bold"><strong>typedef</strong></span> charT                                     char_type;        

  <span class="emphasis"><em>// <a href="date_generator_parser.html#date_generator_parserconstruct-copy-destruct">construct/copy/destruct</a></em></span>
  <a href="date_generator_parser.html#id901996-bb">date_generator_parser</a>();
  <a href="date_generator_parser.html#id1042340-bb">date_generator_parser</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;, 
                        <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;, 
                        <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;, 
                        <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;, 
                        <span class="bold"><strong>const</strong></span> string_type &amp;);
  <a href="date_generator_parser.html#id965416-bb">date_generator_parser</a>(<span class="bold"><strong>const</strong></span> <a href="date_generator_parser.html" title="Class template date_generator_parser">date_generator_parser</a>&lt; date_type, charT &gt; *);

  <span class="emphasis"><em>// <a href="date_generator_parser.html#id693373-bb">public member functions</a></em></span>
  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_generator_parser.html#id907954-bb">element_strings</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;, 
                       <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;, 
                       <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;, 
                       <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;, 
                       <span class="bold"><strong>const</strong></span> string_type &amp;) ;
  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_generator_parser.html#id871968-bb">element_strings</a>(<span class="bold"><strong>const</strong></span> collection_type &amp;) ;
  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt; 
    <span class="type">partial_date_type</span> 
    <a href="date_generator_parser.html#id961679-bb">get_partial_date_type</a>(stream_itr_type &amp;, stream_itr_type &amp;, 
                          std::ios_base &amp;, <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt; 
    <span class="type">nth_kday_type</span> 
    <a href="date_generator_parser.html#id829084-bb">get_nth_kday_type</a>(stream_itr_type &amp;, stream_itr_type &amp;, std::ios_base &amp;, 
                      <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt; 
    <span class="type">first_kday_type</span> 
    <a href="date_generator_parser.html#id931665-bb">get_first_kday_type</a>(stream_itr_type &amp;, stream_itr_type &amp;, std::ios_base &amp;, 
                        <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt; 
    <span class="type">last_kday_type</span> 
    <a href="date_generator_parser.html#id1101005-bb">get_last_kday_type</a>(stream_itr_type &amp;, stream_itr_type &amp;, std::ios_base &amp;, 
                       <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt; 
    <span class="type">kday_before_type</span> 
    <a href="date_generator_parser.html#id1044850-bb">get_kday_before_type</a>(stream_itr_type &amp;, stream_itr_type &amp;, 
                         std::ios_base &amp;, <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt; 
    <span class="type">kday_after_type</span> 
    <a href="date_generator_parser.html#id941871-bb">get_kday_after_type</a>(stream_itr_type &amp;, stream_itr_type &amp;, std::ios_base &amp;, 
                        <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;

  <span class="emphasis"><em>// <a href="date_generator_parser.html#id720600-bb">private member functions</a></em></span>
  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_generator_parser.html#id864815-bb">extract_element</a>(stream_itr_type &amp;, stream_itr_type &amp;, 
                       <span class="bold"><strong>typename</strong></span> date_generator_parser::phrase_elements) <span class="bold"><strong>const</strong></span>;

  <span class="bold"><strong>static</strong></span> const char_type first_string;
  <span class="bold"><strong>static</strong></span> const char_type second_string;
  <span class="bold"><strong>static</strong></span> const char_type third_string;
  <span class="bold"><strong>static</strong></span> const char_type fourth_string;
  <span class="bold"><strong>static</strong></span> const char_type fifth_string;
  <span class="bold"><strong>static</strong></span> const char_type last_string;
  <span class="bold"><strong>static</strong></span> const char_type before_string;
  <span class="bold"><strong>static</strong></span> const char_type after_string;
  <span class="bold"><strong>static</strong></span> const char_type of_string;
};</pre></div>
<div class="refsect1" lang="en">
<a name="id1072427"></a><h2>Description</h2>
<p>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:</p>
<div class="itemizedlist"><ul type="disc">
<li><p>partial_date =&gt; "dd Month"</p></li>
<li><p>nth_day_of_the_week_in_month =&gt; "nth weekday of month"</p></li>
<li><p>first_day_of_the_week_in_month =&gt; "first weekday of month"</p></li>
<li><p>last_day_of_the_week_in_month =&gt; "last weekday of month"</p></li>
<li><p>first_day_of_the_week_after =&gt; "weekday after"</p></li>
<li><p>first_day_of_the_week_before =&gt; "weekday before"</p></li>
</ul></div>
<p>Weekday and Month names and formats are handled via the date_input_facet.</p>
<p>TODO: add doc-comments for which elements can be changed </p>
<div class="refsect2" lang="en">
<a name="id1072473"></a><h3>
<a name="date_generator_parserconstruct-copy-destruct"></a><code class="computeroutput">date_generator_parser</code> construct/copy/destruct</h3>
<div class="orderedlist"><ol type="1">
<li><pre class="literallayout"><a name="id901996-bb"></a>date_generator_parser();</pre></li>
<li><pre class="literallayout"><a name="id1042340-bb"></a>date_generator_parser(<span class="bold"><strong>const</strong></span> string_type &amp; first, <span class="bold"><strong>const</strong></span> string_type &amp; second, 
                      <span class="bold"><strong>const</strong></span> string_type &amp; third, <span class="bold"><strong>const</strong></span> string_type &amp; fourth, 
                      <span class="bold"><strong>const</strong></span> string_type &amp; fifth, <span class="bold"><strong>const</strong></span> string_type &amp; last, 
                      <span class="bold"><strong>const</strong></span> string_type &amp; before, <span class="bold"><strong>const</strong></span> string_type &amp; after, 
                      <span class="bold"><strong>const</strong></span> string_type &amp; of);</pre></li>
<li><pre class="literallayout"><a name="id965416-bb"></a>date_generator_parser(<span class="bold"><strong>const</strong></span> <a href="date_generator_parser.html" title="Class template date_generator_parser">date_generator_parser</a>&lt; date_type, charT &gt; * dgp);</pre></li>
</ol></div>
</div>
<div class="refsect2" lang="en">
<a name="id1072609"></a><h3>
<a name="id693373-bb"></a><code class="computeroutput">date_generator_parser</code> public member functions</h3>
<div class="orderedlist"><ol type="1">
<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id907954-bb"></a>element_strings(<span class="bold"><strong>const</strong></span> string_type &amp; first, <span class="bold"><strong>const</strong></span> string_type &amp; second, 
                     <span class="bold"><strong>const</strong></span> string_type &amp; third, <span class="bold"><strong>const</strong></span> string_type &amp; fourth, 
                     <span class="bold"><strong>const</strong></span> string_type &amp; fifth, <span class="bold"><strong>const</strong></span> string_type &amp; last, 
                     <span class="bold"><strong>const</strong></span> string_type &amp; before, <span class="bold"><strong>const</strong></span> string_type &amp; after, 
                     <span class="bold"><strong>const</strong></span> string_type &amp; of) ;</pre></li>
<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id871968-bb"></a>element_strings(<span class="bold"><strong>const</strong></span> collection_type &amp; col) ;</pre></li>
<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt; 
  <span class="type">partial_date_type</span> 
  <a name="id961679-bb"></a>get_partial_date_type(stream_itr_type &amp; sitr, stream_itr_type &amp; stream_end, 
                        std::ios_base &amp; a_ios, <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre></li>
<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt; 
  <span class="type">nth_kday_type</span> 
  <a name="id829084-bb"></a>get_nth_kday_type(stream_itr_type &amp; sitr, stream_itr_type &amp; stream_end, 
                    std::ios_base &amp; a_ios, <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre></li>
<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt; 
  <span class="type">first_kday_type</span> 
  <a name="id931665-bb"></a>get_first_kday_type(stream_itr_type &amp; sitr, stream_itr_type &amp; stream_end, 
                      std::ios_base &amp; a_ios, <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre></li>
<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt; 
  <span class="type">last_kday_type</span> 
  <a name="id1101005-bb"></a>get_last_kday_type(stream_itr_type &amp; sitr, stream_itr_type &amp; stream_end, 
                     std::ios_base &amp; a_ios, <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre></li>
<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt; 
  <span class="type">kday_before_type</span> 
  <a name="id1044850-bb"></a>get_kday_before_type(stream_itr_type &amp; sitr, stream_itr_type &amp; stream_end, 
                       std::ios_base &amp; a_ios, <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre></li>
<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt; 
  <span class="type">kday_after_type</span> 
  <a name="id941871-bb"></a>get_kday_after_type(stream_itr_type &amp; sitr, stream_itr_type &amp; stream_end, 
                      std::ios_base &amp; a_ios, <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre></li>
</ol></div>
</div>
<div class="refsect2" lang="en">
<a name="id1073000"></a><h3>
<a name="id720600-bb"></a><code class="computeroutput">date_generator_parser</code> private member functions</h3>
<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id864815-bb"></a>extract_element(stream_itr_type &amp; sitr, stream_itr_type &amp; stream_end, 
                     <span class="bold"><strong>typename</strong></span> date_generator_parser::phrase_elements ele) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
</div>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><small>Copyright © 2001-2005 CrystalClear Software, Inc</small></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="date_generator_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id872048"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="year_based_generator.html"><img src="images/next.png" alt="Next"></a>
</div>
</body>
</html>