8 #ifndef BOOSTER_LOCALE_DATE_TIME_H_INCLUDED
9 #define BOOSTER_LOCALE_DATE_TIME_H_INCLUDED
11 #include <booster/config.h>
13 # pragma warning(push)
14 # pragma warning(disable : 4275 4251 4231 4660)
17 #include <booster/locale/hold_ptr.h>
18 #include <booster/locale/date_time_facet.h>
19 #include <booster/locale/formatting.h>
20 #include <booster/locale/time_zone.h>
23 #include <booster/backtrace.h>
408 periods_.push_back(f);
423 return 4+periods_.size();
435 return periods_[n-4];
439 std::vector<date_time_period> periods_;
449 for(
unsigned i=0;i<b.
size();i++)
460 for(
unsigned i=0;i<b.
size();i++)
488 calendar(std::locale
const &l,std::string
const &zone);
537 int first_day_of_week()
const;
542 std::locale get_locale()
const;
546 std::string get_time_zone()
const;
551 bool is_gregorian()
const;
556 bool operator==(
calendar const &other)
const;
560 bool operator!=(
calendar const &other)
const;
809 bool operator==(
date_time const &other)
const;
813 bool operator!=(
date_time const &other)
const;
817 bool operator<(
date_time const &other)
const;
821 bool operator>(
date_time const &other)
const;
825 bool operator<=(
date_time const &other)
const;
829 bool operator>=(
date_time const &other)
const;
854 bool is_in_daylight_saving_time()
const;
873 template<
typename CharType>
874 std::basic_ostream<CharType> &operator<<(std::basic_ostream<CharType> &out,
date_time const &t)
876 double time_point = t.
time();
879 display_flags == flags::date
880 || display_flags == flags::time
881 || display_flags == flags::datetime
882 || display_flags == flags::strftime
900 template<
typename CharType>
906 display_flags == flags::date
907 || display_flags == flags::time
908 || display_flags == flags::datetime
909 || display_flags == flags::strftime
1139 #pragma warning(pop)
minute [0..59]
Definition: date_time_facet.h:50
int operator/(period::period_type f) const
Definition: date_time.h:657
date_time const & start() const
Definition: date_time.h:964
The week number in the year.
Definition: date_time_facet.h:52
period_type hour_12()
Definition: date_time.h:129
date_time_period november()
Definition: date_time.h:273
period_type week_of_month()
Definition: date_time.h:149
second [0..59]
Definition: date_time_facet.h:51
this class provides an access to general calendar information.
Definition: date_time.h:473
date_time_period monday()
Definition: date_time.h:286
period_type hour()
Definition: date_time.h:125
date_time const & operator+=(period::period_type f)
Definition: date_time.h:681
date_time const & end() const
Definition: date_time.h:968
The week number within current month.
Definition: date_time_facet.h:53
Same as std::runtime_error but records stack trace.
Definition: backtrace.h:158
period_type day_of_week_local()
Definition: date_time.h:121
std::basic_istream< CharType > & operator>>(std::basic_istream< CharType > &in, date_time &t)
Definition: date_time.h:901
period_type year()
Definition: date_time.h:87
period_type minute()
Definition: date_time.h:137
date_time_period sunday()
Definition: date_time.h:282
void add(date_time_period f)
Definition: date_time.h:402
date_time_period tuesday()
Definition: date_time.h:290
date_time_period_set(period::period_type f)
Definition: date_time.h:388
period_type month()
Definition: date_time.h:95
date_time operator-(period::period_type f) const
Definition: date_time.h:673
period_type era()
Definition: date_time.h:83
The day of month, calendar specific, in Gregorian [1..31].
Definition: date_time_facet.h:37
std::basic_ostream< CharType > & operator<<(std::basic_ostream< CharType > &out, date_time const &t)
Definition: date_time.h:874
24 clock hour [0..23]
Definition: date_time_facet.h:47
period_type week_of_year()
Definition: date_time.h:145
Local day of week, for example in France Monday is 1, in US Sunday is 1, [1..7].
Definition: date_time_facet.h:46
int operator/(period::period_type f) const
Definition: date_time.h:956
First day of week, constant, for example Sunday in US = 1, Monday in France = 2.
Definition: date_time_facet.h:54
date_time_duration(date_time const &first, date_time const &second)
Definition: date_time.h:939
date_time_period saturday()
Definition: date_time.h:306
size_t size() const
Definition: date_time.h:413
date_time_period january()
Definition: date_time.h:233
date_time_period pm()
Definition: date_time.h:314
date_time operator<<(period::period_type f) const
Definition: date_time.h:696
This error is thrown in case of invalid state that occurred.
Definition: date_time.h:39
date_time_period september()
Definition: date_time.h:265
a smart pointer similar to std::auto_ptr but it is non-copyable and the underlying object has the sam...
Definition: hold_ptr.h:18
This class represents a period: a pair of two date_time objects.
Definition: date_time.h:932
date_time_period february()
Definition: date_time.h:237
this class represents a date time and allows to perform various operation according to the locale set...
Definition: date_time.h:590
static ios_info & get(std::ios_base &ios)
date_time_period may()
Definition: date_time.h:249
date_time_period march()
Definition: date_time.h:241
date_time_period august()
Definition: date_time.h:261
date_time_period december()
Definition: date_time.h:277
date_time const & operator>>=(period::period_type f)
Definition: date_time.h:719
date_time operator>>(period::period_type f) const
Definition: date_time.h:704
date_time_period operator*(period::period_type f, T v)
Definition: date_time.h:335
date_time_period wednesday()
Definition: date_time.h:294
Year, it is calendar specific, for example 2011 in Gregorian calendar.
Definition: date_time_facet.h:34
date_time_period(period::period_type f=period::period_type(), int v=1)
Definition: date_time.h:72
date_time_period operator-(period::period_type f)
Definition: date_time.h:326
date_time_error(std::string const &e)
Definition: date_time.h:44
period_type invalid()
Definition: date_time.h:79
Extended year for Gregorian/Julian calendars, where 1 BC == 0, 2 BC == -1.
Definition: date_time_facet.h:35
Same as std::out_of_range but records stack trace.
Definition: backtrace.h:238
Special invalid value, should not be used directly.
Definition: date_time_facet.h:32
12 clock hour [0..11]
Definition: date_time_facet.h:48
The number of day in year, starting from 1, in Gregorian [1..366].
Definition: date_time_facet.h:38
date_time_period_set operator-(date_time_period_set const &a, date_time_period_set const &b)
Definition: date_time.h:457
date_time_period october()
Definition: date_time.h:269
date_time_period_set(date_time_period const &fl)
Definition: date_time.h:395
period_type first_day_of_week()
Definition: date_time.h:153
date_time operator+(period::period_type f) const
Definition: date_time.h:665
date_time_period am()
Definition: date_time.h:310
date_time const & operator-=(period::period_type f)
Definition: date_time.h:688
date_time_period friday()
Definition: date_time.h:302
Definition: date_time_facet.h:39
This class holds a type that represents certain period of time like year, hour, second and so on...
Definition: date_time_facet.h:70
period::period_type type
The type of period, i.e. era, year, day etc.
Definition: date_time.h:58
date_time_period operator-() const
Definition: date_time.h:67
am or pm marker [0..1]
Definition: date_time_facet.h:49
date_time_period operator+() const
Definition: date_time.h:63
date_time_period const & operator[](size_t n) const
Definition: date_time.h:428
period_type second()
Definition: date_time.h:141
this class that represents a set of periods,
Definition: date_time.h:376
int difference(date_time const &other, period::period_type f) const
date_time_period april()
Definition: date_time.h:245
period_type day_of_week_in_month()
Definition: date_time.h:117
date_time_period thursday()
Definition: date_time.h:298
Definition: date_time_facet.h:44
This class represents a pair of period_type and the integer values that describes its amount...
Definition: date_time.h:56
period_type day_of_year()
Definition: date_time.h:103
date_time_period june()
Definition: date_time.h:253
date_time_period july()
Definition: date_time.h:257
period_type extended_year()
Definition: date_time.h:91
Era i.e. AC, BC in Gregorian and Julian calendar, range [0,1].
Definition: date_time_facet.h:33
date_time_period_set operator+(date_time_period_set const &a, date_time_period_set const &b)
Definition: date_time.h:446
int get(period::period_type f) const
Definition: date_time.h:948
date_time const & operator<<=(period::period_type f)
Definition: date_time.h:712
void display_flags(uint64_t flags)
period_type am_pm()
Definition: date_time.h:133
date_time_period_set()
Definition: date_time.h:382
int value
Definition: date_time.h:59
int get(period::period_type f) const
The month of year, calendar specific, in Gregorian [0..11].
Definition: date_time_facet.h:36
std::ios_base & time(std::ios_base &ios)
Definition: formatting.h:328
period_type day()
Definition: date_time.h:99
period_type day_of_week()
Definition: date_time.h:112
date_time_period operator+(period::period_type f)
Definition: date_time.h:319