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