mirror of
https://github.com/boostorg/date_time.git
synced 2026-01-28 07:02:19 +00:00
95 lines
4.2 KiB
HTML
95 lines
4.2 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>Date Generators / Algorithms</title>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
|
</head>
|
|
|
|
<body>
|
|
<a href="../../../index.htm">
|
|
<img align="left" src="../../../c++boost.gif" alt="C++ Boost">
|
|
</a>
|
|
|
|
<h1>Date Generators / Algorithms</h1>
|
|
<p> </p>
|
|
<hr>
|
|
<p>
|
|
<p>
|
|
<a href="index.html">Overall Index</a> --
|
|
<a href="gregorian.html">Gregorian Index</a> --
|
|
<a href="posix_time.html">Posix Time Index</a>
|
|
<p>
|
|
<font class="bold">Date Generators / Algorithms</font>
|
|
<p>
|
|
<a href="date_algorithms.html#header">Header</a> --
|
|
<a href="date_algorithms.html#classoverview">Class Overview</a>
|
|
<p>
|
|
<h2><a name="intro">Introduction</a></h2>
|
|
<p>
|
|
Date algorithms or generators are tools for generating other dates or schedules of dates. A generator function starts with some part of a date such as a month and day and is supplied another part to then generate a concrete date. This allows the programmer to represent concepts such as "The first Sunday in February" and then create a concrete set of dates when provided with one or more years.
|
|
<p>
|
|
<div class="fragment"><pre> <font class="keyword">using</font> <font class="keyword">namespace </font>boost::gregorian;
|
|
<font class="keyword">typedef</font> boost::date_time::nth_kday_of_month<date></a> nkday;
|
|
nkday ldgen(nkday::first, Monday, Sep)); <font class="comment">//US labor day</font>
|
|
date labor_day = ldgen.get_date(2002); <font class="comment">//Calculate labor day for 2002</font>
|
|
</pre></div>
|
|
<p>
|
|
The <a href="exp-print_holidays.html">print holidays example</a> shows a detailed usage example.
|
|
<p>
|
|
<h2><a name="header">Header</a></h2>
|
|
<pre>
|
|
#include "boost/date_time/date_generators.hpp"
|
|
</pre>
|
|
|
|
|
|
<p>
|
|
<h2><a name="classoverview">Class Overview</a></h2>
|
|
<p>
|
|
<table border=1 cellspacing=3 cellpadding=3>
|
|
<tr><td><b>Class</b></td>
|
|
<td><b>Construction Parameters</b></td>
|
|
<td><b>get_date Parameter</b></td>
|
|
<td><b>Description</b></td>
|
|
<td><b>Example</b></td></tr>
|
|
<tr><td><font class="el">first_kday_after</font></td>
|
|
<td><font class="el">greg_day_of_week</font> day_of_week</td>
|
|
<td><font class="el">date</font> start_day</td>
|
|
<td>Calculate something like First Sunday after Jan 1,2002</td>
|
|
<td>first_kday_after fkaf(Monday);<br>date d = fkaf.get_date(date(2002,Jan,1));<font class="comment">//2002-Jan-07</font></td></tr>
|
|
<tr><td><font class="el">first_kday_before</font></td>
|
|
<td><font class="el">greg_day_of_week</font> day_of_week</td>
|
|
<td><font class="el">date</font> start_day</td>
|
|
<td>Calculate something like First Monday before Feb 1,2002</td>
|
|
<td>first_kday_before fkbf(Monday);<br>date d = fkbf.get_date(date(2002,Feb,1));<font class="comment">//2002-Jan-28</font></td></tr>
|
|
<tr><td><font class="el">last_kday_of_month</font></td>
|
|
<td><font class="el">greg_day_of_week</font> day_of_week<br><font class="el">greg_month</font> month</td>
|
|
<td><font class="el">greg_year</font> year</td>
|
|
<td>Calculate something like last Monday of January</td>
|
|
<td>last_kday_of_month lkm(Monday,Jan);<br>date d = lkm.get_date(2002);<font class="comment">//2002-Jan-28</font></td></tr>
|
|
<tr><td><font class="el">first_kday_of_month</font></td>
|
|
<td><font class="el">greg_day_of_week</font> day_of_week<br><font class="el">greg_month</font> month</td>
|
|
<td><font class="el">greg_year</font> year</td>
|
|
<td>Calculate something like first Monday of January</td>
|
|
<td>first_kday_of_month fkm(Monday,Jan);<br>date d = fkm.get_date(2002);<font class="comment">//2002-Jan-07</font></td></tr>
|
|
<tr><td><font class="el">partial_date</font></td>
|
|
<td><font class="el">greg_day</font> day_of_month<br>
|
|
<font class="el">greg_month</font> month</td>
|
|
<td><font class="el">greg_year</font> year</td>
|
|
<td>Generates a date by applying the year to the given month and day.</td>
|
|
<td>partial_date pd(1,Jan);<br>date d = pd.get_date(2002);<font class="comment">//2002-Jan-01</font></td></tr>
|
|
|
|
|
|
</table>
|
|
|
|
<p>
|
|
|
|
<hr>
|
|
<address><small>
|
|
<!-- hhmts start -->
|
|
Last modified: Fri Nov 29 19:40:48 MST 2002
|
|
<!-- hhmts end -->
|
|
by <a href="mailto:jeff@crystalclearsoftware.com">Jeff Garland</a> © 2000-2002
|
|
</small></address>
|
|
</body>
|
|
</html>
|
|
|