Class template period_formatter
boost::date_time::period_formatter — Not a facet, but a class used to specify and control period formats.
Synopsis
template<typename CharT,
typename OutItrT = std::ostreambuf_iterator<CharT, std::char_traits<CharT> > >
class period_formatter {
public:
typedef std::basic_string< CharT > string_type;
typedef CharT char_type;
typedef std::basic_string< char_type >::const_iterator const_itr_type;
typedef std::vector< std::basic_string< CharT > > collection_type;
enum range_display_options { AS_OPEN_RANGE, AS_CLOSED_RANGE };
period_formatter(range_display_options = AS_CLOSED_RANGE,
const char_type *const = default_period_separator,
const char_type *const = default_period_start_delimeter,
const char_type *const = default_period_open_range_end_delimeter,
const char_type *const = default_period_closed_range_end_delimeter);
OutItrT put_period_separator(OutItrT &) const;
OutItrT put_period_start_delimeter(OutItrT &) const;
OutItrT put_period_end_delimeter(OutItrT &) const;
range_display_options range_option() const;
void range_option(range_display_options) const;
void delimiter_strings(const string_type &, const string_type &,
const string_type &, const string_type &);
template<typename period_type, typename facet_type>
OutItrT put_period(OutItrT, std::ios_base &, char_type,
const period_type &, const facet_type &) const;
static const char_type default_period_separator;
static const char_type default_period_start_delimeter;
static const char_type default_period_open_range_end_delimeter;
static const char_type default_period_closed_range_end_delimeter;
};
Description
Предоставляет настройки для следующего:
period_separator & #8211; по умолчанию '/
period_open_start_delimeter & #8211; по умолчанию
period_open_range_end_delimeter – default ')
period_closed_range_end_delimeter & #8211; по умолчанию ']
display_as_open_range, display_as_closed_range – по умолчанию closed_range
Таким образом, форматирование по умолчанию для периода выглядит следующим образом:
[period.start()/period.last()]
Для типичного периода времени это будет
[2004-Jan-04/2004-Feb-01]
где форматирование даты контролируется аспектом даты
period_formatter
public
construct/copy/destruct
period_formatter(range_display_optionsrange_option_in=AS_CLOSED_RANGE,
constchar_type*constperiod_separator=default_period_separator,
constchar_type*constperiod_start_delimeter=default_period_start_delimeter,
constchar_type*constperiod_open_range_end_delimeter=default_period_open_range_end_delimeter,
constchar_type*constperiod_closed_range_end_delimeter=default_period_closed_range_end_delimeter);
Конструктор, который устанавливает параметры форматирования периода и #8211; по умолчанию должно быть достаточно в большинстве случаев.
period_formatter
public member functions
- <
OutItrTput_period_separator(OutItrT&oitr)const;
>Помещает символы между элементами периода в поток – по умолчанию является /. OutItrTput_period_start_delimeter(OutItrT&oitr)const;
Помещает начальные символы периода в поток и #8211; по умолчанию [.OutItrTput_period_end_delimeter(OutItrT&oitr)const;
Помещает конечные символы периода в поток, управляемый с помощью настройки открытого/закрытого диапазона.- <
range_display_optionsrange_option()const;
> voidrange_option(range_display_optionsoption)const;
Сбросьте контрольный параметр range_option.- <
voiddelimiter_strings(conststring_type&,conststring_type&,
conststring_type&,conststring_type&);
> Шаги, переизданный в официальном порядке:
поставить стартовый делимитер
[ORIG_END] -->поставить стартовый элемент
Поставить разделитель
поставить либо последний, либо конечный элемент в зависимости от настроек диапазона
поставить конечный делиметр в зависимости от настроек диапазона
Таким образом, для типичного периода даты результат может выглядеть следующим образом:
[March 01, 2004/June 07, 2004] <-- closed range
[March 01, 2004/June 08, 2004) <-- open range