![]() |
Home | Libraries | People | FAQ | More |
boost::date_time::period — Provides generalized period type useful in date-time systems.
// In header: <boost/date_time/period.hpp> template<typename point_rep, typename duration_rep> class period : private { public: // types typedef ; typedef ; // construct/copy/destruct (, ); (, ); // public member functions () ; () ; () ; () ; () ; (period &) ; (period &) ; (); (); () ; (period &) ; (period &) ; (period &) ; () ; () ; period (period &) ; period (period &) ; period (period &) ; };
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).
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 <= begin_point or the given duration is <= 0. Any valid period will return false for is_null().
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.
In the case that the begin and last are the same, the period has a length of one unit.
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).
period
public member functions() ;Return the first element in the period.
() ;Return one past the last element.
() ;Return the last item in the period.
() ;Return the length of the period.
() ;True if period is ill formed (length is zero or less)
(period & rhs) ;Equality operator.
(period & rhs) ;Strict as defined by rhs.last <= lhs.last.
( d);Shift the start and end by the specified amount.
( d);
Expands the size of the period by the duration on both ends.
So before expand
[-------] ^ ^ ^ ^ ^ ^ ^
After expand(2)
[----------------------] ^ ^ ^ ^ ^ ^ ^
( point) ;True if the point is inside the period, zero length periods contain no points.
(period & other) ;True if this period fully contains (or equals) the other period.
(period & other) ;True if the periods overlap in any way.
(period & other) ;True if periods are next to each other without a gap.
( point) ;True if all of the period is prior to the passed point or end <= t.
( point) ;True if all of the period is prior or t < start.
period (period & other) ;Returns the period of intersection or invalid range no intersection.
period (period & other) ;Returns the union of intersecting periods – or null period.
period (period & other) ;Combine two periods with earliest start and latest end.
Combines two periods and any gap between them such that start = min(p1.start, p2.start) end = max(p1.end , p2.end)
[---