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

Class template posix_time_zone_base

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 posix_time_zone_base

boost::local_time::posix_time_zone_base — A time zone class constructed from a POSIX time zone string.

Synopsis

// In header: <boost/date_time/local_time/posix_time_zone.hpp>
template<typename CharT> 
class posix_time_zone_base :
  public date_time::time_zone_base< posix_time::ptime, CharT >
{
public:
  // types
  typedef boost::posix_time::time_duration                                                           time_duration_type;     
  typedef date_time::time_zone_names_base< CharT >                                                   time_zone_names;        
  typedef date_time::time_zone_base< posix_time::ptime, CharT >                                      base_type;              
  typedef base_type::string_type                                                                     string_type;            
  typedef CharT                                                                                      char_type;              
  typedef base_type::stringstream_type                                                               stringstream_type;      
  typedef boost::char_separator< char_type, std::char_traits< char_type > >                          char_separator_type;    
  typedef boost::tokenizer< char_separator_type, typename string_type::const_iterator, string_type > tokenizer_type;         
  typedef tokenizer_type::iterator                                                                   tokenizer_iterator_type;
  // construct/copy/destruct
  posix_time_zone_base(const string_type &);
  ~posix_time_zone_base();
  // public member functions
  virtual string_type std_zone_abbrev() const;
  virtual string_type dst_zone_abbrev() const;
  virtual string_type std_zone_name() const;
  virtual string_type dst_zone_name() const;
  virtual bool has_dst() const;
  virtual posix_time::ptime dst_local_start_time(gregorian::greg_year) const;
  virtual posix_time::ptime dst_local_end_time(gregorian::greg_year) const;
  virtual time_duration_type base_utc_offset() const;
  virtual time_duration_type dst_offset() const;
  virtual string_type to_posix_string() const;
  // private member functions
  void calc_zone(const string_type &);
  void calc_rules(const string_type &, const string_type &);
  void M_func(const string_type &, const string_type &);
  void julian_no_leap(const string_type &, const string_type &);
  void julian_day(const string_type &, const string_type &);
  // private static functions
  static std::string td_as_string(const time_duration_type &);
};

Description

Струна часового пояса POSIX принимает форму:
"std offset dst [offset],start[/time],end[/time]" (w/no spaces) "std" определяет аббрев часового пояса.
"offset" - это смещение от UTC.
"dst" определяет аббрев часового пояса в течение времени экономии дневного света.
Вторым смещением является то, сколько часов изменилось во время DST. Дефолт = 1
«начало» и «конец» - это даты, когда DST входит в (и выходит) эффект.
«зачет» принимает форму: [+ |-]hh[:mm[:ss]] {h=0-23, m/s=0-59}
«время» и «зачет» принимают ту же форму. Время дефолта = 02:00:00
«начало» и «конец» может быть одной из трех форм:
Mm.w.d {месяц = 1-12, неделя = 1-5 (5 всегда последний), день = 0-6}
Jn {n=1-365 Feb29 никогда не считается}
n {n=0-365 Feb29 считается в високосные годы}
Пример "PST-5PDT01:00:00,M4.1.0/02:00:00,M10.1.0/02:00:00"
Исключения будут сделаны в таких условиях:
Недействительный спецификатор даты (см. класс даты)
A boost::local_time::bad_offset исключение будет брошено для:
A DST старт или конец смещения, который является отрицательным или более 24 часов
Зона UTC, превышающая +14 или менее -12 часов
boost::local_time::bad_adjustment исключение будет выброшено для:
DST-регулировки, которая составляет 24 часа или более (положительная или отрицательная)

Отметим, что смещение зоны UTC может быть больше +12: http://www.worldtimezone.com/utc/utc+1200.html

posix_time_zone_base public construct/copy/destruct

  1. posix_time_zone_base(const string_type & s);
    Строить из строки часового пояса POSIX.
  2. ~posix_time_zone_base;

posix_time_zone_base public member functions

  1. virtual string_typestd_zone_abbrev() const;
    String for the zone when not in daylight savings (например: EST)
  2. virtual string_typedst_zone_abbrev() const;
    String для часового пояса, когда в дневном свете экономия (например: EDT)

    Для тех часовых поясов, которые не имеют DST, используется пустая строка

  3. virtual string_typestd_zone_name() const;
    String для зоны, когда она не находится в дневном свете (например: Восточное стандартное время)

    Полное имя STD не извлекается из строки часового пояса. Поэтому в его месте используется аббревиатура STD

  4. virtual string_typedst_zone_name()const;
    String для часового пояса, когда в дневное время экономия (например: Восточное светлое время)

    Полное имя DST не извлекается из строки часового пояса. Поэтому на его месте используется аббревиатура STD. Для часовых поясов, не имеющих DST, используется пустая строка

  5. virtual boolhas_dst() const;
    Правда, если зона использует корректировки экономии дневного света, иначе ложные.
  6. виртуальный posix_time::ptimedst_local_start_time(gregorian::greg_year y)const;
    Местное время начала DST – НАДТ, если имеет_dst, ложно.
  7. виртуальный posix_time::ptimedst_local_end_time::gregorian:::greg_year yconst;
    Местное время окончания DST – НАДТ, если имеет_dst, ложно.
  8. virtual time_duration_typebase_utc_offset()const;
    Base offset from UTC for zone (например: -07:30:00)
  9. virtual time_duration_type dst_offset() const;
    Корректировка вперед или назад, сделанная при действии DST.
  10. virtual string_typeto_posix_string() const;
    Возвращает строку POSIX time_zone для этого объекта.

posix_time_zone_base private member functions

  1. void calc_zone(const string_type & obj);

    Извлеките аббревиатуры часового пояса для STD & DST, а также смещения для временного сдвига, который происходит и сколько сдвига. В это время названия часовых поясов не извлекаются, поэтому вместо них используются аббревиатуры

  2. void calc_rules(const string_type & start, const string_type &;
  3. void M_func(const string_type & s, const string_type &;
  4. void julian_no_leap(const string_type & s, const string_type &;
    Julian day. 29 февраля никогда не считается, даже в високосные годы.
  5. voidjulian_day(const string_type & s, const string_type &;
    Julian day. Февраль 29 всегда считается, но исключение бросается в не високосные годы.

posix_time_zone_base private static functions


Статья Class template posix_time_zone_base раздела 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-20 05:07:38/0.0047140121459961/0