我试图在今天的日期上添加x天数或月数或年数,其中x和频率都是由用户提供的。
我看过 dateutil.relativedelta
但由于它不接受一个字符串作为参数,我也许可以尝试一下。myStr=‘months=+6’
而后用于 relativedelta(myStr)
我不知道该怎么办。如果有任何提示,将不胜感激。
谢谢。
你可以使用 relativedelta
在这里,你只需要正确地指定它。
请确保你指定今天的日期为 datetime
对象。
from datetime import datetime
from dateutil.relativedelta import relativedelta
def add_calander(dmy, date):
if dmy == 'D':
value = int(input('How many days would you like to add?'))
date = date + relativedelta(days=value)
if dmy == 'M':
value = int(input('How many months would you like to add?'))
date = date + relativedelta(months=value)
if dmy == 'Y':
value = int(input('How many years would you like to add?'))
date = date + relativedelta(years=value)
return date
today = datetime.now()
dmy = input('Do you want to add days (D), months (M) or years (Y) to todays date?')
print(add_calander(dmy, today))
这允许用户指定日、月或年,并返回一个基于该对象的计算值。calendar
年使用 relativedelta
.
结果。
Do you want to add days (D), months (M) or years (Y) to todays date?M
How many months would you like to add?5
2020-10-15 08:19:56.814910
Do you want to add days (D), months (M) or years (Y) to todays date?Y
How many years would you like to add?10
2030-05-15 08:20:03.624634
Do you want to add days (D), months (M) or years (Y) to todays date?D
How many days would you like to add?6
2020-05-21 08:20:24.311311