Поиск дней между двумя заданными датами в строковом формате

У меня есть такие данные: [а, дата начала, дата окончания]

a_list = [ ['a', '2021-02-22', '2021-02-25'] ]

и хотел бы, чтобы дни между этими двумя датами были похожи на [a, startdate, enddate, days between these date]

a_list = [ ['a', '2021-02-22', '2021-02-25', 3] ]

Как мне подойти к этой проблеме? Заранее спасибо!

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
0
25
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

  1. Превратите свои строки в datetime.date типы

    import datetime
    
    a_dt = datetime.date.strptime(a_list[0][1],'%Y-%m-%d')     
    b_dt = datetime.date.strptime(a_list[0][2],'%Y-%m-%d')
    
  2. Вычислите datetime.timedelta разницу между ними

    days_between = (b_dt - a_dt).days # Assuming b_dt is after a_dt for +ve days
    
  3. Добавьте результат в свой список.

    a_list[0].append( days_between )
    

Если у вас есть два объекта даты, вы можете просто вычесть их, что вычислит объект timedelta.

from datetime import date

d0 = date(2008, 8, 18)
d1 = date(2008, 9, 26)
delta = d1 - d0
print(delta.days)
Ответ принят как подходящий

Разработка готового решения:

from datetime import datetime

a_list = [ ['a', '2021-02-22', '2021-02-25'] ]
res = []

for el in a_list:
    d1 = datetime.strptime(el[1], '%Y-%M-%d')
    d2 = datetime.strptime(el[2], '%Y-%M-%d')
    res.append(el + [(d2-d1).days])

res
>>> [['a', '2021-02-22', '2021-02-25', 3]]

Это самый простой способ достичь своей цели.

from datetime import datetime

a_list = [ ['a', '2021-02-22', '2021-02-25'] ]
start_date = datetime.strptime(a_list[0][1], '%Y-%M-%d')
end_date = datetime.strptime(a_list[0][2], '%Y-%M-%d')
days = (end_date-start_date).days
a_list[0].append(days)
print(a_list)

Другие вопросы по теме