python日期加减自然月和自然年
import math,datetime def _add_month_interval (dt,inter): m=dt.month+inter-1 y=dt.year+math.floor(m/12) m=m % 12 +1 return (y,m) def add_month_interval (dt,inter): y,m=_add_month_interval(dt,inter) y2,m2=_add_month_interval(dt,inter+1) maxD=( datetime.date(y2,m2,1)-datetime.timedelta(days=1) ).day d= dt.day<=maxD and dt.day or maxD return datetime.date(y,m,d) def add_year_interval (dt,inter): return add_month_interval(dt,inter*12)
Comments