Узнать день недели

Вася изобрёл машину времени. И уже переместился во времени в d1-й день m1-го месяца некоторого года. Оказалось, что это w1-й день недели. Сейчас Вася планирует переместиться во времени в день 2-й m2-го месяца этого же года. Помогите ему узнать, какой это будет день недели. Считайте, что этот год невисокосный. Формат входных данных Первая строка содержит три целых числа m1, d1 и w1 - месяц, число и день недели первой даты. Вторая строка содержит два целых числа m2 и d2 - месяц и число второй даты. Формат выходных данных Выведите одно число w2 – день недели второй даты.

import datetime
import random
 
def generate_year() -> int:  
    year = random.randint(1000, 2200)
    if((year % 400 == 0) or  
        (year % 100 != 0) and  
        (year % 4 == 0)):   
        return year
    else:
        generate_year()
 
def day_of_week(first_line: list, second_line: list):
    month, num, day = first_line
    month2, num2 = second_line
    year = generate_year()
    
    date = datetime.date(month, day, year)

Ответы (1 шт):

Автор решения: passant

Непонятно, зачем все эти все шаманские танцы.Если день недели задан просто числом, то наверное и вывод дня недели надо выполнить в виде числа. И тогда:

from datetime import datetime
m1,d1,w1=input().split(',')
w1=int(w1)
a = datetime.strptime(m1+'/'+d1, "%m/%d")
m2,d2=input().split(',')
b = datetime.strptime(m2+'/'+d2, "%m/%d")
delta = b - a
(delta.days+w1)%7

Пример вводим 27 февраля пятница, т.е. 2,27,5 Интересуемся днем 6 марта, т.е. 3,6

2,27,5

3,6
Out[34]: 5

Надо только помнить, что номера дней недели отсчитываются от понедельника (1), а воскресенье соответствует 0. Ну например:

2,27,5
3,8
Out[35]: 0
→ Ссылка