玩蛇网提供最新Python编程技术信息以及Python资源下载!

Python 按月增加datetime月份的问题

python 培训

 今天要为大家收集分享的Python学习代码为: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)



#------------玩蛇网-----www.iplaypython.com---------------

d1 = datetime.datetime(2008, 8, 17)
d2 = datetime_offset_by_month(d1, 13)

print '2008-8-17 + 13 month'
print d2
print



d1 = datetime.datetime(2008, 8, 31)
d2 = datetime_offset_by_month(d1, 13)

print '2008-8-31 + 13 month'
print d2
print



d1 = datetime.datetime(2007, 1, 30)
d2 = datetime_offset_by_month(d1, 13)

print '2007-1-30 + 13 month'
print d2
print

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
"""

玩蛇网原创,转载请注明文章出处和来源网址:http://www.iplaypython.com/code/base/b2622.html



微信公众号搜索"玩蛇网Python之家"加关注,每日最新的Python资讯、图文视频教程可以让你一手全掌握。强烈推荐关注!

微信扫描下图可直接关注

玩蛇网Python新手QQ群,欢迎加入: ① 240764603 玩蛇网Python新手群
文章发布日期:2016-01-08 10:31 玩蛇网 www.iplaypython.com

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
相关文章推荐
别人正在看
特别推荐
去顶部去底部