public class Time3 { private int hour; private int minute; private int second; public void setTime(int hour, int minute, int second) { if (hour < 0 || hour >= 24 || minute < 0 || minute >= 60 || second < 0 || second >= 60) { throw new IllegalArgumentException( "hour, minute and/or second was out of range"); } this.hour = hour; this.minute = minute; this.second = second; } } public String toUniversalString() { return String.format("%02d:%02d:%02d", hour, minute, second); } public String toString() { return String.format("%d:%02d:%02d %s", ((hour == 0 || hour == 12)? 12: hour % 12), minute, second, (hour < 12 ? "AM" : "PM")); } second file public class Time1Test { public static void main(String[] args) { Time1 time = new Time1(); displayTime("After time object is created", time); System.out.println(); time.setTime(13, 27, 6); displayTime("After calling setTime", time); System.out.println(); } } // attempt to set time with invalid values try { time.setTime(99, 99, 99); // all values out of range } catch (IllegalArgumentException e) { System.out.printf("Exception: %s%n%n", e.getMessage()); } // display time after attempt to set invalid values displayTime("After calling setTime with invalid values", time); // displays a Timel object in 24-hour and 12-hour formats private static void displayTime(String header, Timel t) { System.out.printf("%s%nUniversal time: %s%nStandard time: %s%n", header, t.toUniversalString(), t.toString()); }