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
Hailstone sequence   Given a positive integer n, the following rules will always create a sequence that ends with 1, called the hailstone sequence: If n is even, divide it by 2 If n is odd, multiply it by 3 and add 1 (i.e. 3n +1) Continue until n is 1 Write a program that reads an integer as input and prints the hailstone sequence starting with the integer entered. Format the output so that ten integers, each separated by a tab character (\t), are printed per line. The output format can be achieved as follows:System.out.print(n + "\t"); Ex: If the input is: 25 the output is: 25 76 38 19 58 29 88 44 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1   in java
Hailstone sequence   Given a positive integer n, the following rules will always create a sequence that ends with 1, called the hailstone sequence: If n is even, divide it by 2 If n is odd, multiply it by 3 and add 1 (i.e. 3n +1) Continue until n is 1 Write a program that reads an integer as input and prints the hailstone sequence starting with the integer entered. Format the output so that ten integers, each separated by a tab character (\t), are printed per line. The output format can be achieved as follows:System.out.print(n + "\t"); Ex: If the input is: in java
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.
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