Advertisement
Guest User

Untitled

a guest
Feb 26th, 2024
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.52 KB | None | 0 0
  1. from datetime import datetime, timedelta
  2.  
  3. # Функция, возвращающая выходные дни персоны 2
  4. def get_person_2_offdays(week):
  5.     base_offdays = [1, 2, 3]
  6.     offdays = [(day + week - 1) % 7 for day in base_offdays]
  7.     return offdays
  8.  
  9. # Функция, определяющая выходные дни персоны 3
  10. def get_person_3_offdays(week):
  11.     cycles = [[2, 3, 6], [0, 3, 4], [0, 1, 4, 5]]
  12.     cycle_week = (week - 1) % 3
  13.     return cycles[cycle_week]
  14.  
  15. # Начальная дата (26 февраля 2024 года)
  16. start_date = datetime(2024, 2, 26)
  17.  
  18. # Выходные дни персоны 1 фиксированы
  19. person_1_offdays = [0, 3, 4]
  20.  
  21. N = 12  # Количество недель для проверки
  22.  
  23. print("Date range: Starting from Feb 26, 2024")
  24. for week in range(1, N + 1):
  25.     current_date = start_date + timedelta(weeks=week-1)
  26.     week_start_date = current_date.strftime("%b %d, %Y")
  27.  
  28.     offdays_2 = get_person_2_offdays(week)
  29.     offdays_3 = get_person_3_offdays(week)
  30.  
  31.     # Находим общие выходные дни
  32.     common_offdays = set(person_1_offdays) & set(offdays_2) & set(offdays_3)
  33.     if common_offdays:
  34.         common_days_formatted = ', '.join([(current_date + timedelta(days=i)).strftime("%a %b %d") for i in common_offdays])
  35.         print(f"Week {week} (Starting {week_start_date}): common rest days are {common_days_formatted}")
  36.     else:
  37.         print(f"Week {week} (Starting {week_start_date}): no common rest days.")
  38.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement