0

I'm trying to write a program that shows the days in a month when you type the number that corresponds to the month. Ex. 1 = January, would print "31" This is what I have and it seems logical to me. Although I'm just over a month into this and I have no idea what I'm doing.

def calcDaysInMonth():
(list,(range,(1, 12)))

a = raw_input()
int(a)

jan = 1

feb = 2

mar = 3

apr = 4

may = 5

june = 6

july = 7

aug = 8

sept = 9

octo = 10

nov = 11

dec = 12

if jan is True:
print("31")
Thielicious
  • 4,122
  • 2
  • 25
  • 35

3 Answers3

1

using static number wont help you get correct result. because Feb days in leap year is different than normal. so use

$Year  = 2017
$month = 08`

echo cal_days_in_month(CAL_GREGORIAN, (int)$month, $Year);
Abdul Jabbar
  • 196
  • 1
  • 4
0

The reason your code isn't working is because you're assigning the input to a but you're never checking the value of a and using that to determine what should be printed (you're simply assigning integers to variables called jan, feb etc)

You're looking for something like this:

a = int(raw_input())

if a == 1:
    print("31 days")
elif a == 2:
    print("28 days")

# just repeat with elif until december/12

You could try to get clever with it with dictionaries to map months to days or something, but really a more sensible solution would be the following...

Due to February having a different number of days given leap years, it makes more sense to just use calendar.monthrange to get the number of days in a month for any given year:

from calendar import monthrange

year = 2017

a = int(raw_input())

num_days = monthrange(year, a)[1]

print("{} days".format(num_days))
Simon
  • 9,762
  • 15
  • 62
  • 119
0

Thank you for all your help guys. My class now has an answer for what we were doing. What was wanted:

month = int(raw_input())
day = 0

def calcDays(month):
    if month ==1:


days = 31
        print 31
    if month==2:
        days = 28
        print 28
    if month == 3:
        days = 31
        print 31
    if month == 4:
        days = 30
        print 30
    if month==5:
        days = 31
        print 31
    if month ==6:
        days = 30
        print 30
    if month==7:
        days = 31
        print 31
    if month ==8:
        days = 31
        print 31
    if month==9:
        days = 30
        print 30