...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::last_kday_of_month — Calculate something like Last Sunday of January.
// In header: <boost/date_time/date_generators.hpp> template<typename date_type> class last_kday_of_month : public boost::date_time::year_based_generator< date_type > { public: // types typedef date_type::calendar_type calendar_type; typedef calendar_type::day_of_week_type day_of_week_type; typedef calendar_type::month_type month_type; typedef calendar_type::year_type year_type; typedef date_type::duration_type duration_type; // construct/copy/destruct last_kday_of_month(day_of_week_type, month_type); // public member functions date_type get_date(year_type) const; month_type month() const; day_of_week_type day_of_week() const; std::string to_string() const; };
Useful generator functor for finding holidays and daylight savings Get the last day of the month and then calculate the difference to the last previous day.
last_kday_of_month
public member functionsdate_type get_date(year_type year) const;Return a concrete date when provided with a year specific year.
month_type month() const;
day_of_week_type day_of_week() const;
std::string to_string() const;Returns string suitable for use in POSIX time zone string.
Returns a string formatted as "M4.5.0" ==> last Sunday in April.