Class template date
boost::date_time::date — Representation of timepoint at the one day level resolution.
Synopsis
template<typename T, typename calendar, typename duration_type_>
class date :
private boost::less_than_comparable< T, boost::equality_comparable< T > >
{
public:
typedef T date_type;
typedef calendar calendar_type;
typedef calendar::date_traits_type traits_type;
typedef duration_type_ duration_type;
typedef calendar::year_type year_type;
typedef calendar::month_type month_type;
typedef calendar::day_type day_type;
typedef calendar::ymd_type ymd_type;
typedef calendar::date_rep_type date_rep_type;
typedef calendar::date_int_type date_int_type;
typedef calendar::day_of_week_type day_of_week_type;
date(year_type, month_type, day_type);
date(const ymd_type &);
explicit date(date_int_type);
explicit date(date_rep_type);
year_type year() const;
month_type month() const;
day_type day() const;
day_of_week_type day_of_week() const;
ymd_type year_month_day() const;
bool operator<(const date_type &) const;
bool operator==(const date_type &) const;
bool is_special() const;
bool is_not_a_date() const;
bool is_infinity() const;
bool is_pos_infinity() const;
bool is_neg_infinity() const;
special_values as_special() const;
duration_type operator-(const date_type &) const;
date_type operator-(const duration_type &) const;
date_type operator-=(const duration_type &);
date_rep_type day_count() const;
date_type operator+(const duration_type &) const;
date_type operator+=(const duration_type &);
};
Description
Шаблон даты представляет собой оболочку интерфейса для класса даты, которая основана на системе год-месяц-день, такой как григорианские или изо-системы. Он обеспечивает базовые операции для расчета и сравнения.
Теория
Это представление даты в корне отличается от подхода C tm struct. Цель этого типа состоит в том, чтобы обеспечить эффективные операции с датой (добавление, вычитание) и хранение (минимизация пространства для представления) в конкретном классе. Таким образом, дата использует внутреннее число для представления конкретной даты. Календарный параметр определяет политику преобразования годовой месячной и внутренней расчетной формы. Приложения, которые должны выполнять тяжелое форматирование одной и той же даты несколько раз, будут работать лучше, используя представление в течение года.
Внутренняя дата использует номер дня для представления даты. Это монотонное представление времени. Это представление позволяет быстро сравнивать, а также упрощает создание записи числовых операций. По сути, внутреннее число дня похоже на скорректированный юлианский день. Корректировка определяется датой Эпохи, которая представлена как день 1 календаря. День 0 зарезервирован для отрицательной бесконечности, так что любая фактическая дата автоматически больше отрицательной бесконечности. Когда дата построена из даты или отформатирована для вывода, применяются соответствующие преобразования для создания представлений года, месяца, дня.
date
public
construct/copy/destruct
- <
date(year_typey,month_typem,day_typed);
>
- <
date(constymd_type&ymd);
>
- <
explicitdate(date_int_typedays);
>Это частный конструктор, который позволяет создавать новые даты. Он не подвергается воздействию пользователей, поскольку это потребует от пользователей класса понимания внутренней работы класса даты.
- <
explicitdate(date_rep_typedays);
>
date
public member functions
- <
year_typeyear()const;
>
- <
month_typemonth()const;
>
- <
day_typeday()const;
>
- <
day_of_week_typeday_of_week()const;
>
- <
ymd_typeyear_month_day()const;
>
- <
booloperator<(constdate_type&rhs)const;
>
- <
booloperator==(constdate_type&rhs)const;
>
- <
boolis_special()const;
>проверить, является ли дата особым значением
- <
boolis_not_a_date()const;
>проверить, не является ли дата значением
- <
boolis_infinity()const;
>Проверьте, является ли дата одним из значений бесконечности.
- <
boolis_pos_infinity()const;
>Проверить, является ли дата больше всех возможных дат
- <
boolis_neg_infinity()const;
>Проверьте, не превышает ли дата все возможные даты.
- <
special_valuesas_special()const;
>возврат в качестве специального значения или неспециального, если нормальная дата
- <
duration_typeoperator-(constdate_type&d)const;
>
- <
date_typeoperator-(constduration_type&dd)const;
>
- <
date_typeoperator-=(constduration_type&dd);
>
- <
date_rep_typeday_count()const;
>
- <
date_typeoperator+(constduration_type&dd)const;
>
- <
date_typeoperator+=(constduration_type&dd);
>