StandUp / get_next_standup_taker.py
BulatF's picture
Upload get_next_standup_taker.py
a974944
raw
history blame
No virus
1.21 kB
from datetime import datetime, timedelta
team_members = ["Yiannis", "Anastasia", "Bulat", "Thomas", "Sanika"]
def count_weekdays(start_date, end_date, target_weekdays):
total_days = (end_date - start_date).days + 1
count = 0
for day in range(total_days):
current_day = start_date + timedelta(days=day)
if current_day.weekday() in target_weekdays:
count += 1
return count
def get_next_standup_taker(last_standup_taker, last_date_str, force_standup_taker=None, current_date=None):
today = current_date if current_date else datetime.now().date()
today_str = today.strftime("%Y-%m-%d")
weekday = today.weekday()
if weekday not in [1, 3]:
return "Today is not a stand-up day.", today_str
if force_standup_taker:
return force_standup_taker, today_str
last_date = datetime.strptime(last_date_str, "%Y-%m-%d").date()
elapsed_days = count_weekdays(last_date, today, [1, 3])
last_index = team_members.index(last_standup_taker)
next_index = (last_index + elapsed_days - 1) % len(team_members)
next_standup_taker = team_members[next_index]
return next_standup_taker, today_str