最終更新日時:
が更新

履歴 編集

posix_time::time_period

Time Period Documentation

Introduction

クラス boost::posix_time::time_period は2つの時刻の範囲を直接表現する。 期間(period)は、プログラムの条件付きの論理を単純化することによって、ある種の計算を単純化する能力を提供する。

time periods exampletime_period の使用例を提供する。

Header

#include "boost/date_time/posix_time/posix_time.hpp" //全ての型とI/Oを含む

もしくは

#include "boost/date_time/posix_time/posix_time_types.hpp" //型のみでI/Oは含まない

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
例: endstartより小さい
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)を startend に加算する

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

Last modified: Wed Aug 28 17:52:03 MST 2002 by Jeff Garland © 2000-2002

Japanese Translation Copyright (C) 2003 Shoji Shinohara.