2024-05-16 01:05:59 发布
网友
我想在约会一个月后找到,但我不知道怎么找到。
假设我有这个约会:
08.03.2012
我想找一个月后的日期自动如下:
08.04.2012
有人知道怎么做吗?
如果您使用的是datetime字段,那么您可以拉出月份add,然后将其设置回原来的位置。
例如:
d = datetime.date(2003, 7, 29) d=d.month+1
当然,我仍然不明白日期时间是如何工作的,如果您不使用分隔符使用[“”]将是您的最佳选择
使用dateutil:
>>> import datetime >>> d1 = datetime.date.today() >>> from dateutil.relativedelta import relativedelta >>> d1 + relativedelta(months=1) datetime.date(2012, 4, 8) >>> d2 = datetime.date(year=2012,month=1,day=31) >>> d2 + relativedelta(months=1) datetime.date(2012, 2, 29)
正如Niklas所评论的那样,由于月份的长度各不相同,从今天开始的一个月可能相当模糊。
每个行业都有某种惯例;结果可能因你的目标而异。例如,它会被用来计算利息吗?它会被用来生成经常性账单吗?
如果你想从今天起30天:
>>> import datetime >>> d1 = datetime.date.today() >>> d1 datetime.date(2012, 3, 8) >>> d1 + datetime.timedelta(30) datetime.date(2012, 4, 7)
如果一个月有31天,可能不是你想要的:
>>> d2 = datetime.date(2012, 1, 1) >>> d2 + datetime.timedelta(30) datetime.date(2012, 1, 31) >>> import calendar >>> calendar.monthrange(2012, 1) (6, 31) >>> d2 + datetime.timedelta(calendar.monthrange(d2.year, d2.month)[1]) datetime.date(2012, 2, 1)
但是,如果下个月少于30天,可能不是您预期的结果:
>>> d3 = datetime.date(2012, 1, 31) >>> d3 + datetime.timedelta(calendar.monthrange(d3.year, d3.month)[1]) datetime.date(2012, 3, 2) >>> import dateutil >>> d3 + dateutil.relativedelta.relativedelta(months=1) datetime.date(2012, 2, 29)
如果您使用的是datetime字段,那么您可以拉出月份add,然后将其设置回原来的位置。
例如:
当然,我仍然不明白日期时间是如何工作的,如果您不使用分隔符使用[“”]将是您的最佳选择
使用dateutil:
正如Niklas所评论的那样,由于月份的长度各不相同,从今天开始的一个月可能相当模糊。
每个行业都有某种惯例;结果可能因你的目标而异。例如,它会被用来计算利息吗?它会被用来生成经常性账单吗?
如果你想从今天起30天:
如果一个月有31天,可能不是你想要的:
但是,如果下个月少于30天,可能不是您预期的结果:
相关问题 更多 >
编程相关推荐