Задание № 6: Напишите функцию output(year), которая для заданного года year (тип int) возвращает чего было больше воскресений или сред в этом году. Функция должна выдавать: 0 - если было больше воскресений; 1 - если больше сред; 2 - если количество воскресений такое же, как и количество сред.
Задание № 7:
В библиотеке переучет каждый третий четверг месяца. Напишите функцию output(date), которая по заданной дате date (тип datetime.date) возвращает количество дней до следующего переучета.
Забыл написать это если что Питон.
def output(year): #начало функции output
import datetime
ans = datetime.date(year, 1, 1).strftime("%a") #выдаст название первого дня недели (за то что там в скобочках один один)
print('отладочная информация')
print('первый день недели',ans)
#определяем колво дней которых нужно дождаться до среды
if (ans == "Mon") : s = 2 #Пон
elif (ans == "Tue") : s = 1 #Втор
elif (ans == "Wed") : s = 0 #Среда
elif (ans == "Thu") : s = 6
elif (ans == "Fri") : s = 5
elif (ans == "Sub") : s = 4
elif (ans == "Sun") : s = 3
print ('до среды осталось',s,'дней')
#определяем колводней нужных до воскресенья
if (ans == "Mon") : z = 6 #Пон
elif (ans == "Tue") : z = 5 #Втор
elif (ans == "Wed") : z = 4 #Сред
elif (ans == "Thu") : z = 3
elif (ans == "Fri") : z = 2
elif (ans == "Sub") : z = 1
elif (ans == "Sun") : z = 0 #Воскресенье
print ('до воскресенья осталось',z,'дней')
#Определяем високостный год
if (year % 4 == 0) : leapyear=366 #366 дней
else: leapyear=365 #365 дней
print ('всего дней в году ',leapyear)
print ('сред ', (leapyear-s)//7)
print ('воскр ',(leapyear-z)//7)
print('')
#считаем и выводим итог
if (((leapyear-z) // 7) > ((leapyear-s)//7)) : print ('результат 0') #делим на 7 (это промежуток между повтором дня недели) а дробное число отбрасываем далее сравниваем больше ли воскресений
elif (((leapyear-z) // 7) < ((leapyear-s)//7)) : print ('результат 1') #делим на 7 (это промежуток между повтором дня недели) а дробное число отбрасываем далее сравниваем больше ли сред
elif (((leapyear-z) // 7) == ((leapyear-s)//7)) : print ('результат 2') #делим на 7 (это промежуток между повтором дня недели) а дробное число отбрасываем далее сравниваем равенство ли
else: print ('какаято ошибка')
output(2015) #запускаем функцию output(с2015годом) работает от 1 до 9999, разные результы у 2014,2015,2017
Объяснение:
план такой: определяем первое число года первого месяца падает на какой день недели отсчитываем сколько дней нужно ждать до среды и отдельно до воскресенья далее выяснив сколько дней в году у нас есть минусуем их прожданными днями до первой среды и получившийся остаток дней так как мы на первой среде делим на промежуток в семь дней до следующей среды и выясняем сколько этих сред таким образом будет а дробный остаток выкидываем команда посчитать без остатка сразу это // например 366 // 7 = итог целое колво дней без кусочков но это если первый день сразу нужный попадется правда а теперь тоже самое дело для воскресений сколько до перв. воскр. прождали вычтеным из нашего запаса дней оставшихся до конца года пока ждали этого воскр. и делим узнаем колво воскресений в году так между ними всегда 7 дней же промежуток кажись. Теперь воплощаем план
отдельное за приёмы как писать которые сильно крайне даже это задание этим людям из интернета мне не известных в точности за (year %4 ==0) и как им пользоватся чтобы високостный узнать и за datetime.date(year, 1, 1).strftime("%a") вот эта болеее всех и задание который выводит название дня недели от числа введеного