When two points in time are compared, each given as hours (in military time, ranging from 0 and 23) and minutes, the following pseudocode determines which comes first.


If hour1 < hour2
    time1 comes first.
Else if hour1 and hour2 are the same
    If minute1 < minute2
        time1 comes first.
    Else if minute1 and minute2 are the same
        time1 and time2 are the same.
    Else
        time2 comes first.
Else
    time2 comes first.


Write a program that prompts the user for two points in time and prints the time that comes first, then the other time.

Complete the following files:

Time.java

/** This class compares two military times and determines which comes first. */ public class Time { private int hour; private int minute; public Time(int anHour, int aMinute) { . . . } /** Compares this time against another time. @param time2 the time to compare with @return "before" if this time comes before time2, "" if the times are the same, and "after" otherwise */ public String compareWith(Time time2) { . . . } }

TimeOrderTester.java

Use the following file:

TimeComparer.java

import java.util.Scanner;

/**
   This program compares two military times and
   determines which comes first.
*/
public class TimeComparer
{
   public static void main(String[] args)
   {  
      Scanner in = new Scanner(System.in);

      System.out.println("Please enter the first time in military time (hour minute): ");
      int hour1 = in.nextInt();
      int minute1 = in.nextInt();

      System.out.println("Please enter the second time in military time (hour minute): ");
      int hour2 = in.nextInt();
      int minute2 = in.nextInt();
      
      Time time1 = new Time(hour1, minute1);
      Time time2 = new Time(hour2, minute2);
      
      String comp = time1.compareWith(time2);
      System.out.println("The first time is " + comp + " the second time.");      
   }
}