Напишите функцию, которая принимает дату и возвращает день недели следующего 29 февраля после этой даты.
Входные данные представляют собой строку в расширенном формате ISO: YYYY-MM-DD (например, 27 мая 2010 г. будет «2010-05-27»).
Выводом является строка, которая является названием дня недели (например, «Понедельник»). Капитализация не имеет значения, но дайте полное имя на английском языке.
Если указанная дата 29 февраля, верните день недели следующего 29 февраля.
Используйте расчеты для Proleptic Gregorian Calendar (таким образом, он использует расчеты григорианского високосного года для всей его длины). Не беспокойтесь о юлианском календаре или о том, когда произошел переход с юлианского на григорианский. Просто примите Григорианский для всего.
Функция должна работать как минимум в диапазоне «0001-01-01» - «2100-01-01».
Не стесняйтесь использовать любые стандартные библиотеки, которые предоставляет выбранный вами язык, но не используйте сторонние библиотеки, если вы не хотите включать этот код в свое решение.
Самый короткий код (наименьшее количество символов) выигрывает.
Примеры:
func("0001-01-01")
->"Sunday"
func("1899-12-03")
->"Monday"
func("1970-01-01")
->"Tuesday"
func("1999-07-06")
->"Tuesday"
func("2003-05-22")
->"Sunday"
func("2011-02-17")
->"Wednesday"
func("2100-01-01")
->"Friday"
(и нет, вам не нужно называть функцию func
)
подсказки:
- Помните, что годы, заканчивающиеся на 00, которые не делятся на 400, не являются високосными.
- 1 января 0001 - понедельник.