2013-08-14 2 views
1

Это образец вопрос, который я получил:Python (. 2.7.5) нужна помощь с календарным модулем

Создать программу weekday.py Python, который считывает входные данные из формы. Чтобы определить день недели, вы можете использовать функцию из модуля календаря. Функция будний день можно назвать так:

weekday = calendar.weekday(y, m, d) 

... если у вас есть год, месяц и день в переменных y, m и d. Это положит целое число 0 - 6 в переменную weekday, где 0 - понедельник, 1 - вторник и т. Д.

Используйте серию if заявлений для получения вывода, как это на сгенерированной странице (с соответствующим будний день, конечно, - это то, что вы хотите произвести, если weekday был 0):

<p>That's a Monday.</p> 

Это мой, что это было до сих пор:

Python (новая версия):

import cgi 
import calendar 
form = cgi.FieldStorage() 

print "Content-type: type/html" 
print 
y = form['year'].value 
m = form['month'].value 
d = form['date'].value 
weekday = calendar.weekday(y, m, d) 
if weekday == 0: 
    print "<p> That's monday </p>" 
if weekday == 1: 
    print "<p> That's tuesday </p>" 
if weekday == 2: 
    print "<p> That's wednesday </p>" 
if weekday == 3: 
    print "<p> That's thursday </p>" 
if weekday == 4: 
    print "<p> That's friday </p>" 
if weekday == 5: 
    print "<p> That's saturday </p>" 
if weekday == 6: 
    print "<p> That's sunday </p>" 

Может кто-нибудь, пожалуйста, помогите мне ?? Буду весьма признателен за это. Спасибо!

+0

Вы не прочитали ни одного материала здесь. Какие поля использует форма для подключения к этому скрипту? –

+0

Серьезно ?! Вы понятия не имеете, что вы делаете с моим другом. Вы не определили переменные y, m или d. И тогда вы проверяете против d, в то время как вы должны проверять тех, кто выступает против «буднего дня», потому что это то, что будет в числе 0-6. Если вы дадите правильные номера в этой функции, вызовите – mavili

+0

mavili: Да ... это перепутались. – Fred

ответ

2

Вам нужно получить значения по y, m и d от form объекта первого:

y = int(form['year'].value) 
m = int(form['month'].value) 
d = int(form['day'].value) 

при условии, что HTML форма, которая подчиняется этому сценарию имеет year, month и day поля. Глядя на http://www2.cs.sfu.ca/CourseCentral/165/ggbaker/1134-dist/lab/files/lab10-dateform.html, ваша первоначальная форма использует именно те поля. Данные GET и POST всегда являются строками, но функция calendar.weekday() хочет, чтобы вы передавали целочисленные значения, поэтому здесь они разбираются в целые числа с функцией int().

Затем вы назначая выход функции calendar.weekday() к имени weekday, но не используется, что вообще в остальной части кода. Возможно, вам нужно пересмотреть, что все те инструкции if должны тестироваться.

+0

А также убедитесь, что вы проверяете переменную 'weekday' вместо 'd' – mavili

+0

@mavili: Я стараюсь не решать * все * проблемы сразу .. надеюсь, что OP делает * some * (more) of сама работа. Я добавил намек. –

+0

Спасибо! Я все еще пытаюсь выяснить, глядя на ваш код. – Fred

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