Date Period Documentation
Introduction
boost::gregorian::date_period クラスは、二つの日付の範囲(期間)を直接表現する。 プログラムの条件付きの論理を単純化することによって、ある種の計算を単純化する能力を提供する。 例えば、日付が週末あるいは休日のような不規則なスケジュールの中であるかどうか試すのは date_period のコレクションを使って達成され得る。 これは、date_period が別の期間(date period)と重複する場合に評価を許可する、あるいは重複している期間を生成する、といったいくつかの方法によって容易になる。 period calculation example(期間計算の例) はこの例を提供する。
無限値と組み合わせて使用される期間(date periods)は、「追って通知があるまで」といった複雑な概念を表現する能力を持っている。
Header
#include "boost/date_time/gregorian/gregorian.hpp" //全ての型とI/Oを含む
もしくは
#include "boost/date_time/gregorian/gregorian_types.hpp" //型のみでI/Oは含まない
Construction
| Syntax | Description | Example |
|---|---|---|
date_period(date begin, date last) | [begin, last) で表される期間(period)を生成する。last <= begin のときは null となる。 | date_period dp(date(2002,Jan,10), date_duration(2)); |
date_period(date start, date end) | [begin, begin+len)で表される期間(period)を生成する。len <= 0 のときは null となる。 | date_period dp(date(2002,Jan,10), date_duration(2)); |
date_period(date_period rhs) | コピーコンストラクタ | date_period dp1(dp) |
Accessors
| Syntax | Description | Example |
|---|---|---|
date begin() const | 期間(period)の初日を返す | date_period dp(date(2002,Jan,1), date(2002,Jan,10));dp.begin() --> 2002-Jan-01 |
date last() const | 期間(period)の最終日を返す | date_period dp(date(2002,Jan,1), date(2002,Jan,10));dp.last() --> 2002-Jan-09 |
date end() const | 期間(period)の最終日の翌日を返す | date_period dp(date(2002,Jan,1), date(2002,Jan,10));dp.end() --> 2002-Jan-10 |
bool is_null() const | 期間(period)が正しい形式でないときtrue例: endがstartより小さい | date_period dp(date(2002,Jan,10), date(2002,Jan,1));dp.is_null() --> true |
bool contains(date) const | 日付が期間(period)の範囲内にあるときtrue | date_period dp(date(2002,Jan,1), date(2002,Jan,10));dp.contains(date(2002,Jan,2)) --> true |
bool contains(date_period) const | date_period が期間(period)の範囲内にあるときtrue | date_period dp1(date(2002,Jan,1), date(2002,Jan,10));date_period dp2(date(2002,Jan,2), date(2002,Jan,3));dp1.contains(dp2) --> truedp2.contains(dp1) --> false |
bool intersects(date_period) const | 期間(period)が重複するときtrue | date_period dp1(date(2002,Jan,1), date(2002,Jan,10));date_period dp2(date(2002,Jan,2), date(2002,Jan,3));dp2.intersects(dp1) --> true |
date_period intersection(date_period) const | 2つの期間(period)から重複する期間(period)を計算する。 期間(period)が重複しないときは null が返る | date_period dp1(date(2002,Jan,1), date(2002,Jan,10));date_period dp2(date(2002,Jan,2), date(2002,Jan,3));dp2.intersects(dp1) --> dp2 |
date_period merge(date_period) const | 2つの期間(period)を結合して返す。期間(period)が重複しないときは null が返る | date_period dp1(date(2002,Jan,1), date(2002,Jan,10));date_period dp2(date(2002,Jan,9), date(2002,Jan,31));dp2.intersects(dp1) --> 2002-Jan-01/2002-Jan-31 |
date_period shift(date_duration) | 初日と最終日に日数(date_duration)を加算する。 | date_period dp1(date(2002,Jan,1), date(2002,Jan,10));dp1.shift(date_duration(1)); --> 2002-Jan-02/2002-Jan-11 |
Conversion To String
| Syntax | Description | Example |
|---|---|---|
std::string to_simple_string(date_period dp) | [YYYY-mmm-DD/YYYY-mmm-DD] (mmm は月名の3文字短縮形)形式の文字列に変換 | [2002-Jan-01/2002-Jan-31] |
Operators
| Syntax | Description | Example |
|---|---|---|
operator==, operator!=,operator>, operator< | サポートする比較演算子 | dp1 == dp2, etc |
operator< | dp1.end()がdp2.begin()よりも小さいとき true | dp1 < dp2, etc |
operator> | dp1.begin()がdp2.end()よりも大きいとき true | dp1 > dp2, etc |
Last modified: Wed Aug 28 17:52:03 MST 2002 by Jeff Garland © 2000-2002
Japanese Translation Copyright (C) 2003 Shoji Shinohara.