Declarations
typedef unit<60, 1> minutes; // 60 sec
typedef unit<3600, 1> hours; // 60 * 60 sec
typedef unit<86400, 1> days; // 60 * 60 * 24 sec
typedef unit<604800, 1> weeks; // 60 * 60 * 24 * 7 sec
class date_duration {
public:
typedef int value_type;
explicit date_duration(value_type y = 0, value_type m = 0, value_type d = 0);
date_duration& operator+=(const date_duration& t);
date_duration& operator-=(const date_duration& t);
friend date_duration operator+(date_duration x, const date_duration& y)
friend date_duration operator-(date_duration x, const date_duration& y)
friend date_duration operator+(const date_duration& y, date_duration x)
friend date_duration operator-(const date_duration& y, date_duration x)
value_type years() const;
value_type months() const;
value_type days() const;
};
date_duration years(int t);
date_duration months(int t);
Overview
秒単位以外の時間を秒単位に変換するためのクラス/関数群です.例えば,clx::hours(24) は 86400 秒を返します.unit クラスの詳細については,unit を参照して下さい.
years(),months() に関しては,year, month, day 毎に増減させる値を記憶させ date_time に渡します.date_time は,指定された値の増減を行った後,std::mktime() を用いて時刻の再設定を行います.