2014-12-02 96 views
0

我的任务是:编写一个函数来计算星期几

编写一个函数,计算并传回H中给出的月的年,月,日的一周内(整数)的日子。使用蔡勒公式

我的代码:

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 2014-12-02 18:52:56

+0

谢谢,这解决了我的错误,但它没有给我正确的日期,当我把它放在2014年12月2日,它应该给星期二,但它给星期五 – 2014-12-02 19:02:59

+0

@NicolasPagnotta:这是一个新问题,不要期待得到答案通过将后续评论添加到现有问题中。如果你想知道你的逻辑有什么问题,写一个新的问题来解释你的代码做错了什么以及你做了什么来调试它。 – abarnert 2014-12-02 19:50:57

回答

1

我认为错误可能是乘法。 当你编写26(month + 1)时,Python会认为你是以参数month + 1调用26的函数,你必须使用乘号 “*”

尝试写: H =(day_month +((26 *(月+ 1)...

+0

是的,谢谢你解决问题! – 2014-12-03 00:14:47

相关问题