[英]How to tell if two dates in a list are consecutive in Python?
我已按順序對字符串日期列表進行排序
sorteddates =['2017-04-26', '2017-05-05', '2017-05-10', '2017-05-11', '2017-05-16']
我嘗試使用它來按連續日期對我的代碼進行排序,因為我很難理解。 我想看看哪兩個日期是連續的。 只有兩個日期。
dates = [datetime.strptime(d, "%Y-%m-%d") for d in sorteddates]
date_ints = set([d.toordinal() for d in dates])
datetime
- 仍然按排序順序。datetime
也有timedelta
值。一些代碼:
# Convert list to datetime; you've shown you can do that part.
enter code here
one_day = datetime.timedelta(days=1)
for today, tomorrow in zip(sorteddates, sorteddates[1:]):
if today + one_day == tomorrow:
print ("SUCCESS")
如果我正確理解您的問題,要獲得第一對連續日期,您可以檢查它們的增量是否為 1 天:
from datetime import datetime
sorteddates =['2017-04-26', '2017-05-05', '2017-05-10', '2017-05-11', '2017-05-16']
dates = [datetime.strptime(d, "%Y-%m-%d") for d in sorteddates]
d = next(((d1, d2) for d1, d2 in zip(dates, dates[1:]) if (d2 - d1).days == 1), None ) # <-- returns pair or None if no consecutive dates are found
print(d)
印刷:
(datetime.datetime(2017, 5, 10, 0, 0), datetime.datetime(2017, 5, 11, 0, 0))
或格式化:
if d:
print([datetime.strftime(i, "%Y-%m-%d") for i in d])
印刷:
['2017-05-10', '2017-05-11']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.