...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::date_time::counted_time_system — An unadjusted time system implementation.
// In header: <boost/date_time/time_system_counted.hpp> template<typename time_rep> class counted_time_system { public: // types typedef time_rep time_rep_type; typedef time_rep_type::impl_type impl_type; typedef time_rep_type::time_duration_type time_duration_type; typedef time_duration_type::fractional_seconds_type fractional_seconds_type; typedef time_rep_type::date_type date_type; typedef time_rep_type::date_duration_type date_duration_type; // public static functions template<typename T> static void unused_var(const T &); static time_rep_type get_time_rep(const date_type &, const time_duration_type &, date_time::dst_flags = not_dst); static time_rep_type get_time_rep(special_values); static date_type get_date(const time_rep_type &); static time_duration_type get_time_of_day(const time_rep_type &); static std::string zone_name(const time_rep_type &); static bool is_equal(const time_rep_type &, const time_rep_type &); static bool is_less(const time_rep_type &, const time_rep_type &); static time_rep_type add_days(const time_rep_type &, const date_duration_type &); static time_rep_type subtract_days(const time_rep_type &, const date_duration_type &); static time_rep_type subtract_time_duration(const time_rep_type &, const time_duration_type &); static time_rep_type add_time_duration(const time_rep_type &, time_duration_type); static time_duration_type subtract_times(const time_rep_type &, const time_rep_type &); };
counted_time_system
public static functionstemplate<typename T> static void unused_var(const T &);
static time_rep_type get_time_rep(const date_type & day, const time_duration_type & tod, date_time::dst_flags dst = not_dst);
static time_rep_type get_time_rep(special_values sv);
static date_type get_date(const time_rep_type & val);
static time_duration_type get_time_of_day(const time_rep_type & val);
static std::string zone_name(const time_rep_type &);
static bool is_equal(const time_rep_type & lhs, const time_rep_type & rhs);
static bool is_less(const time_rep_type & lhs, const time_rep_type & rhs);
static time_rep_type add_days(const time_rep_type & base, const date_duration_type & dd);
static time_rep_type subtract_days(const time_rep_type & base, const date_duration_type & dd);
static time_rep_type subtract_time_duration(const time_rep_type & base, const time_duration_type & td);
static time_rep_type add_time_duration(const time_rep_type & base, time_duration_type td);
static time_duration_type subtract_times(const time_rep_type & lhs, const time_rep_type & rhs);