Kyree Hammond
Kyree Hammond

Reputation: 11

Trying to make a program that displays days in a month

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")

Upvotes: 0

Views: 225

Answers (3)

Kyree Hammond
Kyree Hammond

Reputation: 11

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

Upvotes: 0

Simon
Simon

Reputation: 10150

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))

Upvotes: 0

Abdul Jabbar
Abdul Jabbar

Reputation: 196

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);

Upvotes: 1

Related Questions