1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- #ifndef DATE_TIME_TIME_ZONE_NAMES_HPP__
- #define DATE_TIME_TIME_ZONE_NAMES_HPP__
- /* Copyright (c) 2002-2003,2005 CrystalClear Software, Inc.
- * Use, modification and distribution is subject to the
- * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
- * Author: Jeff Garland
- * $Date$
- */
- #include <string>
- namespace boost {
- namespace date_time {
- template<class CharT>
- struct default_zone_names {
- public:
- typedef CharT char_type;
- static const char_type standard_name[9];
- static const char_type standard_abbrev[11];
- static const char_type non_dst_identifier[7];
- };
- template <class CharT>
- const typename default_zone_names<CharT>::char_type
- default_zone_names<CharT>::standard_name[9] =
- {'s','t','d','_','n','a','m','e'};
- template <class CharT>
- const typename default_zone_names<CharT>::char_type
- default_zone_names<CharT>::standard_abbrev[11] =
- {'s','t','d','_','a','b','b','r','e','v'};
- template <class CharT>
- const typename default_zone_names<CharT>::char_type
- default_zone_names<CharT>::non_dst_identifier[7] =
- {'n','o','-','d','s','t'};
- //! Base type that holds various string names for timezone output.
- /*! Class that holds various types of strings used for timezones.
- * For example, for the western United States there is the full
- * name: Pacific Standard Time and the abbreviated name: PST.
- * During daylight savings there are additional names:
- * Pacific Daylight Time and PDT.
- *@tparam CharT Allows class to support different character types
- */
- template<class CharT>
- class time_zone_names_base
- {
- public:
- typedef std::basic_string<CharT> string_type;
- time_zone_names_base() :
- std_zone_name_(default_zone_names<CharT>::standard_name),
- std_zone_abbrev_(default_zone_names<CharT>::standard_abbrev),
- dst_zone_name_(default_zone_names<CharT>::non_dst_identifier),
- dst_zone_abbrev_(default_zone_names<CharT>::non_dst_identifier)
- {}
- time_zone_names_base(const string_type& std_zone_name_str,
- const string_type& std_zone_abbrev_str,
- const string_type& dst_zone_name_str,
- const string_type& dst_zone_abbrev_str) :
- std_zone_name_(std_zone_name_str),
- std_zone_abbrev_(std_zone_abbrev_str),
- dst_zone_name_(dst_zone_name_str),
- dst_zone_abbrev_(dst_zone_abbrev_str)
- {}
- string_type dst_zone_abbrev() const
- {
- return dst_zone_abbrev_;
- }
- string_type std_zone_abbrev() const
- {
- return std_zone_abbrev_;
- }
- string_type dst_zone_name() const
- {
- return dst_zone_name_;
- }
- string_type std_zone_name() const
- {
- return std_zone_name_;
- }
- private:
- string_type std_zone_name_;
- string_type std_zone_abbrev_;
- string_type dst_zone_name_;
- string_type dst_zone_abbrev_;
-
- };
-
- //! Specialization of timezone names for standard char.
- //typedef time_zone_names_base<char> time_zone_names;
- } } //namespace
- #endif
|