Я делаю некоторые вычисления времени в Python.
Цель:
Часть этого пытается:
Учитывая дату, добавить интервал времени (X лет, X месяцев, X недель), дата возврата
т.е.
- входные аргументы: input_time (datetime.date), интервал (datetime.timedelta)
- return: datetime.date
Я посмотрел на datetime и datetime.timedelta docs
класс datetime.timedelta (days = 0, секунд = 0, микросекунд = 0, миллисекунд = 0, минут = 0, часов = 0, недель = 0)).
Похоже, они хорошо работают, если я хочу добавить определенное количество часов или недель.Тем не менее,
Проблема:
- Я пытаюсь реализовать такую операцию, как дата + 1 год и не могу понять это
Например
start = datetime.datetime(2000, 1, 1)
# expected output: datetime.datetime(2001, 1, 1)
# with the weeks, etc arguments given in timedelta, this fails unsurprisingly e.g
start + datetime.timedelta(weeks = 52)
# returns datetime.datetime(2000, 12, 30, 0, 0)
Вопрос
Возможна ли эта годовая операция с помощью базовых инструментов datetime - если да, то как мне это сделать??
Я понимаю, что для примера года я мог бы просто сделать start.replace(year = 2001)
, но этот подход потерпит неудачу, если в качестве входных данных у меня будут месяцы или недели.
Насколько я понимаю, библиотека dateutil обладает более продвинутыми функциями, но мне неясно, насколько хорошо она взаимодействует со встроенными объектами datetime.
Я рассмотрел этот вопрос , но это мне не помогло.
Любая помощь приветствуется!
Запуск Python 3.6.5 на MacO.