23 #include "globals.hpp"
24 #include "timezone/zone.hpp"
25 #include "timezone/interval.hpp"
31 typedef int32_t month_t ;
32 typedef int32_t day_t;
35 period(int32_t months_p, int32_t days_p, Global::duration dur_p);
36 period(
const std::string& s);
38 inline int32_t getMonths()
const {
return months; }
39 inline int32_t getDays()
const {
return days; }
40 inline Global::duration getDuration()
const {
return dur; }
41 inline void setMonths(int64_t m) { months = m; }
42 inline void setDays(int64_t d) { days = d; }
43 inline void setDuration(Global::duration d) { dur = d; }
44 inline void addMonths(int64_t m) { months += m; }
45 inline void addDays(int64_t d) { days += d; }
46 inline void addDuration(Global::duration d) { dur += d; }
48 inline bool operator==(
const period& p) {
return months==p.months && days==p.days; }
49 inline bool operator!=(
const period& p) {
return months!=p.months || days!=p.days; }
60 Global::dtime plus (
const Global::dtime& dt,
const period& p,
const tz::Zone& z);
61 Global::dtime plus (
const period& p,
const Global::dtime& dt,
const tz::Zone& z);
62 Global::dtime minus(
const Global::dtime& dt,
const period& p,
const tz::Zone& z);
81 std::string to_string(
const period& p);