/*! Adds a months object to a ptime. Result will be same 
  * day-of-month as ptime unless original day was the last day of month.
  * see date_time::months_duration for more details */
 inline
 ptime 
 operator+=(ptime& t, const boost::gregorian::months& m)
 {
   // get_neg_offset returns a negative duration, so we add
   return t += m.get_offset(t.date());
 }
/*! Adds a months object to a local_date_time. Result will be same
 * day-of-month as local_date_time unless original day was the last day of month.
 * see date_time::months_duration for more details */
inline
local_date_time
operator+=(local_date_time& t, const boost::gregorian::months& m)
{
    return t += m.get_offset(t.utc_time().date());
}
 /*! Adds a months object and a ptime. Result will be same 
  * day-of-month as ptime unless original day was the last day of month.
  * see date_time::months_duration for more details */
 inline
 ptime 
 operator+(const ptime& t, const boost::gregorian::months& m)
 {
   return t + m.get_offset(t.date());
 }