Задача с датами
Прочитал, что в одной фирме дают задание: не используя библиотеки и Гугл, написать функцию, которая для заданной даты вернет название дня. Скажем, для 2021-03-25 — вторник, для 2015-09-11 — среду (беру с потолка). Я бы эту задачу не решил, и вот почему.
Во-первых, я не помню все критерии високосного года. Каждый четвертый — это понятно, но есть еще два критерия, которые встречаются реже. Нужно смотреть их в википедии.
Во-вторых, я не помню, сколько дней в каком месяце за исключением февраля. В детском саду и школе нас учили считать по костяшкам, но на мой взгляд, это бред. Костяшек восемь, месяцев двенадцать. Если брать одну руку, то костяшек четыре, а промежутков три, в сумме семь. Как ни крути, эта сова не натягивается.
В-третьих, нужна точка отсчета. Даже если я переведу дату в число дней и возьму остаток от деления на семь, нужно знать, какой день был первым. Считается, что Иисус родился в понедельник? В любом случае это нужно сверять с википедией.
Еще был переход с юлианского календаря на григорианский, отсюда “старый стиль”, “старый новый год” и прочее.
Наконец, текущая система дат и времени — это костыль на костыле, которые достались нам от древних греков. Самое худшее, что можно вообразить — это работать с датами без библиотеки.
“Что ж, свою кандидатуру я снимаю сам.” ©
А вы бы решили?
Нашли ошибку? Выделите мышкой и нажмите Ctrl/⌘+Enter
Юстас, 22nd Oct 2024, link
Арфы нет - берите бубен. Точка отсчёта есть - сегодняшний день и день недели. Запрет на библиотеки и Гугл не означает запрета на календарь в мобилке в штанах (или хотя бы печатный настенный) - есть где сверить количество дней в месяце для самописного валидатора и считалки. За мои 38 лет переносов високосного года замечено не было и в ближайшие 10 лет вроде не ожидается - а там или ишак, или падишах. Работа с юлианским/григорианским календарём должна оговариваться отдельно, потом всё равно придётся решать, в unix era считать или нет (<- повод сэкономить, а не реальное уточнение). МвП готов. Вы выше меня на голову. Просто напряжены. Чай/кофе, 10 минут - и у Вас получится лучше меня.
Константин, 17th Nov 2024, link
А почему по костяшкам не получается считать? Правая рука, первая костяшка - январь, дальше февраль и т.д.
Ivan Grishaev, 18th Nov 2024, link
Мне как-то не ложится в логову эта модель.