File size: 1,206 Bytes
a974944 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
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
|