Синопсис:-
Мари изобрела Машину времени и хочет протестировать ее, совершив путешествие во времени, чтобы посетить Россию в День программиста (256-й день года) в течение года в пределах включительно от с 1700 по 2700 год.
С 1700 по 1917 год в России официальным календарем был юлианский календарь; с 1919 г. они использовали систему григорианского календаря. Переход от юлианской календарной системы к григорианской произошел в 1918 году, когда следующим днем ​​после 31 января было 14 февраля. Это означает, что в 1918 году 14 февраля было 32-м днем ​​года в России.
В обеих календарных системах февраль — единственный месяц с переменным количеством дней; в нем 29 дней в високосном году и 28 дней во все остальные годы. В юлианском календаре високосные годы делятся на 4; в григорианском календаре високосные годы являются одним из следующих:
1. Делится на 400.
2. Делится на 4 и не делится на 100.

Вопрос. Учитывая год y=1984 , найдите дату 256-го числа этого года по официальному российскому календарю в течение этого года. Затем распечатайте его в формате dd.mm.yyyy, где dd – день из двух цифр, _3  – месяц из двух цифр, а yyyy – 12.09.1984.

Решение:-

Решение было очень простым, пара циклов if-else, но единственной загвоздкой было условие 1918 года, когда произошел переход календаря с юлианского на григорианский.

Давайте сначала обсудим год до 1918 года, поскольку календарь использовал нас по юлианскому календарю до того, как единственное условие, которое мы должны были проверить, было то, был ли это високосный год или нет. Если это не високосный год, то 256ᵗʰ день этого года будет 12.09.ГГГГ, а если это високосный год, то 256ᵗʰ день этого года будет 13.09.ГГГГ.

Если год после 1918, т.е. мы живем по григорианскому календарю. Здесь снова, если это високосный год, 256ᵗʰ день этого года выпадает на 13.09.YYYY, иначе для не -високосный год будет 12.09.ГГГГ.

Теперь сосредоточимся на 1918 году, так как в этом году произошел переход с юлианского на григорианский календарь. На следующий день после 31 января было 14 февраля. Это означает, что в 1918 году 14 февраля было 32-м днем ​​года в России, 15 февраля будет 33-м днем, и поэтому 256ᵗʰ день был 26 августа 1918 года по юлианскому календарю, но по григорианскому календарю 256ᵗʰ по-прежнему будет 13.09.1918.

Ниже приведен весь код-

def dayOfProgrammer(year):
    if year>1918:
        if (((year%4==0) and (year%100!=0))or (year%400==0)):
            return "12.09."+str(year)
        else:
            return "13.09."+str(year)
    if year<1918:
        if (year%4==0):
            return "12.09."+str(year)
        else:
            return "13.09."+str(year)
    elif year==1918:
        return "26.09."+str(year)

Вывод-

Сегодня мы изучили логику високосного года и как работает пара если-иначе….(завершение:-PN)