Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Class template nth_kday_of_month

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Library Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Class template nth_kday_of_month

boost::date_time::nth_kday_of_month — Useful generator functor for finding holidays.

Synopsis

// In header: <boost/date_time/date_generators.hpp>
template<typename date_type> 
class nth_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;   
  enum week_num { first = =1, second, third, fourth, fifth };
  // construct/copy/destruct
  nth_kday_of_month(week_num, day_of_week_type, month_type);
  // public member functions
  virtual date_type get_date(year_type) const;
  month_type month() const;
  week_num nth_week() const;
  day_of_week_type day_of_week() const;
  const char * nth_week_as_str() const;
  virtual std::string to_string() const;
};

Description

На основе идеи в Кэл. Calc. для поиска праздников, которые являются «первым понедельником сентября». В случае «пятого» дня месяца результатом будет последний день месяца, который может быть четвертым или пятым в зависимости от структуры месяца.

Алгоритм здесь в основном угадывает первый день месяца. Затем наступает первый день правильного типа. То есть, если первый месяц вторник и ему нужен В среду мы просто увеличиваемся на один день, а затем мы можем добавить продолжительность недели, пока не дойдем до «седьмого дня». Есть, вероятно, более эффективные алгоритмы, основанные на использовании мода 7, но этот достаточно хорошо работает для основных приложений.

nth_kday_of_month public construct/copy/destruct

  1. <
    nth_kday_of_month(week_numweek_no,day_of_week_typedow,month_typem);
    >

nth_kday_of_month public member functions

  1. <
    virtualdate_typeget_date(year_typey)const;
    >Верните конкретную дату, если она указана в конкретном году.
  2. <
    month_typemonth()const;
    >
  3. <
    week_numnth_week()const;
    >
  4. <
    day_of_week_typeday_of_week()const;
    >
  5. <
    constchar*nth_week_as_str()const;
    >
  6. <
    virtualstd::stringto_string()const;
    >Возвращает строку, подходящую для использования в строке часового пояса POSIX.

    Возвращает строку, отформатированную как «M4.3.0» ==>3-е воскресенье апреля.


PrevUpHomeNext

Статья Class template nth_kday_of_month раздела The Boost C++ Libraries BoostBook Documentation Subset Library Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Library Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 20:58:34/0.0065088272094727/0