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
 -