我想写一个函数:
示例:我们在2014年5月,所以:
有很多关于日期时间和日历的文档,以至于我有点迷失了。谢谢你的帮助。
注意:我需要一个准确的方法来做,而不是近似:)
答案 0 :(得分:1)
import datetime
def myfunc(num_of_months):
today = datetime.date.today()
num_of_months = today.year * 12 + today.month - 1 - num_of_months
year = num_of_months / 12
month = num_of_months % 12 + 1
return year, month
答案 1 :(得分:0)
from time import strftime, localtime, time
from calendar import monthrange
def uberdate(n):
if n == 0: return strftime('%Y, %m').split(', ')
month = int(strftime('%m'))
aDay = 60*60*24
offset = aDay # One day to start off with
for i in range(0, n):
while int(strftime('%m', localtime(time()-offset))) == month:
offset = offset+aDay
month = int(strftime('%m', localtime(time()-offset)))
return strftime('%Y, %m', localtime(time()-offset)).split(', ')
print(uberdate(5))
这会产生:
[torxed@archie ~]$ python test.py
[2013, 12]
不知道为什么我得到了downvote,但引用OP:
示例:我们在2014年5月,所以:
myfunc(5)应该返回(2013,12)等。
这就是我的功能所产生的......
反馈人,在随意下载之前给予它。
答案 2 :(得分:-1)
已编辑(更改了月份,以提高准确度)
现在您可以输入负数月份并过去日期 我认为这就是你要找的东西
import datetime
from dateutil.relativedelta import *
def calculate_date(number_months):
time_now = datetime.datetime.now() # Get now time
time_future = time_now + relativedelta(months=+number_months) # Add months
return time_future.year,time_future.month #Return year,month
我已经在我的计算机中测试了这个脚本并且运行得很好
>>> calculate_data(5)
(2014, 10)
答案 3 :(得分:-1)
您可以使用python-dateutil
模块。 https://pypi.python.org/pypi/python-dateutil
def return_year_date(delta_month):
from datetime import date
from dateutil.relativedelta import relativedelta
new_date = date.today() + relativedelta(months= -delta_month)
return new_date.year, new_date.month