Python Programming: An Introduction to Computer Science, 3rd Ed.
Python Programming: An Introduction to Computer Science, 3rd Ed.
3rd Edition
ISBN: 9781590282755
Author: John Zelle
Publisher: Franklin, Beedle & Associates
bartleby

Concept explainers

bartleby

Videos

Question
Book Icon
Chapter 7, Problem 12PE
Program Plan Intro

Calculate whether a date is valid

Program plan:

  • Define the function “isLeapYear()”,
    • Check whether the year is not divisible by "4",
      • If it is true, return “False”.
      • Otherwise, check whether the year is divisible by "100",
        • If it is true, check whether the year is divisible by "400",
          • If it is true, return “True”.
          • Otherwise, return “False”.
        • Otherwise, return “True”.
  • Define the function “main()”,
    • Get the date from the user.
    • Assign month, day, and year by splitting the date by "/" using “split()” method
    • Typecast month, day, and year to “int” type.
    • Check whether either a month is greater than "12" or day is greater than "31",
    • If it is true, prints date as invalid.
      • Otherwise, Check whether day is less than or equal to "28",
      • If the condition is “True”, print as valid.
      • Otherwise, check whether month is "2" and day is "29",
      • If it is “True” Check whether the return value from “isLeapYear()” is “False”,
        • If “True” print invalid.
        • Otherwise, print valid.
      • Otherwise, check whether day is equal to “31”,
        • If “True”, Check whether month is either "2" or "4" or "6" or "11",
          • If “True” print invalid.
          • Otherwise, print valid.
        • Otherwise, print valid.
  • Call the function “main()”.

Expert Solution & Answer
Check Mark
Program Description Answer

This Python program accepts a date in the form month / day / year and prints whether the date is valid or not.

Explanation of Solution

Program:

File name: “Leap.py”

#Define the function isLeapYear()

def isLeapYear(y):

    #Check whether the year is not divisible by "4"

    if (y % 4) != 0:

        #Return false

        return False

    #Otherwise

    else:

        #Check whether the year is divisible by "100"

        if (y % 100) == 0:

            #Check whether the year is divisible by "400"

            if (y % 400) ==0:

                #Return true

                return True

            #Otherwise

            else:

                #Return false

                return False

        #Otherwise

        else:

            #Return true

            return True

#Define the function main()

def main():

    #Get the date from the user

    date=eval(input("Enter date"))

'''Assign month, day, and year by splitting the date by "/" using split() method'''

    month_Str, day_Str, year_Str = date.split("/")

    #Typecast month to int type

    mon = int(month_Str)

    #Typecast day to int type

    d = int(day_Str)

    #Typecast year to int type

    yr = int(year_Str)

'''Check whether either a month is greater than "12" or day is greater than "31"'''

    if mon > 12 or d > 31:

        #Print a message

        print("This date is invalid.")

    #Otherwise

    else:

        #Check whether day is less than or equal to "28"

        if d <= 28:

            #Print a message

            print("This date is valid.")

        #check whether month is "2" and day is "29"

        elif mon == 2 and d == 29:

            #Check whether the return value is false

            if isLeapYear(yr) == False:

                #Print a message

                print("This date is invalid.")

            #Otherwise

            else:

                #Print a message

                print("This date is valid.")

        #Check whether day is "31"

        elif d == 31:

'''Check whether month is either "2" or "4" or "6" or "11"'''

            if mon == 2 or 4 or 6 or 11:

                #Print date is invalid

                print("This date is invalid")

            #Otherwise

            else:

                #Print date is valid

                print("This date is valid")

        #Otherwise

        else:

            #Print dte is valid

            print("The date is valid.")

#Call the function main()

main()

Sample Output

Output:

Enter date'6/29/1200'

The date is valid.

>>>

Additional Output:

Enter date'12/32/1500'

This date is invalid.

>>>

Additional Output:

Enter date'13/28/1999'

This date is invalid.

>>>

Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!
Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Constants, Variables, Data types, Keywords in C Programming Language Tutorial; Author: LearningLad;https://www.youtube.com/watch?v=d7tdL-ZEWdE;License: Standard YouTube License, CC-BY