#ifndef LOCAL_TIME_DST_TRANSITION_DAY_RULES_HPP__ #define LOCAL_TIME_DST_TRANSITION_DAY_RULES_HPP__ /* Copyright (c) 2003-2004 CrystalClear Software, Inc. * Subject to the 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-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ */ #include "boost/date_time/gregorian/gregorian_types.hpp" #include "boost/date_time/dst_transition_generators.hpp" namespace boost { namespace local_time { //! Provides rule of the form starting Apr 30 ending Oct 21 typedef date_time::dst_day_calc_rule dst_calc_rule; struct partial_date_rule_spec { typedef gregorian::date date_type; typedef gregorian::partial_date start_rule; typedef gregorian::partial_date end_rule; }; //! Provides rule of the form first Sunday in April, last Saturday in Oct typedef date_time::day_calc_dst_rule partial_date_dst_rule; struct first_last_rule_spec { typedef gregorian::date date_type; typedef gregorian::first_kday_of_month start_rule; typedef gregorian::last_kday_of_month end_rule; }; //! Provides rule of the form first Sunday in April, last Saturday in Oct typedef date_time::day_calc_dst_rule first_last_dst_rule; struct last_last_rule_spec { typedef gregorian::date date_type; typedef gregorian::last_kday_of_month start_rule; typedef gregorian::last_kday_of_month end_rule; }; //! Provides rule of the form last Sunday in April, last Saturday in Oct typedef date_time::day_calc_dst_rule last_last_dst_rule; struct nth_last_rule_spec { typedef gregorian::date date_type; typedef gregorian::nth_kday_of_month start_rule; typedef gregorian::last_kday_of_month end_rule; }; //! Provides rule in form of [1st|2nd|3rd|4th] Sunday in April, last Sunday in Oct typedef date_time::day_calc_dst_rule nth_last_dst_rule; struct nth_kday_rule_spec { typedef gregorian::date date_type; typedef gregorian::nth_kday_of_month start_rule; typedef gregorian::nth_kday_of_month end_rule; }; //! Provides rule in form of [1st|2nd|3rd|4th] Sunday in April/October typedef date_time::day_calc_dst_rule nth_kday_dst_rule; //! Provides rule in form of [1st|2nd|3rd|4th] Sunday in April/October typedef date_time::day_calc_dst_rule nth_day_of_the_week_in_month_dst_rule; } }//namespace #endif