Python的日期時間函數中好像沒有把一個日期(時間)型變量加上幾個月的函數,仿照Delphi中的自己寫了一個。代碼如下:
import calendar
Yearmonth = ((0,31,28,31,30,31,30,31,31,30,31,30,31),
(0,31,29,31,30,31,30,31,31,30,31,30,31))
def addmonths(begindate, months):
n = begindate.year*12 + begindate.month - 1
n = n + months
ryear = n / 12
rmonth = n%12 + 1
rday = begindate.day
if calendar.isleap(ryear):
if rday > Yearmonth[1][rmonth]:
rday = Yearmonth[1][rmonth]
else:
if rday > Yearmonth[0][rmonth]:
rday = Yearmonth[0][rmonth]
return begindate.replace(year=ryear, month=rmonth, day = rday)