| #ifndef GREG_DURATION_TYPES_HPP___ |
| #define GREG_DURATION_TYPES_HPP___ |
| |
| /* Copyright (c) 2004 CrystalClear Software, Inc. |
| * Subject to 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, Bart Garst |
| * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ |
| */ |
| |
| |
| #include <boost/date_time/gregorian/greg_date.hpp> |
| #include <boost/date_time/int_adapter.hpp> |
| #include <boost/date_time/adjust_functors.hpp> |
| #include <boost/date_time/date_duration_types.hpp> |
| #include <boost/date_time/gregorian/greg_duration.hpp> |
| |
| namespace boost { |
| namespace gregorian { |
| |
| //! config struct for additional duration types (ie months_duration<> & years_duration<>) |
| struct greg_durations_config { |
| typedef date date_type; |
| typedef date_time::int_adapter<int> int_rep; |
| typedef date_time::month_functor<date_type> month_adjustor_type; |
| }; |
| |
| typedef date_time::months_duration<greg_durations_config> months; |
| typedef date_time::years_duration<greg_durations_config> years; |
| |
| class weeks_duration : public date_duration { |
| public: |
| weeks_duration(duration_rep w) |
| : date_duration(w * 7) {} |
| weeks_duration(date_time::special_values sv) |
| : date_duration(sv) {} |
| }; |
| |
| typedef weeks_duration weeks; |
| |
| }} // namespace boost::gregorian |
| |
| #endif // GREG_DURATION_TYPES_HPP___ |