У меня есть список datetime.dates
, и мне нужно проверить, будет ли каждая дата со следующего месяца подряд.Определение последовательных дат
Надеется, что это понятно, что я имею в виду из кода:
import datetime
from unittest import TestCase
def is_consecutive(dates):
# TODO
return
class DatesTestCase(TestCase):
def test_consecutive(self):
self.assertTrue(is_consecutive([datetime.date(2010, 10, 3),
datetime.date(2010, 11, 8),
datetime.date(2010, 12, 1),
datetime.date(2011, 01, 11)]))
def test_not_consecutive(self):
self.assertFalse(is_consecutive([datetime.date(2010, 7, 6),
datetime.date(2010, 8, 24),
datetime.date(2010, 3, 5),
datetime.date(2010, 10, 25)]))
self.assertFalse(is_consecutive([datetime.date(2010, 10, 6),
datetime.date(2010, 11, 2),
datetime.date(2010, 12, 9),
datetime.date(2010, 01, 20)]))
Как бы реализовать is_consecutive
?
Большое спасибо за помощь (совет, подсказка, код или что-нибудь полезное)!
Это, кажется, ложно возвращает True для списка, такого как [date (2010,9,3), date (2010, 10, 8), date (2010, 12, 1), date (2011, 1, 11)], где вторая и третья даты не являются последовательными. Я думаю, вы, вероятно, должны были бы вернуть одну из этих дат в список, иначе вы будете сопоставлять пары дат, но не каждая из них будет последовательной со следующей. –
@PaulGriffiths: Да, вы правы. Я принимал данные по-разному, а не поочередно. Исправлена – dawg