Function: calcFunc-incmonth
calcFunc-incmonth is an autoloaded and byte-compiled function defined
in calc-forms.el.gz.
Signature
(calcFunc-incmonth DATE &optional STEP)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-forms.el.gz
(defun calcFunc-incmonth (date &optional step)
(or step (setq step 1))
(and (math-messy-integerp step) (setq step (math-trunc step)))
(or (math-integerp step) (math-reject-arg step 'integerp))
(let* ((dt (math-date-to-dt date))
(year (car dt))
(month (math-add (1- (nth 1 dt)) step))
(extra (calcFunc-idiv month 12))
(day (nth 2 dt)))
(setq month (1+ (math-sub month (math-mul extra 12)))
year (math-add year extra)
day (min day (math-days-in-month year month)))
(and (math-posp (car dt)) (not (math-posp year))
(setq year (math-sub year 1))) ; did we go past the year zero?
(and (math-negp (car dt)) (not (math-negp year))
(setq year (math-add year 1)))
(list 'date (math-dt-to-date
(cons year (cons month (cons day (cdr (cdr (cdr dt))))))))))