bartleby

Concept explainers

Expert Solution & Answer
Book Icon
Chapter 9, Problem 5E

Explanation of Solution

Creating "TimeOfDay.java":

  • Import required packages.
  • Define the "TimeOfDay" class.
    • Declare required variables.
    • Define the constructor and instantiate the variables.
    • Give function definition "setTimeTo ()" to set the time.
      • Declare required variables.
      • Create an object for the "Scanner" class.
      • Split the string using a delimiter ":".
      • Inside the "try" block,
        • Get the hour and store it in a variable.
      • Catch the exception "Exception".
        • Throw the exception "InvalidFormattingException" with a message.
      • Check if the hour value is valid.
        • Throw "InvalidHourException" with a message.
      • Get the remaining string and cut off the last two characters.
      • Check if the string’s length is less than 3.
        • Throw "InvalidFormattingException" with a message.
      • Get the minutes and store it in a variable.
      • Get "am" or "pm" and store it in a variable.
      • Inside "try" block,
        • Convert the minute string to integer.
      • Catch the exception "Exception".
        • Throw "InvalidFormattingException" with a message.
      • Check if minute is less than 0 or greater than 59.
        • Throw "InvalidMinuteException" with a message.
      • Check whether the string is not equal to "am" and "pm".
        • Throw "InvalidFormattingException" with a message.
      • Check if the string is equal to "am".
        • Assign "true" to "isAM".
      • Else,
        • Assign "false" to "isAM".
    • Function to produce the resultant string.
      • Append all the value to a string.
    • Define the "main ()" method.
      • Create an object for the "Scanner" class.
      • Create an object for the class "TimeOfDay".
      • Declare a variable "time".
      • Inside "try" block.
        • Get the time from the user.
        • Call the function "setTimeTo ()" by passing the time.
      • Catch the exception "InvalidFormattingException".
        • Print the message using "getMessage ()" function.
      • Catch the exception "InvalidHourException".
        • Print the message using "getMessage ()" function.
      • Catch the exception "InvalidMinuteException".
        • Print the message using "getMessage ()" function.
      • Print the time.

Creating "InvalidFormattingException.java":

  • Define a class "InvalidFormattingException" that extends "Exception".
    • Define a parameterized constructor.
      • Call the parent class’s method using "super ()" by passing the message.

Creating "InvalidHourException.java":

  • Define a class "InvalidHourException" that extends "InvalidFormattingException".
    • Define a parameterized constructor.
      • Call the parent class’s method using "super ()" by passing the message.

Creating "InvlaidMinuteException.java":

  • Define a class "InvalidMinuteException" that extends "InvalidFormattingException".
    • Define a parameterized constructor.
      • Call the parent class’s method using "super ()" by passing the message.

Program:

TimeOfDay.java:

//Import required packages

import java.util.*;

import java.util.Scanner;

//Define the main class

class TimeOfDay

{

//Declare required variables

private int hour, minute;

private boolean isAM;

//Constructor

public TimeOfDay()

{

//Instantiate the values

hour = 0;

minute = 0;

isAM = false;

}

//Function definition to set the time

public void setTimeTo(String aTime) throws InvalidFormattingException, InvalidHourException, InvalidMinuteException

{

//Declare required variables

int hourFound;

int minuteFound;

String indicatorFound;

//Create an object for the scanner class

Scanner reader = new Scanner(aTime);

//Split using the delimiter

reader.useDelimiter(":");

//Try block

try

{

//Assign the hour

hourFound = reader.nextInt();

}

//Catch the exception

catch (Exception e)

{

//Throw the exception with a message

throw new InvalidFormattingException("Hour not an integer");

}

//Check the condition

if(hourFound<1 || hourFound>12)

//Throw the exception with a message

throw new InvalidHourException("Hour not in the range of 1 to 12");

//Get the remaining string

String restOfString = reader.next();

reader = new Scanner(restOfString);

//Remove the last two characters

if(restOfString.length()<3)

//Throw the exception

throw new InvalidFormattingException("Bad format");

//Get the substring

String minuteString = restOfString.substring(0, restOfString.length()-2);

//Get the substring

String amString = restOfString.substring(restOfString.length()-2);

//Try block

try

{

//Convert the minute to integer

minuteFound = Integer.parseInt(minuteString);

}

//Catch the exception

catch (Exception e)

{

//Throw the exception

throw new InvalidFormattingException("Minute not an integer");

}

//Check the condition

if(minuteFound<0 || minuteFound>59)

//Throw the exception with a message

throw new InvalidMinuteException("Minute not in the range of 0 to 59");

//Check condition

if(!amString...

Blurred answer
Students have asked these similar questions
Python - Need help! How do I have an input in turtle to display my name below the circle it draws and another input to display my age written below that? Code: import turtlebackground = "#FFFFFF" def draw_circle(radius, line_color, fill_color): my_turtle.color(line_color) my_turtle.fillcolor(fill_color) my_turtle.begin_fill() my_turtle.circle(radius) my_turtle.end_fill() def move_turtle(x, y): my_turtle.penup() my_turtle.goto(x, y) my_turtle.pendown() turtle.done()
Need help fixing my python code! Images attached on the required modficications I dont know how to do. Simpler the better.Code: (in images)
Answer all of the questions with steps by step explanation to every question.

Chapter 9 Solutions

Java: An Introduction to Problem Solving and Programming (8th Edition)

Chapter 9.1, Problem 11STQ Chapter 9.1, Problem 12STQ Chapter 9.1, Problem 13STQ Chapter 9.1, Problem 14STQ Chapter 9.2, Problem 15STQ Chapter 9.2, Problem 16STQ Chapter 9.2, Problem 17STQ Chapter 9.2, Problem 18STQ Chapter 9.2, Problem 19STQ Chapter 9.2, Problem 20STQ Chapter 9.2, Problem 21STQ Chapter 9.2, Problem 22STQ Chapter 9.2, Problem 23STQ Chapter 9.3, Problem 24STQ Chapter 9.3, Problem 25STQ Chapter 9.3, Problem 26STQ Chapter 9.3, Problem 27STQ Chapter 9.3, Problem 28STQ Chapter 9.3, Problem 29STQ Chapter 9.3, Problem 30STQ Chapter 9.3, Problem 31STQ Chapter 9.3, Problem 32STQ Chapter 9.3, Problem 33STQ Chapter 9.3, Problem 34STQ Chapter 9.3, Problem 35STQ Chapter 9.4, Problem 36STQ Chapter 9.4, Problem 37STQ Chapter 9.4, Problem 38STQ Chapter 9, Problem 1E Chapter 9, Problem 2E Chapter 9, Problem 3E Chapter 9, Problem 4E Chapter 9, Problem 5E Chapter 9, Problem 6E Chapter 9, Problem 8E Chapter 9, Problem 9E Chapter 9, Problem 10E Chapter 9, Problem 11E Chapter 9, Problem 12E Chapter 9, Problem 13E Chapter 9, Problem 1P Chapter 9, Problem 2P Chapter 9, Problem 3P Chapter 9, Problem 2PP Chapter 9, Problem 3PP Chapter 9, Problem 7PP Chapter 9, Problem 10PP Chapter 9, Problem 11PP
Knowledge Booster
Background pattern image
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
    Microsoft Visual C#
    Computer Science
    ISBN:9781337102100
    Author:Joyce, Farrell.
    Publisher:Cengage Learning,
    Text book image
    C++ Programming: From Problem Analysis to Program...
    Computer Science
    ISBN:9781337102087
    Author:D. S. Malik
    Publisher:Cengage Learning
    Text book image
    EBK JAVA PROGRAMMING
    Computer Science
    ISBN:9781337671385
    Author:FARRELL
    Publisher:CENGAGE LEARNING - CONSIGNMENT
    Text book image
    Programming Logic & Design Comprehensive
    Computer Science
    ISBN:9781337669405
    Author:FARRELL
    Publisher:Cengage
    Text book image
    C++ for Engineers and Scientists
    Computer Science
    ISBN:9781133187844
    Author:Bronson, Gary J.
    Publisher:Course Technology Ptr
    Text book image
    EBK JAVA PROGRAMMING
    Computer Science
    ISBN:9781305480537
    Author:FARRELL
    Publisher:CENGAGE LEARNING - CONSIGNMENT