Учитывая две даты, найдите количество рождественских дней в будний день

#python-3.x

#python-3.x

Вопрос:

Учитывая две даты, введенные пользователем, он находит количество крисов в заданном интервале, которые приходятся на будние дни, о чем я подумал:

 import datetime
startmonth=int(input())
startday=int(input())
startyear=int(input())
endmonth=int(input())
endday=int(input())
endyear=int(input())
startdate=date(startyear,startmonth,startday)
enddate=date(endyear,endmonth,endday)

def Christmas(startyear,endyear):
cs=0
while startyear <= endyear:
    if (date(startyear, 12,25).weekday())<5:
        cs=cs 1
        startyear=startyear 1
    else:
        startyear=startyear 1
return cs
print("the total number of chirstmas days on a weekday is", Christmas(startyear,endyear))
  

но он просто возвращает 0 независимо от того, какой ввод. какие-либо предложения / улучшения для этого?

Комментарии:

1. Вероятно, это должно быть return cs Christmas вместо return bday (что в любом случае нигде не определено).

2. мой плохой! просто изменил некоторые переменные и забыл это изменить. та же проблема сохраняется даже при исправлении

Ответ №1:

Вы неправильно определяете код.

 def Christmas(startyear,endyear):
    cs=0
    while startyear <= endyear:
        if (date(startyear, 12,25).weekday())<5:
            cs=cs 1
            startyear=startyear 1
        else:
            startyear=startyear 1
    return cs

print(Christmas(2010, 2020)) # 8
  

Комментарии:

1. к сожалению, по-прежнему выводится 0.

2. Вызов функции типа Рождество (2010, 2020) дает мне 8 в качестве выходных данных. Получаете ли вы 0 для одного и того же вызова функции?