#!/usr/bin/python
#-*- coding:utf-8 -*-
import datetime,calendar
def changePeriod(enddate):
rt=[]
delta=datetime.timedelta(days=1)
enddate=enddate+delta
rt.append(enddate)
year,month,day=enddate.timetuple()[:3]
countday=calendar.monthrange(year,month)[1]
delta=datetime.timedelta(days=countday-1)
enddate=enddate+delta
rt.append(enddate)
return rt
se=datetime.date(2011,10,31)
print changePeriod(se)
В функцию changePeriod передает дату последнего дня в виде объекта datetime на выходе получаем кортеж из двух элементов типом datetime содержащих первый и последний день следующего месяца