CLASS TEMPLATE D(3)

NAME
boost::date_time::date_facet

SYNOPSIS

// In header: <boost/date_time/date_facet.hpp>
template<typename date_type, typename CharT,
         typename OutItrT = std::ostreambuf_iterator<CharT, std::char_traits<CharT> > >
class date_facet : public facet {
public:
  // types
  typedef date_type::duration_type                             duration_type;
  typedef date_type::day_of_week_type                          day_of_week_type;
  typedef date_type::day_type                                  day_type;
  typedef date_type::month_type                                month_type;
  typedef boost::date_time::period< date_type, duration_type > period_type;
  typedef std::basic_string< CharT >                           string_type;
  typedef CharT                                                char_type;
  typedef boost::date_time::period_formatter< CharT >          period_formatter_type;
  typedef boost::date_time::special_values_formatter< CharT >  special_values_formatter_type;
  typedef std::vector< std::basic_string< CharT > >            input_collection_type;
  typedef date_generator_formatter< date_type, CharT >         date_gen_formatter_type;
  typedef partial_date< date_type >                            partial_date_type;
  typedef nth_kday_of_month< date_type >                       nth_kday_type;
  typedef first_kday_of_month< date_type >                     first_kday_type;
  typedef last_kday_of_month< date_type >                      last_kday_type;
  typedef first_kday_after< date_type >                        kday_after_type;
  typedef first_kday_before< date_type >                       kday_before_type;
  // construct/copy/destruct
  date_facet(::size_t = 0);
  date_facet(const char_type *, const input_collection_type &, ::size_t = 0);
  date_facet(const char_type *,
             period_formatter_type = period_formatter_type(),
             special_values_formatter_type = special_values_formatter_type(),
             date_gen_formatter_type = date_gen_formatter_type(),
             ::size_t = 0);
  // public member functions
  std::locale::id & __get_id(void) const;
  void format(const char_type *const);
  void set_iso_format();
  void set_iso_extended_format();
  void month_format(const char_type *const);
  void weekday_format(const char_type *const);
  void period_formatter(period_formatter_type);
  void special_values_formatter(const special_values_formatter_type &);
  void short_weekday_names(const input_collection_type &);
  void long_weekday_names(const input_collection_type &);
  void short_month_names(const input_collection_type &);
  void long_month_names(const input_collection_type &);
  void date_gen_phrase_strings(const input_collection_type &,
                               typename date_gen_formatter_type::phrase_elements = date_gen_formatter_type::first);
  OutItrT put(OutItrT, std::ios_base &, char_type, const date_type &) const;
  OutItrT put(OutItrT, std::ios_base &, char_type, const duration_type &) const;
  OutItrT put(OutItrT, std::ios_base &, char_type, const month_type &) const;
  OutItrT put(OutItrT, std::ios_base &, char_type, const day_type &) const;
  OutItrT put(OutItrT, std::ios_base &, char_type, const day_of_week_type &) const;
  OutItrT put(OutItrT, std::ios_base &, char_type, const period_type &) const;
  OutItrT put(OutItrT, std::ios_base &, char_type, const partial_date_type &) const;
  OutItrT put(OutItrT, std::ios_base &, char_type, const nth_kday_type &) const;
  OutItrT put(OutItrT, std::ios_base &, char_type, const first_kday_type &) const;
  OutItrT put(OutItrT, std::ios_base &, char_type, const last_kday_type &) const;
  OutItrT put(OutItrT, std::ios_base &, char_type, const kday_before_type &) const;
  OutItrT put(OutItrT, std::ios_base &, char_type, const kday_after_type &) const;
  // protected member functions
  OutItrT do_put_special(OutItrT, std::ios_base &, char_type,
                         const boost::date_time::special_values) const;
  OutItrT do_put_tm(OutItrT, std::ios_base &, char_type, const tm &,
                    string_type) const;
  static const char_type long_weekday_format;
  static const char_type short_weekday_format;
  static const char_type long_month_format;
  static const char_type short_month_format;
  static const char_type default_period_separator;
  static const char_type standard_format_specifier;
  static const char_type iso_format_specifier;
  static const char_type iso_format_extended_specifier;
  static const char_type default_date_format;
  static std::locale::id id;
};

DESCRIPTION

Class that provides format based I/O facet for date types.

This class allows the formatting of dates by using format string. Format strings are:

    &#8226; A => long_weekday_format - Full name Ex: Tuesday

    &#8226; a => short_weekday_format - Three letter abbreviation Ex: Tue

    &#8226; B => long_month_format - Full name Ex: October

    &#8226; b => short_month_format - Three letter abbreviation Ex: Oct

    &#8226; x => standard_format_specifier - defined by the locale

    &#8226; Y-b-d => default_date_format - YYYY-Mon-dd

Default month format == b Default weekday format == a

  date_facet public construct/copy/destruct

    1.

    date_facet(::size_t a_ref = 0);

    2.

    date_facet(const char_type * format_str,
               const input_collection_type & short_names, ::size_t ref_count = 0);

    3.

    date_facet(const char_type * format_str,
               period_formatter_type per_formatter = period_formatter_type(),
               special_values_formatter_type sv_formatter = special_values_formatter_type(),
               date_gen_formatter_type dg_formatter = date_gen_formatter_type(),
               ::size_t ref_count = 0);

  date_facet public member functions

    1.

    std::locale::id & __get_id(void) const;

    2.

    void format(const char_type *const format_str);

    3.

    void set_iso_format();

    4.

    void set_iso_extended_format();

    5.

    void month_format(const char_type *const format_str);

    6.

    void weekday_format(const char_type *const format_str);

    7.

    void period_formatter(period_formatter_type per_formatter);

    8.

    void special_values_formatter(const special_values_formatter_type & svf);

    9.

    void short_weekday_names(const input_collection_type & short_names);

    10.

    void long_weekday_names(const input_collection_type & long_names);

    11.

    void short_month_names(const input_collection_type & short_names);

    12.

    void long_month_names(const input_collection_type & long_names);

    13.

    void date_gen_phrase_strings(const input_collection_type & new_strings,
                                 typename date_gen_formatter_type::phrase_elements beg_pos = date_gen_formatter_type::first);

    14.

    OutItrT put(OutItrT next, std::ios_base & a_ios, char_type fill_char,
                const date_type & d) const;

    15.

    OutItrT put(OutItrT next, std::ios_base & a_ios, char_type fill_char,
                const duration_type & dd) const;

    16.

    OutItrT put(OutItrT next, std::ios_base & a_ios, char_type fill_char,
                const month_type & m) const;

    17.

    OutItrT put(OutItrT next, std::ios_base & a_ios, char_type fill_char,
                const day_type & day) const;
    puts the day of month .RE

        18.

        OutItrT put(OutItrT next, std::ios_base & a_ios, char_type fill_char,
                    const day_of_week_type & dow) const;

        19.

        OutItrT put(OutItrT next, std::ios_base & a_ios, char_type fill_char,
                    const period_type & p) const;

        20.

        OutItrT put(OutItrT next, std::ios_base & a_ios, char_type fill_char,
                    const partial_date_type & pd) const;

        21.

        OutItrT put(OutItrT next, std::ios_base & a_ios, char_type fill_char,
                    const nth_kday_type & nkd) const;

        22.

        OutItrT put(OutItrT next, std::ios_base & a_ios, char_type fill_char,
                    const first_kday_type & fkd) const;

        23.

        OutItrT put(OutItrT next, std::ios_base & a_ios, char_type fill_char,
                    const last_kday_type & lkd) const;

        24.

        OutItrT put(OutItrT next, std::ios_base & a_ios, char_type fill_char,
                    const kday_before_type & fkb) const;

        25.

        OutItrT put(OutItrT next, std::ios_base & a_ios, char_type fill_char,
                    const kday_after_type & fka) const;

  date_facet protected member functions

    1.

    OutItrT do_put_special(OutItrT next, std::ios_base &, char_type,
                           const boost::date_time::special_values sv) const;

    2.

    OutItrT do_put_tm(OutItrT next, std::ios_base & a_ios, char_type fill_char,
                      const tm & tm_value, string_type a_format) const;