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
(Converting Fahrenheit to Celsius) Write a program that converts integer Fahrenheit temperatures from 0 to 212 degrees to floating-point Celsius temperatures with 3 digits of precision. Usethe formulacelsius = 5.0 / 9.0 * ( fahrenheit - 32 );to perform the calculation. The output should be printed in two right-justified columns and theCelsius temperatures should be preceded by a sign for both positive and negative values.
Find the number of years and days) Write a program that prompts the user to enter the minutes (e.g., 1 billion), and displays the number of years and days for the minutes. For simplicity, assume a year has 365 days. Here is a sample run: Enter the number of minutes: 1000000000 1000000000 minutes is approximately 1902 years and 214 days   in python }
Calories = ( (Age x 0.2757) + (Weight x 0.03295) + (Heart Rate x 1.0781) — 75.4991 ) x Time / 8.368 Write a program using inputs age (years), weight (pounds), heart rate (beats per minute), and time (minutes), respectively. Output the average calories burned for a person. Output each floating-point value with two digits after the decimal point, which can be achieved as follows:print('Calories: {:.2f} calories'.format(calories)) Ex: If the input is: 49 155 148 60 then the output is: Calories: 736.21 calories   ''' Calories = ((Age x 0.2757) + (Weight x 0.03295) + (Heart Rate x 1.0781) — 75.4991) x Time / 8.368 '''     I have put in so many codes and nothing is right. I am going nuts. I use python coding, and this example is on Zybooks. One person answered but I tried and still no luck. I tried to edit it and still no luck. i don't understand what I am doing wrong
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