On Mar 15, 1:28 pm, tinn...@isbd.co.uk wrote: > I have a date in the form of a datetime object and I want to add (for > example) three months to it. At the moment I can't see any very > obvious way of doing this. I need something like:- > > myDate = datetime.date.today() > inc = datetime.timedelta(months=3) > myDate += inc > > but, of course, timedelta doesn't know about months. I had a look at > the calendar object but that didn't seem to help much. > > -- > Chris Green
After seeing all this discussion, the best suggestion that comes to my mind is: Implement your own logic, and handle special cases as desired, using calendar.monthrange as a reference to determine if the day really exists on the new month. i.e. from datetime import datetime import calendar months_to_add = 3 d = datetime.now() if d.months + months_to_add > 12: d.replace(year = d.year + (d.months + months_to_add)/12) d.replace(month = (d.months + months_to_add)%12) else: d.replace(month = (d.months + months_to_add)) if d.day > calendar.monthrange(d.year,d.month)[1]: # do some custom stuff i.e. force to last day of the month or skip to the next month .... just my .02 -- http://mail.python.org/mailman/listinfo/python-list