Westonci.ca is the ultimate Q&A platform, offering detailed and reliable answers from a knowledgeable community. Explore thousands of questions and answers from a knowledgeable community of experts on our user-friendly platform. Join our platform to connect with experts ready to provide precise answers to your questions in different areas.

Your task is to write and test a function which takes three arguments (a year, a month, and a day of the month) and returns the corresponding day of the year (for example the 225th day of the year), or returns None if any of the arguments is invalid.

Hint: You need to find the number of days in every month, including February in leap years.

Sagot :

TJC07

Answer:

This is in python

Explanation:

Alter my code if you need anything changed. (You may need to create a new function to add a day to February if necessary)

months = [31,28,31,30,31,30,31,31,30,31,30,31]

monthNames = ['january','february','march','april','may','june',

            'july','august','september','october','november','december']

array = []

def test(y,m,d): #Does not account for leap-year. Make a new function that adds a day to february and call it before this one

   if m.lower() not in monthNames or y < 1 or d > 31:

       if m.lower() == "april" or m.lower() == "june" or m.lower() == "september" or m.lower() == "november" and d > 30:

           return None

       elif m.lower() == "february" and d > months[1]:

           return None

       return None

   num = monthNames.index(m.lower()) #m should be the inputted month

   months[num] = d

   date = months[num]

   for n in range(num):

       array.append(months[n])

   tempTotal = sum(array)

   

   return tempTotal + date

x = int(input("Enter year: "))

y = input("Enter month: ")

z = int(input("Enter day: "))

print(f"{y.capitalize()} {z} is day {test(x,y,z)} in {x}")