Python在今天添加用户指定的日月年。

问题描述 投票:0回答:1

我试图在今天的日期上添加x天数或月数或年数,其中x和频率都是由用户提供的。

我看过 dateutil.relativedelta 但由于它不接受一个字符串作为参数,我也许可以尝试一下。myStr=‘months=+6’ 而后用于 relativedelta(myStr) 我不知道该怎么办。如果有任何提示,将不胜感激。

谢谢。

python datetime python-dateutil relativedelta
1个回答
1
投票

你可以使用 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
© www.soinside.com 2019 - 2024. All rights reserved.