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 13PE
Program Plan Intro

Calculate day number corresponding to a date

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 “verifyDate()”,
    • Check whether either a month is greater than "12" or day is greater than "31",
    • If it is true, return “False”.
      • Otherwise, Check whether day is less than or equal to "28",
      • If the condition is “True”, return “True”.
      • 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”, return “False”.
        • Otherwise, return “True”.
      • Otherwise, check whether day is equal to “31”,
        • If “True”, Check whether month is either "2" or "4" or "6" or "11",
          • If “True” return “False”.
          • Otherwise, return “True”.
        • 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 the value return from “verifyDate()” is “False”,
      • If it is “True”, print invalid.
      • Otherwise, calculate the number of day using the formula.
      • Check whether the month is “2”,
        • If “True”, check the value return from “isLeapYear()” method is “True”,
        • If “True”, calculate the day number using the formula.
        • Otherwise, calculate the day number using another formula.
      • Otherwise, calculate the day number using the given formula.
    • Print the numeric value for the date.
  • Call the function “main()”.

Expert Solution & Answer
Check Mark
Program Description Answer

This Python program accepts a date as month/ day /year format, and verifies that it is a valid date, and then calculates the corresponding day number.

Explanation of Solution

Program:

File name: “Number.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 verifyDate()

def verifyDate(mon, d, yr):

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

    if mon > 12 or d > 31:

        #Return "False"

        return False

    #Otherwise

    else:

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

        if d <= 28:

            #Return True

            return True

        #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:

                #Return "False"

                return False

            #Otherwise

            else:

                #Return "True"

                return True

        #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:

                #Return "False"

                return False

            #Otherwise

            else:

                #Return True

                return True

        #Otherwise

        else:

            #Return True

            return True

#Define the function main()

def main():

    #Get the date from the user

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

    #Initialize the value

    dayNum=0

    '''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 the return value is false

    if verifyDate(mon, d, yr) == False:

        #Print invalid

        print("This date is invalid.")

    #Otherwise

    else:

        #Calculate the number of a day

        dayNum = 31 * (mon - 1) + d

        #Check whether month is "2"

        if mon == 2:

            #Check whether the return value is True

            if isLeapYear(yr) == True:

                #Calculate the day numbber

                dayNum = dayNum - (4 * (mon) + 23)//10 + 1

            #Otherwise

            else:

                #Calculate the day number

                dayNum = dayNum - (4 * (mon) + 23)//10

        #Otherwise

        else:

            #Calculate day number

            dayNum = 31 * (mon - 1) + d

    #Print the day number

    print("The numeric value of this date is {}.".format(dayNum))

#Call the function main()

main()

Sample Output

Output:

Enter date'2/28/2001'

The numeric value of this date is 56.

Additional Output:

Enter date'05/25/1885'

The numeric value of this date is 149.

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
Language: JAVA Leap-Year Write a program to find if a year is a leap year or not. We generally assume that if a year number is divisible by 4 it is a leap year. But it is not the only case. A year is a leap year if − It is evenly divisible by 100 If it is divisible by 100, then it should also be divisible by 400 Except this, all other years evenly divisible by 4 are leap years. So the leap year algorithm is, given the year number Y, Check if Y is divisible by 4 but not 100, DISPLAY "leap year" Check if Y is divisible by 400, DISPLAY "leap year" Otherwise, DISPLAY "not leap year" For this program you have to take the input, that is the year number from an input file input.txt that is provided to you. The input file contains multiple input year numbers. Use a while loop to input the year numbers from the input file one at a time and check if that year is a leap year or not.   Create a class named LeapYear which will contain the main method and write all your code in the main…
quadratic.py by using "sys.argv" ● Create a program, quadratic.py, that takes in three arguments that represent the a, b, and c values in the quadratic formula. The values should be to two decimal places. You do not need to account for imaginary values. Then print out both roots in the form: “The solutions are x and y” Where x and y correspond to the positive and negative roots, respectively.
Microwaves / Radio Waves If a scientist knows the wavelength of an electromagnetic wave she can determine what type of radiation it is. Write a program that asks for the wavelength in meters of an electromagnetic wave and then displays what that wave is according to the following chart. (For example, a wave with a wavelength of 1E-10 meters would be an X-ray.) 1x 10-11 1 x 10-8 4 x 10-7 7x 10-7 1x 10-3 1 x 10-2 Gamma Rays. X Rays Ultraviolet Visible Light Infrared
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
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
Text book image
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
Python Tutorial #10; Math Functions in Python; Author: Art of Engineer;https://www.youtube.com/watch?v=OviXsGf4qmY;License: Standard YouTube License, CC-BY