Boost
C++ Libraries
...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
#include <boost/locale/date_time_facet.hpp>
This class defines generic calendar class, it is used by date_time and calendar objects internally. It is less useful for end users, but it is build for localization backend implementation
Type that defines how to fetch the value
| virtual void boost::locale::abstract_calendar::adjust_value | ( | period::marks::period_mark | p, | |
| update_type | u, | |||
| int | difference | |||
| ) | [pure virtual] |
Adjust period's p value by difference items using a update_type u. Note: not all values are adjustable
| virtual abstract_calendar* boost::locale::abstract_calendar::clone | ( | ) | const [pure virtual] |
Make a polymorphic copy of the calendar
| virtual int boost::locale::abstract_calendar::difference | ( | abstract_calendar const * | other, | |
| period::marks::period_mark | p | |||
| ) | const [pure virtual] |
Calculate the difference between this calendar and other in p units
| virtual int boost::locale::abstract_calendar::get_option | ( | calendar_option_type | opt | ) | const [pure virtual] |
Get option for calendar, currently only check if it is Gregorian calendar
| virtual posix_time boost::locale::abstract_calendar::get_time | ( | ) | const [pure virtual] |
Get current time point
| virtual std::string boost::locale::abstract_calendar::get_timezone | ( | ) | const [pure virtual] |
Get current time zone, empty - system one
| virtual int boost::locale::abstract_calendar::get_value | ( | period::marks::period_mark | p, | |
| value_type | v | |||
| ) | const [pure virtual] |
Get specific value for period p according to a value_type v
| virtual void boost::locale::abstract_calendar::normalize | ( | ) | [pure virtual] |
Recalculate all periods after setting them, should be called after use of set_value() function.
| virtual bool boost::locale::abstract_calendar::same | ( | abstract_calendar const * | other | ) | const [pure virtual] |
Check of two calendars have same rules
| virtual void boost::locale::abstract_calendar::set_option | ( | calendar_option_type | opt, | |
| int | v | |||
| ) | [pure virtual] |
Set option for calendar, for future use
| virtual void boost::locale::abstract_calendar::set_time | ( | posix_time const & | p | ) | [pure virtual] |
Set current time point
| virtual void boost::locale::abstract_calendar::set_timezone | ( | std::string const & | tz | ) | [pure virtual] |
Set time zone, empty - use system
| virtual void boost::locale::abstract_calendar::set_value | ( | period::marks::period_mark | p, | |
| int | value | |||
| ) | [pure virtual] |
Set specific value for period p, note not all values are settable.
After call of set_value you may want to call normalize() function to make sure vall periods are updated, if you set sereral fields that are part of single date/time representation you should call set_value several times and then call normalize().
If normalize() is not called after set_value, the behavior is undefined