Skip to content

Instantly share code, notes, and snippets.

@esweeney-cg
Created June 14, 2024 14:51
Show Gist options
  • Save esweeney-cg/44c8d310a3378c16140dff2547b954e5 to your computer and use it in GitHub Desktop.
Save esweeney-cg/44c8d310a3378c16140dff2547b954e5 to your computer and use it in GitHub Desktop.
calculate sprints
from datetime import datetime, timedelta
def calculate_sprints(initial_sprint_name, initial_start_date):
sprints = []
sprint_letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
current_sprint_name = initial_sprint_name
current_start_date = datetime.strptime(initial_start_date, "%m/%d/%Y")
sprint_duration = timedelta(days=11)
while current_start_date.year == 2024:
current_end_date = current_start_date + sprint_duration
sprints.append({
"sprint_name": current_sprint_name,
"start_date": current_start_date.strftime("%m/%d/%Y"),
"end_date": current_end_date.strftime("%m/%d/%Y")
})
# Move to the next sprint start date (two weeks after the current start date)
current_start_date = current_start_date + timedelta(days=14)
if current_start_date.year != 2024:
break
# Update sprint name
year = int(current_sprint_name[:-1])
letter = current_sprint_name[-1]
new_letter_index = sprint_letters.index(letter) + 1
if new_letter_index >= len(sprint_letters):
year += 1
new_letter_index = 0
current_sprint_name = f"{year}{sprint_letters[new_letter_index]}"
return sprints
initial_sprint_name = "24M"
initial_start_date = "06/17/2024"
sprints = calculate_sprints(initial_sprint_name, initial_start_date)
for sprint in sprints:
print(f"Sprint Name: {sprint['sprint_name']}, Start Date: {sprint['start_date']}, End Date: {sprint['end_date']}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment