Прочитал, что в одной фирме дают задание: не используя библиотеки и Гугл, написать функцию, которая для заданной даты вернет название дня. Скажем, для 2021-03-25 — вторник, для 2015-09-11 — среду (беру с потолка). Я бы эту задачу не решил, и вот почему.

Во-первых, я не помню все критерии високосного года. Каждый четвертый — это понятно, но есть еще два критерия, которые встречаются реже. Нужно смотреть их в википедии.

Во-вторых, я не помню, сколько дней в каком месяце за исключением февраля. В детском саду и школе нас учили считать по костяшкам, но на мой взгляд, это бред. Костяшек восемь, месяцев двенадцать. Если брать одну руку, то костяшек четыре, а промежутков три, в сумме семь. Как ни крути, эта сова не натягивается.

В-третьих, нужна точка отсчета. Даже если я переведу дату в число дней и возьму остаток от деления на семь, нужно знать, какой день был первым. Считается, что Иисус родился в понедельник? В любом случае это нужно сверять с википедией.

Еще был переход с юлианского календаря на григорианский, отсюда “старый стиль”, “старый новый год” и прочее.

Наконец, текущая система дат и времени — это костыль на костыле, которые достались нам от древних греков. Самое худшее, что можно вообразить — это работать с датами без библиотеки.

“Что ж, свою кандидатуру я снимаю сам.” ©

А вы бы решили?