# posix_time::time_period

Overall Index -- Gregorian Index -- Posix Time Index

### Time Period Documentation

Header -- Construction -- Accessors -- Conversion To String -- Operators --

## Introduction

The class boost::posix_time::time_period provides direct representation for ranges between two times. Periods provide the ability to simplify some types of caculations by simplifing the conditional logic of the program.
クラス boost::posix_time::time_period は2つの時刻の範囲を直接表現する。 期間(period)は、プログラムの条件付きの論理を単純化することによって、ある種の計算を単純化する能力を提供する。

The time periods example provides an example of using time periods.
time periods example は time_period の使用例を提供する。

## Header

    #include "boost/date_time/posix_time/posix_time.hpp" //include all types plus i/o
    or
    #include "boost/date_time/posix_time/posix_time_types.hpp" //no i/o just types

## Construction

Syntax | Description | Example
--- | --- | ---
time_period(ptime begin, ptime last) | [begin, last) で表される期間(period)を生成する。 last <= begin のときは null となる。 | date d(2002,Jan,01); ptime t(d, seconds(10)); //10 sec after midnight time_period tp(t, hours(3));
time_period(ptime start, ptime end) | [begin, begin+len) で表される期間(period)を生成する。 len <= 0 のときは null となる。 | date d(2002,Jan,01); ptime t1(d, seconds(10)); //10 sec after midnight ptime t2(d, hours(10)); //10 hours after midnight time_period tp(t1, t2);
time_period(time_period rhs) | コピーコンストラクタ | time_period tp1(tp)

## Accessors

Syntax | Description | Example
--- | --- | ---
ptime begin() const | 期間(period)の最初を返す | date d(2002,Jan,01); ptime t1(d, seconds(10)); //10 sec after midnight ptime t2(d, hours(10)); //10 hours after midnight time_period tp(t1, t2); tp.begin() --> 2002-Jan-01 00:00:10
ptime last() const | 期間(period)の最後を返す | date d(2002,Jan,01); ptime t1(d, seconds(10)); //10 sec after midnight ptime t2(d, hours(10)); //10 hours after midnight time_period tp(t1, t2); tp.last() --> 2002-Jan-01 09:59:59.999999999
ptime end() const | 期間(period)の最後の次を返す | date d(2002,Jan,01); ptime t1(d, seconds(10)); //10 sec after midnight ptime t2(d, hours(10)); //10 hours after midnight time_period tp(t1, t2); tp.last() --> 2002-Jan-01 10:00:00
bool is_null() const | 期間(period) が正しい形式でないときtrue 例: start less than end ？逆では？ |
bool contains(ptime) const | ptime が期間(period)の範囲内にあるとき true | date d(2002,Jan,01); ptime t1(d, seconds(10)); //10 sec after midnight ptime t2(d, hours(10)); //10 hours after midnight ptime t3(d, hours(2)); //2 hours after midnight time_period tp(t1, t2); tp.contains(t3) --> true
bool contains(time_period) const | time_period が期間(period)の範囲内にあるとき true | time_period tp1(ptime(d,hours(1)), ptime(d,hours(12))); time_period tp2(ptime(d,hours(2)), ptime(d,hours(4))); tp1.contains(tp2) --> true tp2.contains(tp1) --> false
bool intersects(time_period) const | 期間(period)が重複するとき true | time_period tp1(ptime(d,hours(1)), ptime(d,hours(12))); time_period tp2(ptime(d,hours(2)), ptime(d,hours(4))); tp2.intersects(tp1) --> true
time_period intersection(time_period) const | 二つの期間(period)が重複する範囲を計算する。期間(period)が重複しないときは null が返る |
time_period merge(time_period) const | 二つの期間(period)を結合して返す。期間(period)が重複しないときは null が返る |
time_period shift(time_duration) | 時間長(time_duration)を start と end に加算する ソースを見ると，原文の date_duration は time_duration の間違いだと思う。 |

## Conversion To String

Syntax | Description | Example
--- | --- | ---
std::string to_simple_string(time_period dp) | [YYYY-mmm-DD hh:mm:ss.fffffffff/YYYY-mmm-DD hh:mm:ss.fffffffff] 形式の文字列に変換する(mmm は月名の3文字短縮形) | [2002-Jan-01 01:25:10.000000001/2002-Jan-31 01:25:10.123456789]

## Operators

Syntax | Description | Example
--- | --- | ---
operator==, operator!=, operator>, operator< | サポートする比較演算子 | tp1 == tp2, etc
operator< | tp1.end() が tp2.begin() よりも小さいとき true | tp1 < tp2, etc
operator> | tp1.begin() が tp2.end() よりも大きいとき true | tp1 > tp2, etc