2014-12-02 2 views
0

моего назначения является:Дать функцию для вычисления дня недели

Напишите функцию для расчета и возврата ч дня недели (целое число), учитывая год, месяц и день месяца. Использование Зеллерса конгруэнцы

Моего код:

DAYS = ["Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"] 

if month == 1: 
    month = 13 
    year -= 1 
elif month == 2: 
    month = 14 
    year -= 1 

century = str(year)[:1] 
century_year = str(year)[2:] 

century = int(century) 
century_year = int(century_year) 

h = (day_month+((26(month+1))//10+century_year)+(century_year//4)+(century//4)+(5*century))%7 

day = DAYS[h] 
return day 

Когда я пытаюсь запустить это я получить

h = (day_month+((26(month+1))//10+century_year)+(century_year//4)+(century//4)+(5*century))%7 
TypeError: 'int' object is not callable 
+9

'26 (месяц + 1)' -> '26 * (месяц + 1.) ' – vaultah

+0

Спасибо, что исправляет мою ошибку, но она не дает мне правильную дату, когда я ставлю 2 декабря 2014 года, она должна дать вторник, но она дает пятницу. –

+0

@NicolasPagnotta: Это новая проблема. Не ожидайте получить ответы путем добавления последующих комментариев к существующим вопросам. Если вы хотите узнайте, что не так с вашей логикой, напишите новый вопрос, объясняющий, что ваш код делает неправильно, и что вы сделали, чтобы его отладить. – abarnert

ответ

1

Я думаю, что ошибка может быть в умножениях. h = (day_month + ((26 (месяц + 1) ...

при написании 26 (месяц + 1) Python считает, что вы вызываете 26 как функцию с аргументами месяц + 1. Вы должны использовать символ умножения "*"

попытка написания: ч = (day_month + ((26 * (месяц + 1) ...

+0

Да, спасибо, что исправил проблему! –

Смежные вопросы