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!
Students have asked these similar questions
Write a program that computes the earnings per shift for a babysitter. A babysitter charges $10 per hour before noon and $15 after noon. The program reads the starting time in hours and minutes and the ending time in hours and minutes. All times are between 8:00 am, and 7:59 pm, using a 12-hour clock. For example, you should consider hour 8 as 8 am and hour 6 as 6pm. The program should check the validity of the inputs as follows. 1) Hours are from 0-11 (0 for noon). 2) Minutes are from 0-59. 3) The start time must be before noon. 4) The end time must not be before 1pm.   The program should display specific warnings regarding the above when the user submits invalid input; the program should prompt the user to re-enter the times again. The program should output the total hours worked and the total earnings per shift. Example: >9h 20m to 6h 15m You have worked 8 hours and 55 minutes in this shift, earning $120.417     Important Notes: Please do this in C++ Programming Do not use any…
Write a program that reads an integer and determines and prints whetherit’s odd or even. [Hint: Use the remainder operator. An even number is a multiple of two. Any multiple of two leaves a remainder of zero when divided by 2.]
Write a program that takes in an integer in the range 20-98 as input. The output is a countdown starting from the integer, and stopping when both output digits are identical. Ex: If the input is 93, the output is: 93 92 91 90 89 88 Ex: If the input is 77, the output is: 77 Ex: If the input is not between 20 and 98 (inclusive), the output is: Input must be 20-98 For coding simplicity, follow each output number by a space, even the last one. Use a while loop. Compare the digits; do not write a large if-else for all possible same-digit numbers (11, 22, 33, ..., 88), as that approach would be cumbersome for large ranges.
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.
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education
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