<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" 
"../../../tools/boostbook/dtd/boostbook.dtd">

<!-- Copyright (c) 2001-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)
-->

<section id="date_time.examples.month_add"> 
  <title>Month Adding</title>

  <para> 
    Adding a month to a day without the use of iterators.
  </para>
  <programlisting>
    <![CDATA[
  /* Simple program that uses the gregorian calendar to progress by exactly
   * one month, irregardless of how many days are in that month.
   *
   * This method can be used as an alternative to iterators
   */

  #include "boost/date_time/gregorian/gregorian.hpp"
  #include <iostream>

  int
  main()
  {

    using namespace boost::gregorian;

    date d = day_clock::local_day();
    add_month mf(1);
    date d2 = d + mf.get_offset(d);
    std::cout << "Today is: " << to_simple_string(d) << ".\n"
      << "One month from today will be: " << to_simple_string(d2) 
      << std::endl;

    return 0;
  }
    ]]>
  </programlisting>
</section>
