1 /* A simple example for creating various dst_calc_rule instances
2  */
3 
4 #include "boost/date_time/gregorian/gregorian.hpp"
5 #include "boost/date_time/local_time/local_time.hpp"
6 #include <iostream>
7 
8 int
main()9 main()
10 {
11   using namespace boost;
12   using namespace local_time;
13   using namespace gregorian;
14 
15   /***** create the necessary date_generator objects *****/
16   // starting generators
17   first_day_of_the_week_in_month fd_start(Sunday, May);
18   last_day_of_the_week_in_month ld_start(Sunday, May);
19   nth_day_of_the_week_in_month nkd_start(nth_day_of_the_week_in_month::third,
20                                          Sunday, May);
21   partial_date pd_start(1, May);
22   // ending generators
23   first_day_of_the_week_in_month fd_end(Sunday, Oct);
24   last_day_of_the_week_in_month ld_end(Sunday, Oct);
25   nth_day_of_the_week_in_month nkd_end(nth_day_of_the_week_in_month::third,
26                                        Sunday, Oct);
27   partial_date pd_end(31, Oct);
28 
29   /***** create the various dst_calc_rule objects *****/
30   dst_calc_rule_ptr pdr(new partial_date_dst_rule(pd_start, pd_end));
31   dst_calc_rule_ptr flr(new first_last_dst_rule(fd_start, ld_end));
32   dst_calc_rule_ptr llr(new last_last_dst_rule(ld_start, ld_end));
33   dst_calc_rule_ptr nlr(new nth_last_dst_rule(nkd_start, ld_end));
34   dst_calc_rule_ptr ndr(new nth_day_of_the_week_in_month_dst_rule(nkd_start, nkd_end));
35 
36   std::cout << "Program run successfully" << std::endl;
37 
38   return 0;
39 }
40 
41 /*  Copyright 2001-2005: CrystalClear Software, Inc
42  *  http://www.crystalclearsoftware.com
43  *
44  *  Subject to the Boost Software License, Version 1.0.
45  * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
46  */
47 
48