#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___ |