Question: **Objective: Write a class converts 24-hour time to 12-hour time First download the driver and put it in your project DO NOT ALTER THE DRIVER!

**Objective:

Write a class converts 24-hour time to 12-hour time

  • First download the driver and put it in your project
    • DO NOT ALTER THE DRIVER!
  • Write a class file called TimeFormatException that inherits from Exception
  • Create the following constructors
    • Default calls the parents constructor and says something like This is an incorrect time
    • One that has a string parameter that passes that message to the parents constructor
  • Write a class file called Clock24 that DOES NOT HAVE a main method
  • Some of the attributes of Clock24 are
    • Hours
    • Minutes
    • isAM whether or not it is AM or PM
  • Create the following Constructors
    • Default sets everything to default values
      • Hours = 0 we assume that the 24th hour is 0
      • Minutes = 0
      • isAM = true
    • One that has the parameters
      • Hours
      • Minutes
  • Accessors and Mutators for each variable
    • MAKE SURE THE MUTATORS CHECK FOR VALID VALUES!
  • Create the following Methods
    • setTime this method will take in an hours value and a minutes value and if those values are valid then they are converted to 12-hour time (Dont forget to change from AM to PM and visa versa), and finally are set to the classes instance variables hours and minutes. If they are not valid such as if they were negative, they throw a TimeFormatException.
    • setTime this overloaded has a single string parameter formatted as hours:minutes, so for instance 17:45. This string value is to be broken down into separate hours and minutes and then those values are checked just like the other set time
      • Hint: For the hours part, use a loop to look at each character in the string adding those characters to another string until it reaches the :. Once it does reach : parse it. Same thing for minutes but after the :, and it ends when it reaches the end of the string.
      • In the parsing process you need to handle the general Exception that comes when the user enters in something that is not a number. Use a try catch for this.
    • printTime prints out the 12-hour time formatted as hours:minutes time of day, so 1:45 PM

**Driver code:

import java.util.*;

public class Clock24Driver {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Clock24 clock = new Clock24();

Scanner keyboard = new Scanner(System.in);

boolean quit = false;

while(quit == false)

{

//Prompt the user

System.out.println("Enter a time in the 24-hour notation or enter \"Exit\" to quit");

//Gets the user input

String input = keyboard.nextLine();

if(input.equalsIgnoreCase("exit"))

{

System.out.println("Goodbye!");

break;

}

try

{

clock.setTime(input);

clock.printTime();

}

catch(TimeFormatException e)

{

System.out.println(e.getMessage());

}

}

}

}

**Example Dialog:

Enter a time in the 24-hour notation or enter "Exit" to quit

2:45

2:45 AM

Enter a time in the 24-hour notation or enter "Exit" to quit

14:45

2:45 PM

Enter a time in the 24-hour notation or enter "Exit" to quit

-1:56

EXCEPTION!: The hour is incorrect

2:45 PM

Enter a time in the 24-hour notation or enter "Exit" to quit

asdf;lasdf

EXCEPTION!: Wrong format

EXCEPTION!: The hour is incorrect

2:45 PM

Enter a time in the 24-hour notation or enter "Exit" to quit

Exit

Goodbye!

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!