CppCMS
|
#include <booster/booster/locale/date_time_facet.h>
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