Skip to content

Instantly share code, notes, and snippets.

@neckothy
Created August 24, 2023 14:42
Show Gist options
  • Save neckothy/23c48bff3aea78d47111de90a9b03838 to your computer and use it in GitHub Desktop.
Save neckothy/23c48bff3aea78d47111de90a9b03838 to your computer and use it in GitHub Desktop.
find average days between a list of dates
from datetime import date, timedelta
# dates to average (for example, mushoku tensei v01-24 digital release dates)
dates = [
(2019, 4, 4),
(2019, 5, 23),
(2019, 8, 1),
(2019, 10, 10),
(2020, 1, 16),
(2020, 4, 2),
(2020, 7, 9),
(2020, 10, 1),
(2021, 1, 21),
(2021, 3, 25),
(2021, 5, 6),
(2021, 7, 15),
(2021, 9, 23),
(2021, 11, 25),
(2022, 2, 17),
(2022, 4, 21),
(2022, 6, 16),
(2022, 7, 14),
(2022, 9, 29),
(2022, 12, 22),
(2023, 2, 23),
(2023, 5, 4),
(2023, 7, 6),
(2023, 8, 24),
]
# time delta between each date
deltas = [
(date(*dates[i + 1]) - date(*d)) for i, d in enumerate(dates) if i + 1 < len(dates)
]
# simple days between
days_between = [delta.days for delta in deltas]
# rounded avg days between
avg_days_between = round(sum(days_between) / len(days_between))
# estimate next date: last date + avg gap
next_date_estimate = date(*dates[-1]) + timedelta(days=avg_days_between)
# output full list of days between
# print(days_between)
print(f"shortest gap: {min(days_between)} days")
print(f"longest gap: {max(days_between)} days")
print(f"average gap: {avg_days_between} days")
# output estimated next date
# print(f"next date estimate: {next_date_estimate}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment