Answer:
eventName = []
eventMonth = []
eventDay = []
eventYear = []
def addEvent():
userEventName = input("Enter event name: ")
userEventMonth = int(input("Enter event month (1-12): "))
userEventDay = int(input("Enter event day(1-31): "))
userEventYear = int(input("Enter event year (Ex:2020): "))
userEventMonth = validateMonth(userEventMonth)
userEventDay = validateDay(userEventMonth,userEventDay,userEventYear)
eventName.append(userEventName)
eventMonth.append(userEventMonth)
eventDay.append(userEventDay)
eventYear.append(userEventYear)
def validateMonth(month):
if month >= 1 and month <= 12:
return month
else:
return 1
def validateDay(month,day,year):
# invalid days
if day < 1 or day > 31 :
return 1
# if the month is february
if month == 2:
isleap = False
if year%4 == 0:
if year%100 == 0:
if year%400 == 0:
isleap = True
else:
isleap = True
# if the year is leap
if isleap:
if day < 30:
return day
else:
return 1
else:
if day < 29:
return day
else:
return 1
# month with 31 days
if month in [1,3,5,7,8,10,12]:
return day
# month with 30 days
if month in [4,6,9,11] and day < 31:
return day
else:
return 1
def printEvents():
print("****** LIST OF EVENTS *********")
months = ['January', 'February', 'March', 'April', 'May', 'June', 'July',
'August', 'September', 'October', 'November', 'December']
for index in range(len(eventName)):
print(eventName[index])
print("Date: "+months[eventMonth[index] -1]+ " " + str(eventDay[index]) + ", " + str(eventYear[index]))
def printEventsForMonth(month):
months = ['January', 'February', 'March', 'April', 'May', 'June', 'July',
'August', 'September', 'October', 'November', 'December']
print("****** EVENTS IN " + months[month -1] + " *********")
for index in range(len(eventName)):
if eventMonth[index] == month:
print(eventName[index])
print("Date: "+months[eventMonth[index] -1]+ " " + str(eventDay[index]) + ", " + str(eventYear[index]))
userChoice = "yes"
while userChoice.upper() != "NO":
addEvent()
userChoice = input("Do you want to enter another event? NO to stop: ")
printEvents()
Explanation:
hope this saved somebody from a mental breakdown :)