Номер дня в дневнике

тема: Разбор случаев · уровень: средний

Условие

У Даши есть бумажный дневник привычек. Она пронумеровала все дни подряд, начиная с 1 января 1900 года.

Она помнит, что 01.01.1900 — понедельник.

По номеру дня N помоги восстановить, какая это дата и какой это день недели.

Календарь — обычный григорианский:

Формат ввода Одно целое число N.

Формат вывода Выведи строку вида YYYY-MM-DD DDD, где DDD — одно из: Mon Tue Wed Thu Fri Sat Sun.

Ограничения

Пример Ввод:

1

Вывод:

1900-01-01 Mon

Разберись руками

День №1 — это самый первый день, с которого Даша начала нумерацию: 01.01.1900. Известно, что он был в понедельник, так что на примере можно руками проверить, как выбирать нужный случай и что именно выводить.

Идея: Сначала превращаешь номер дня в «сдвиг в днях» относительно 1900-01-01. По этому сдвигу отдельно находишь день недели (он повторяется циклом в 7 дней). Потом по тому же сдвигу проходишь календарь: отнимаешь целые годы, затем целые месяцы, пока не останется номер дня внутри месяца, и собираешь строку даты.

Решить задачу с автопроверкой на Python →

Куда дальше