/* $DOC$
   $NAME$
      ft_MAdd()
   $CATEGORY$
      Date/Time
   $ONELINER$
      Add or subtract months to/from a date
   $SYNTAX$
      ft_MAdd( [ <dGivenDate> ], [ <nAddMonths> ], [ <lMakeEOM> ] )
          -> dDate
   $ARGUMENTS$
      <dGivenDate> is any valid date in any date format. Defaults to
      current system date if not supplied.

      <nAddMonths> is the number of months to be added or subtracted.
      Defaults to 0 if not supplied.

      <lMakeEOM> is a logical variable indicating whether or not to
      force the returned date to the last date of the month.  It only
      affects the returned date if <dGivenDate> is an end-of-month date.
   $RETURNS$
      A date.
   $DESCRIPTION$
      ft_MAdd() adds or subtracts months to/from a given date.

      If MakeEOM is passed and dGivenDate is the last day of a month,
      it will return the EOM of calculated month.  Otherwise it will
      return the same day as the day of the passed date.
   $EXAMPLES$
      dDate := 0d19900915
      ? ft_MAdd( dDate, 1 )        // 1990-10-15
      ? ft_MAdd( dDate, -2 )       // 1990-07-15

      // force EOM
      dDate := 0d19910430
      ? ft_MAdd( dDate, 1 )        // 1991-05-30
      ? ft_MAdd( dDate, 1, .T. )   // 1991-05-31  <- forced EOM
      ? ft_MAdd( dDate, 2 )        // 1991-06-30
      ? ft_MAdd( dDate, 2, .T. )   // 1991-06-30  <- June only has 30 days
      ? ft_MAdd( dDate, 3 )        // 1991-07-30
      ? ft_MAdd( dDate, 3, .T. )   // 1991-07-31  <- forced EOM
   $SEEALSO$
      ft_DayOfYr(), ft_DayToBoW()
   $END$
 */
