Как получить следующую дату, которая находится через год от данной даты? - PullRequest
0 голосов
/ 05 июня 2019

У меня есть объект datetime с именем dt, и я хочу получить следующую дату, которая находится на расстоянии 0,93 года от него.Я пытался relativedelta, но кажется, что функция не может занимать дробные годы.

dt = datetime.datetime(2012, 4, 30)
dt + relativedelta(years = 0.93)

>> ValueError: Non-integer years and months are ambiguous and not currently supported.

Любая помощь приветствуется.

Ответы [ 2 ]

3 голосов
/ 05 июня 2019

relativedelta не поддерживает дроби.Самый простой способ сделать это - преобразовать дробь в секунды и использовать ее.например,

YEAR_SECONDS = 60 * 60 * 24 * 365
dt + relativedelta(seconds = int(0.93 * YEAR_SECONDS))
1 голос
/ 05 июня 2019

Попробуйте умножить число с плавающей точкой на количество дней в году.Это даст вам 0,93 * 365 дней после текущей даты.

dt = datetime.datetime.today() + datetime.timedelta(days=int(365*.93))

ВЫХОД: -

2020-05-09 08:40:28.507170

ПРИМЕЧАНИЕ: -

В приведенном выше процессе мы преобразуем вint, потому что нужна дата.Если требуется более точная продолжительность времени (например, часы, минуты и т. Д.), Этот процесс может быть не лучшим.

...