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() を用いて時刻の再設定を行います.