Created
August 24, 2023 14:42
-
-
Save neckothy/23c48bff3aea78d47111de90a9b03838 to your computer and use it in GitHub Desktop.
find average days between a list of dates
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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