Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from datetime import datetime, timedelta
- # Функция, возвращающая выходные дни персоны 2
- def get_person_2_offdays(week):
- base_offdays = [1, 2, 3]
- offdays = [(day + week - 1) % 7 for day in base_offdays]
- return offdays
- # Функция, определяющая выходные дни персоны 3
- def get_person_3_offdays(week):
- cycles = [[2, 3, 6], [0, 3, 4], [0, 1, 4, 5]]
- cycle_week = (week - 1) % 3
- return cycles[cycle_week]
- # Начальная дата (26 февраля 2024 года)
- start_date = datetime(2024, 2, 26)
- # Выходные дни персоны 1 фиксированы
- person_1_offdays = [0, 3, 4]
- N = 12 # Количество недель для проверки
- print("Date range: Starting from Feb 26, 2024")
- for week in range(1, N + 1):
- current_date = start_date + timedelta(weeks=week-1)
- week_start_date = current_date.strftime("%b %d, %Y")
- offdays_2 = get_person_2_offdays(week)
- offdays_3 = get_person_3_offdays(week)
- # Находим общие выходные дни
- common_offdays = set(person_1_offdays) & set(offdays_2) & set(offdays_3)
- if common_offdays:
- common_days_formatted = ', '.join([(current_date + timedelta(days=i)).strftime("%a %b %d") for i in common_offdays])
- print(f"Week {week} (Starting {week_start_date}): common rest days are {common_days_formatted}")
- else:
- print(f"Week {week} (Starting {week_start_date}): no common rest days.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement