Levman5
@Levman5
print(“Hello World!”)

Как это можно сделать?

У меня есть список дат в формате datetime.datee и мне надо получить все даты из списка за последние 14 дней. Как это можно сделать?
  • Вопрос задан
  • 158 просмотров
Решения вопроса 1
ramzis
@ramzis
FullStackOverflow
Если я все правильно понял.
Можно через цикл посчитать количество дней между датами (статья), и вывести только те, что были не больше 14 дней назад.

from datetime import datetime

date_list = [datetime(2021, 10, 29), datetime(2021, 9, 4), datetime(2021, 10, 17), datetime(2021, 10, 12)]
date_now = datetime.now()

for d in date_list:
    if 14 >= (date_now - d).days:
        print(d)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Объекты datetime.datetime можно сравнивать простыми операторами <, >
Можно найти дату двухнедельной давности, и оставить в списоке только те, что больше неё:
import datetime

""" сейчас, интервал в 2 недели, и дата 2 недели назад """
now = datetime.datetime.now()
twoweeks = datetime.timedelta(days=14)
backdate = now - twoweeks

""" список дат """
a = datetime.datetime(2020, 01, 01)
b = datetime.datetime(2021, 01, 01)
c = datetime.datetime(2021, 10, 18)
date_list = [a, b, c]

""" отобрать только недавние """
recent = filter(lambda x: x > backdate, date_list)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы