| Home | Libraries | People | FAQ | More

## Class template first_kday_of_month

boost::date_time::first_kday_of_month — Useful generator functor for finding holidays and daylight savings.

## Synopsis

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

    template<typename date_type>
    class first_kday_of_month :
      public boost::date_time::year_based_generator< date_type >
    {
    public:
      // types
      typedef date_type::calendar_type        calendar_type;
      typedef calendar_type::day_of_week_type day_of_week_type;
      typedef calendar_type::month_type       month_type;
      typedef calendar_type::year_type        year_type;
      typedef date_type::duration_type        duration_type;

      // construct/copy/destruct
      first_kday_of_month(day_of_week_type, month_type);

      // public member functions
      virtual date_type get_date(year_type) const;
      month_type month() const;
      day_of_week_type day_of_week() const;
      virtual std::string to_string() const;
    };

## Description

Similar to nth_kday_of_month, but requires less paramters

### `first_kday_of_month` public construct/copy/destruct

1.     first_kday_of_month(day_of_week_type dow, month_type m);

   Specify the first 'Sunday' in 'April' spec.

   Parameters: |
   `dow` | The day of week, eg: Sunday, Monday, etc
   `m` | The month of the year, eg: Jan, Feb, Mar, etc

### `first_kday_of_month` public member functions

1.     virtual date_type get_date(year_type year) const;

   Return a concrete date when provided with a year specific year.

2.     month_type month() const;

3.     day_of_week_type day_of_week() const;

4.     virtual std::string to_string() const;

   Returns string suitable for use in POSIX time zone string.

   Returns a string formatted as "M4.1.0" ==> 1st Sunday in April.