您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在不使用库的情况下通过python中的自定义月份增加日期时间

如何在不使用库的情况下通过python中的自定义月份增加日期时间

编辑-根据您的意见,如果下个月的日子较少,则需要四舍五入日期,这是一种解决方案:

import datetime
import calendar

def add_months(sourcedate, months):
    month = sourcedate.month - 1 + months
    year = sourcedate.year + month // 12
    month = month % 12 + 1
    day = min(sourcedate.day, calendar.monthrange(year,month)[1])
    return datetime.date(year, month, day)

正在使用:

>>> somedate = datetime.date.today()
>>> somedate
datetime.date(2010, 11, 9)
>>> add_months(somedate,1)
datetime.date(2010, 12, 9)
>>> add_months(somedate,23)
datetime.date(2012, 10, 9)
>>> otherdate = datetime.date(2010,10,31)
>>> add_months(otherdate,1)
datetime.date(2010, 11, 30)

另外,如果您不担心小时,分钟和秒,可以使用date而不是datetime。如果您担心小时,分钟和秒,则需要修改我的代码以使用datetime并将小时,分钟和秒从源复制到结果。

这是使用dateutil的relativedelta日期添加一个月的简短方法

from datetime import datetime
from dateutil.relativedelta import relativedelta

date_after_month = datetime.today()+ relativedelta(months=1)
print 'Today: ',datetime.today().strftime('%d/%m/%Y')
print 'After Month:', date_after_month.strftime('%d/%m/%Y')

输出

今天:2013年1月3日

下个月之后:01/04/2013

一个字的警告:relativedelta(months=1)和relativedelta(month=1)具有不同的含义。通过month=1会将原日期的月份替换为1月,而将通过months=1将原日期增加一个月。

注意:这需要python-dateutil。要安装它,您需要在Linux终端中运行。

sudo apt-get update && sudo apt-get install python-dateutil
python 2022/1/1 18:33:14 有202人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶