|  | Boost.Locale
    | 
#include <boost/locale/date_time_facet.hpp>
| Public Types | |
| enum | value_type { absolute_minimum, actual_minimum, greatest_minimum, current, least_maximum, actual_maximum, absolute_maximum } | 
| enum | update_type { move, roll } | 
| enum | calendar_option_type { is_gregorian, is_dst } | 
| Public Member Functions | |
| virtual abstract_calendar * | clone () const =0 | 
| virtual void | set_value (period::marks::period_mark p, int value)=0 | 
| virtual void | normalize ()=0 | 
| virtual int | get_value (period::marks::period_mark p, value_type v) const =0 | 
| virtual void | set_time (posix_time const &p)=0 | 
| virtual posix_time | get_time () const =0 | 
| virtual void | set_option (calendar_option_type opt, int v)=0 | 
| virtual int | get_option (calendar_option_type opt) const =0 | 
| virtual void | adjust_value (period::marks::period_mark p, update_type u, int difference)=0 | 
| virtual int | difference (abstract_calendar const *other, period::marks::period_mark p) const =0 | 
| virtual void | set_timezone (std::string const &tz)=0 | 
| virtual std::string | get_timezone () const =0 | 
| virtual bool | same (abstract_calendar const *other) const =0 | 
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
| 
 | pure virtual | 
Adjust period's p value by difference items using a update_type u. Note: not all values are adjustable
| 
 | pure virtual | 
Make a polymorphic copy of the calendar
| 
 | pure virtual | 
Calculate the difference between this calendar and other in p units
| 
 | pure virtual | 
Get option for calendar, currently only check if it is Gregorian calendar
| 
 | pure virtual | 
Get current time point
| 
 | pure virtual | 
Get current time zone, empty - system one
| 
 | pure virtual | 
Get specific value for period p according to a value_type v
| 
 | pure virtual | 
Recalculate all periods after setting them, should be called after use of set_value() function.
| 
 | pure virtual | 
Check of two calendars have same rules
| 
 | pure virtual | 
Set option for calendar, for future use
| 
 | pure virtual | 
Set current time point
| 
 | pure virtual | 
Set time zone, empty - use system
| 
 | 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