| Home | Libraries | People | FAQ | More

## Class template date_names_put

boost::date_time::date_names_put — Output facet base class for gregorian dates.

## Synopsis

    // In header: <boost/date_time/date_names_put.hpp>

    template<typename Config, typename charT = char,
             typename OutputIterator = std::ostreambuf_iterator<charT> >
    class date_names_put : public facet {
    public:
      // types
      typedef OutputIterator             iter_type;
      typedef Config::month_type         month_type;
      typedef Config::month_enum         month_enum;
      typedef Config::weekday_enum       weekday_enum;
      typedef Config::special_value_enum special_value_enum;
      typedef std::basic_string< charT > string_type;
      typedef charT                      char_type;

      // construct/copy/destruct
      date_names_put();

      // public member functions
      std::locale::id & __get_id(void) const;
      void put_special_value(iter_type &, special_value_enum) const;
      void put_month_short(iter_type &, month_enum) const;
      void put_month_long(iter_type &, month_enum) const;
      void put_weekday_short(iter_type &, weekday_enum) const;
      void put_weekday_long(iter_type &, weekday_enum) const;
      bool has_date_sep_chars() const;
      void year_sep_char(iter_type &) const;
      void month_sep_char(iter_type &) const;
      void day_sep_char(iter_type &) const;
      ymd_order_spec date_order() const;
      month_format_spec month_format() const;

      // protected member functions
      virtual void do_put_month_short(iter_type &, month_enum) const;
      virtual void do_put_month_long(iter_type &, month_enum) const;
      virtual void do_put_special_value(iter_type &, special_value_enum) const;
      virtual void do_put_weekday_short(iter_type &, weekday_enum) const;
      virtual void do_put_weekday_long(iter_type &, weekday_enum) const;
      virtual bool do_has_date_sep_chars() const;
      virtual void do_year_sep_char(iter_type &) const;
      virtual void do_month_sep_char(iter_type &) const;
      virtual void do_day_sep_char(iter_type &) const;
      virtual ymd_order_spec do_date_order() const;
      virtual month_format_spec do_month_format() const;
      void put_string(iter_type &, const charT *const) const;
      void put_string(iter_type &, const string_type &) const;

      // public data members
      static const char_type default_special_value_names;
      static const char_type separator;
      static std::locale::id id;  // Generate storage location for a std::locale::id.
    };

## Description

This class is a base class for date facets used to localize the names of months and the names of days in the week.

Requirements of Config

- define an enumeration month_enum that enumerates the months. The enumeration should be '1' based eg: Jan==1

- define as_short_string and as_long_string

(see langer & kreft p334).

### `date_names_put` public construct/copy/destruct

1.     date_names_put();

### `date_names_put` public member functions

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

2.     void put_special_value(iter_type & oitr, special_value_enum sv) const;

3.     void put_month_short(iter_type & oitr, month_enum moy) const;

4.     void put_month_long(iter_type & oitr, month_enum moy) const;

5.     void put_weekday_short(iter_type & oitr, weekday_enum wd) const;

6.     void put_weekday_long(iter_type & oitr, weekday_enum wd) const;

7.     bool has_date_sep_chars() const;

8.     void year_sep_char(iter_type & oitr) const;

9.     void month_sep_char(iter_type & oitr) const;

   char between year-month

10.     void day_sep_char(iter_type & oitr) const;

    Char to separate month-day.

11.     ymd_order_spec date_order() const;

    Determines the order to put the date elements.

12.     month_format_spec month_format() const;

    Determines if month is displayed as integer, short or long string.

### `date_names_put` protected member functions

1.     virtual void do_put_month_short(iter_type & oitr, month_enum moy) const;

   Default facet implementation uses month_type defaults.

2.     virtual void do_put_month_long(iter_type & oitr, month_enum moy) const;

   Default facet implementation uses month_type defaults.

3.     virtual void
       do_put_special_value(iter_type & oitr, special_value_enum sv) const;

   Default facet implementation for special value types.

4.     virtual void do_put_weekday_short(iter_type &, weekday_enum) const;

5.     virtual void do_put_weekday_long(iter_type &, weekday_enum) const;

6.     virtual bool do_has_date_sep_chars() const;

7.     virtual void do_year_sep_char(iter_type & oitr) const;

8.     virtual void do_month_sep_char(iter_type & oitr) const;

   char between year-month

9.     virtual void do_day_sep_char(iter_type & oitr) const;

   Char to separate month-day.

10.     virtual ymd_order_spec do_date_order() const;

    Default for date order.

11.     virtual month_format_spec do_month_format() const;

    Default month format.

12.     void put_string(iter_type & oi, const charT *const s) const;

13.     void put_string(iter_type & oi, const string_type & s1) const;