1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #ifndef GREG_YEAR_HPP___
- #define GREG_YEAR_HPP___
- /* Copyright (c) 2002,2003 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: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $
- */
- #include "boost/date_time/constrained_value.hpp"
- #include <stdexcept>
- #include <string>
- namespace boost {
- namespace gregorian {
- //! Exception type for gregorian year
- struct bad_year : public std::out_of_range
- {
- bad_year() :
- std::out_of_range(std::string("Year is out of valid range: 1400..10000"))
- {}
- };
- //! Policy class that declares error handling gregorian year type
- typedef CV::simple_exception_policy<unsigned short, 1400, 10000, bad_year> greg_year_policies;
- //! Generated representation for gregorian year
- typedef CV::constrained_value<greg_year_policies> greg_year_rep;
- //! Represent a day of the month (range 1900 - 10000)
- /*! This small class allows for simple conversion an integer value into
- a year for the gregorian calendar. This currently only allows a
- range of 1900 to 10000. Both ends of the range are a bit arbitrary
- at the moment, but they are the limits of current testing of the
- library. As such they may be increased in the future.
- */
- class greg_year : public greg_year_rep {
- public:
- greg_year(unsigned short year) : greg_year_rep(year) {}
- operator unsigned short() const {return value_;}
- private:
-
- };
- } } //namespace gregorian
- #endif
|