![]() |
|
登录注册 |
☦ 上海财经大学论坛 > 信息平台 > 浏览当前帖子 | 手机版 - 认证发帖 - 隐藏左侧栏 |
Python 按月增加datetime月份的问题 | |
【返回本版】 【发表帖子】 【回复帖子】 | 浏览量 476 回帖数 0 |
![]() |
展示美好 等级 瓶子 楼主 发表于 2016/4/21 23:39:24 编 辑 |
|
今天要为大家收集分享的Python学习(http://www.maiziedu.com/course/python-px/)代码为:Python 按月增加datetime月份的问题源码。可能有同学看不明白什么是Python 按月增加datetime?其实简单的理解python datetime增加月份的问题,就是一些人的日常工作是需要对月份加减进行相关操作计算。 DateTime是什么:DateTime是时间类型,datetime是Python处理日期和时间的标准库。还有python time模块 Python 按月增加datetime月份的问题源码如下:(Python源码中注释部分多为英文,大家可自行翻译) #coding=utf-8   import datetime   # input datetime1, and an month offset # return the result datetime   def datetime_offset_by_month(datetime1, n = 1):       # create a shortcut object for one day     one_day = datetime.timedelta(days = 1)       # first use div and mod to determine year cycle     q,r = divmod(datetime1.month + n, 12)       # create a datetime2     # to be the last day of the target month     datetime2 = datetime.datetime(         datetime1.year + q, r + 1, 1) - one_day   '''    if input date is the last day of this month    then the output date should also be the last    day of the target month, although the day    www.iplaypython.com    may be different.    for example:    datetime1 = 8.31    datetime2 = 9.30 '''       if datetime1.month != (datetime1 + one_day).month:         return datetime2   '''     if datetime1 day is bigger than last day of     target month, then, use datetime2     for example:     datetime1 = 10.31     datetime2 = 11.30 '''       if datetime1.day >= datetime2.day:         return datetime2   '''  then, here, we just replace datetime2's day  with the same of datetime1, that's ok. '''       return datetime2.replace(day = datetime1.day)     d1 = datetime.datetime(2008, 8, 17) d2 = datetime_offset_by_month(d1, 13)   print '2008-8-17 + 13 month' print d2     d1 = datetime.datetime(2008, 8, 31) d2 = datetime_offset_by_month(d1, 13)   print '2008-8-31 + 13 month' print d2     d1 = datetime.datetime(2007, 1, 30) d2 = datetime_offset_by_month(d1, 13)   print '2007-1-30 + 13 month' print d2   result = """ 2008-8-17 + 13 month 2009-09-17 00:00:00   2008-8-31 + 13 month 2009-09-30 00:00:00   2007-1-30 + 13 month 2008-02-29 00:00:00 """ |
1 |
论坛帮助 会员认证删帖申请 联系我们 |