44 lines
1.4 KiB
Plaintext
44 lines
1.4 KiB
Plaintext
#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$
|
|
*/
|
|
|
|
|
|
#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___
|