как корректно высчитывать время в python3?

Возможно, конечно, я слепой и не нашёл это в документации и на форумах, но как высчитывать время? Типо мне нужно чтобы выводилось нынешняя дата (date-month-year) и дата, которая была 7 дней назад Мой прототип был примерно таким:

    import datetime
    
    now = datetime.datetime.now()
    
    dateNow = str(now.day) + '-' + str(now.month) + '-' + str(now.year)
    dateAgo = str(now.day - 7) + '-' + str(now.month) + '-' + str(now.year)
    print(dateNow)
    print(dateAgo)

Но он не увенчался успехом, т.к. в начале месяца дата просто будет становиться отрицательным числом .-.


Ответы (1 шт):

Автор решения: Namerek
from dateutil.relativedelta import relativedelta
from datetime import datetime, timedelta

n = datetime.now()
print(n, '\n')
# Если нам нуж единицы времени такие как неделя и меньше то вполне достаточно timedelta
print(n - timedelta(weeks=5, hours=3, minutes=25, seconds=12))

# Если нам нужны такие единицы как месяц и год, то нам понадобится билиотека python-dateutil
# pip install python-dateutil (Если не установлена)

print(n - relativedelta(years=2, months=3, days=11, hours=2, minutes=10, seconds=51))

#2021-12-18 05:50:16.126490 

#2021-11-13 02:25:04.126490
#2019-09-07 03:39:25.126490

В relevantdelta так-же можно задасать недели

→ Ссылка