]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | #ifndef GREG_DURATION_TYPES_HPP___ |
2 | #define GREG_DURATION_TYPES_HPP___ | |
3 | ||
4 | /* Copyright (c) 2004 CrystalClear Software, Inc. | |
5 | * Subject to Boost Software License, Version 1.0. (See accompanying | |
6 | * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) | |
7 | * Author: Jeff Garland, Bart Garst | |
8 | * $Date$ | |
9 | */ | |
10 | ||
11 | ||
12 | #include <boost/date_time/gregorian/greg_date.hpp> | |
13 | #include <boost/date_time/int_adapter.hpp> | |
14 | #include <boost/date_time/adjust_functors.hpp> | |
15 | #include <boost/date_time/date_duration_types.hpp> | |
16 | #include <boost/date_time/gregorian/greg_duration.hpp> | |
17 | ||
18 | namespace boost { | |
19 | namespace gregorian { | |
20 | ||
21 | //! config struct for additional duration types (ie months_duration<> & years_duration<>) | |
22 | struct greg_durations_config { | |
23 | typedef date date_type; | |
24 | typedef date_time::int_adapter<int> int_rep; | |
25 | typedef date_time::month_functor<date_type> month_adjustor_type; | |
26 | }; | |
27 | ||
28 | typedef date_time::months_duration<greg_durations_config> months; | |
29 | typedef date_time::years_duration<greg_durations_config> years; | |
30 | ||
31 | class weeks_duration : public date_duration { | |
32 | public: | |
33 | weeks_duration(duration_rep w) | |
34 | : date_duration(w * 7) {} | |
35 | weeks_duration(date_time::special_values sv) | |
36 | : date_duration(sv) {} | |
37 | }; | |
38 | ||
39 | typedef weeks_duration weeks; | |
40 | ||
41 | }} // namespace boost::gregorian | |
42 | ||
43 | #endif // GREG_DURATION_TYPES_HPP___ |