Files
date_time/doc/period__calc_8cpp-example.html
Jeff Garland f826f4ccf6 fix links
[SVN r15115]
2002-08-30 16:28:18 +00:00

92 lines
4.3 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Example Documentation</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<!-- Generated by Doxygen 1.2.10 -->
<hr><h1>period_calc.cpp</h1> Calculates if a date is in an 'irregular' collection of periods using period calculation functions.
<p>
<div class="fragment"><pre><font class="comment">/*</font>
<font class="comment">This example demonstrates a simple use of periods for the calculation</font>
<font class="comment">of date information.</font>
<font class="comment"></font>
<font class="comment">The example calculates if a given date is a weekend or holiday</font>
<font class="comment">given an exclusion set. That is, each weekend or holiday is</font>
<font class="comment">entered into the set as a time interval. Then if a given date</font>
<font class="comment">is contained within any of the intervals it is considered to</font>
<font class="comment">be within the exclusion set and hence is a offtime.</font>
<font class="comment"></font>
<font class="comment">Output:</font>
<font class="comment">Number Excluded Periods: 5</font>
<font class="comment">20020202/20020203</font>
<font class="comment">20020209/20020210</font>
<font class="comment">20020212/20020212</font>
<font class="comment">20020216/20020217</font>
<font class="comment">In Exclusion Period: 20020216 --&gt; 20020216/20020217</font>
<font class="comment">20020223/20020224</font>
<font class="comment"></font>
<font class="comment">*/</font>
<font class="preprocessor">#include "boost/gdtl/gregorian/gregorian.hpp"</font>
<font class="preprocessor">#include &lt;set&gt;</font>
<font class="preprocessor">#include &lt;algorithm&gt;</font>
<font class="preprocessor">#include &lt;iostream&gt;</font>
<font class="keyword">typedef</font> std::set&lt;gregorian::date_period&gt; date_period_set;
<font class="comment">//Simple population of the exclusion set</font>
date_period_set
generateExclusion()<font class="keyword"></font>
<font class="keyword"></font>{
<font class="keyword">using</font> <font class="keyword">namespace </font>gregorian;
date_period periods_array[] =
{ date_period(date(2002,Feb,2), date(2002,Feb,4)),<font class="comment">//weekend of 2nd-3rd</font>
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))<font class="comment">//a random holiday 2-12</font>
};
<font class="keyword">const</font> <font class="keywordtype">int</font> num_periods = <font class="keyword">sizeof</font>(periods_array)/<font class="keyword">sizeof</font>(date_period);
date_period_set ps;
<font class="comment">//insert the periods in the set</font>
std::insert_iterator&lt;date_period_set&gt; itr(ps, ps.begin());
std::copy(periods_array, periods_array+num_periods, itr );
<font class="keywordflow">return</font> ps;
}
<font class="keywordtype">int</font> main()<font class="keyword"> </font>
<font class="keyword"></font>{
<font class="keyword">using</font> <font class="keyword">namespace </font>gregorian;
date_period_set ps = generateExclusion();
std::cout &lt;&lt; <font class="stringliteral">"Number Excluded Periods: "</font> &lt;&lt; ps.size() &lt;&lt; std::endl;
date d(2002,Feb,16);
date_period_set::const_iterator i = ps.begin();
<font class="comment">//print the periods, check for containment</font>
<font class="keywordflow">for</font> (;i != ps.end(); i++) {
std::cout &lt;&lt; to_iso_string(*i) &lt;&lt; std::endl;
<font class="comment">//if date is in exclusion period then print it</font>
<font class="keywordflow">if</font> (i-&gt;contains(d)) {
std::cout &lt;&lt; <font class="stringliteral">"In Exclusion Period: "</font>
&lt;&lt; to_iso_string(d) &lt;&lt; <font class="stringliteral">" --&gt; "</font> &lt;&lt; to_iso_string(*i)
&lt;&lt; std::endl;
}
}
<font class="keywordflow">return</font> 0;
}
</pre></div><hr><address><small>
Generated Wed Mar 13 13:38:03 2002 by <a href="http://www.doxygen.org">Doxygen</a> for <a href="http://www.crystalclearsoftware.com">CrystalClear Software</a>&nbsp;&copy 2000-2002</small></address>
</body>
</html>