package eecs2030.test3; /** * A class that represents the hour on a 24-hour clock. * *
* A 24-hour clock (sometimes called military time) uses the numbers 0-23 to * represent the hour of the day starting at midnight. The mapping between a * 24-hour clock and a 12-hour clock is shown in the table below: * *
| 24-hour clock hour | *12-hour clock hour | *
|---|---|
| 0 | *12AM | *
| 1 | *1AM | *
| 2 | *2AM | *
| 3 | *3AM | *
| 4 | *4AM | *
| 5 | *5AM | *
| 6 | *6AM | *
| 7 | *7AM | *
| 8 | *8AM | *
| 9 | *9AM | *
| 10 | *10AM | *
| 11 | *11AM | *
| 12 | *12PM | *
| 13 | *1PM | *
| 14 | *2PM | *
| 15 | *3PM | *
| 16 | *4PM | *
| 17 | *5PM | *
| 18 | *6PM | *
| 19 | *7PM | *
| 20 | *8PM | *
| 21 | *9PM | *
| 22 | *10PM | *
| 23 | *11PM | *
true if hour is a valid hour on a
* 24-hour clock, and false otherwise.
*
* @param hour
* an hour on a 24-hour clock
* @return true if hour is a valid hour on a
* 24-hour clock, and false otherwise.
*/
public static boolean isValid(int hour) {
return hour >= 0 && hour <= 23;
}
/**
* Returns true if hour is a valid hour on a
* 12-hour clock and ampm is equal to one of
* Hour.AM or Hour.PM, and false
* otherwise.
*
* @param hour
* an hour on a 12-hour clock
* @param ampm
* the string Hour.AM or Hour.PM
* @return true if hour is a valid hour on a
* 12-hour clock and ampm is equal to one of
* Hour.AM or Hour.PM, and
* false otherwise
*/
public static boolean isValid(int hour, String ampm) {
return hour >= 1 && hour <= 12 && (ampm.equals(Hour.AM) || ampm.equals(Hour.PM));
}
/**
* Checks if an hour and String pair form a valid hour on a 12-hour clock.
*
* @param hour
* the hour
* @param ampm
* the string Hour.AM or Hour.PM
* @throws IllegalArgumentException
* if hour is less than 1 or greater than 12
* @throws IllegalArgumentException
* if ampm is not one of Hour.AM or
* Hour.PM
*/
public static void check12(int hour, String ampm) {
// HINT: Use isValid(int, String)
}
/**
* Checks if an hour is a valid hour on a 24-hour clock.
*
* @param hour
* the hour
*
* @throws IllegalArgumentException
* if hour is less than 0 or greater than 23
*/
public static void check24(int hour) {
// HINT: Use isValid(int)
}
/**
* Converts an hour defined on a 12-hour clock to the equivalent hour on a
* 24-hour clock.
*
* @param hour
* hour the hour on a 12-hour clock
* @param ampm
* the string Hour.AM or Hour.PM
* @return the hour on a 24-hour clock equivalent to the given hour defined
* on a 12-hour clock
* @throws IllegalArgumentException
* if hour is less than 1 or greater than 12
* @throws IllegalArgumentException
* if ampm is not one of Hour.AM or
* Hour.PM
*
*/
public static int to24HourClock(int hour, String ampm) {
// HINT: Use check12(int, String)
return 0;
}
/**
* Converts an hour defined on a 24-hour clock to the equivalent hour on a
* 12-hour clock.
*
* @param hour
* the hour on a 24-hour clock
* @return the hour on a 12-hour clock equivalent to the given hour defined
* on a 24-hour clock
* @throws IllegalArgumentException
* if hour is less than 0 or greater than 23
*/
public static int to12HourClock(int hour) {
// HINT: Use check24(int)
return 0;
}
/**
* Initializes the hour given the hour on a 24-hour clock.
*
* @param hour
* the hour on a 24-hour clock
* @throws IllegalArgumentException
* if hour is less than 0 or greater than 23
*/
public Hour(int hour) {
}
/**
* Initializes the hour given the hour on a 12-hour clock and a
* string indicating AM or PM.
*
* @param hour
* the hour on a 12-hour clock
* @param ampm
* the string Hour.AM or Hour.PM
* @throws IllegalArgumentException
* if hour is less than 1 or greater than 12
* @throws IllegalArgumentException
* if ampm is not one of Hour.AM or
* Hour.PM
*/
public Hour(int hour, String ampm) {
}
/**
* Initializes this hour by copying the hour from a another 24-hour
* Hour instance.
*
* @param other
* another 24-hour Hour instance
*/
public Hour(Hour other) {
}
/**
* Returns the hour of this 24-hour instance.
*
* @return the hour of this 24-hour instance
*/
public int getHour() {
return 0;
}
/**
* Sets the hour of this 24-hour instance.
*
* @param hour
* the hour on a 24-hour clock
* @throws IllegalArgumentException
* if hour is less than 0 or greater than 23
*/
public void setHour(int hour) {
}
/**
* Sets the hour of this 24-hour instance using an hour from a 12-hour
* clock.
*
* @param hour
* the hour on a 12-hour clock
* @param ampm
* the string Hour.AM or Hour.PM
* @throws IllegalArgumentException
* if hour is less than 1 or greater than 12
* @throws IllegalArgumentException
* if ampm is not one of Hour.AM or
* Hour.PM
*/
public void setHour(int hour, String ampm) {
}
/**
* Compares this hour to a string containing an hour on a 12-hour clock. The
* string is assumed to start with an integer followed by a space followed
* by one or more characters; the string does not necessarily represent a
* valid hour on a 12-hour clock.
*
*
* The method returns true if and only if all of the following
* are true:
*
*
h is not equal to null
* h represents a valid hour on a 12-hour clock
* h is equivalent to the hour
* represented by this Hour
* * Some examples: * *
* Hour hour = new Hour(18); // 6PM
* String h = "6 PM";
* boolean eq = hour.equals(h); // eq is equal to true
*
* h = "6 AM";
* eq = hour.equals(h); // eq is equal to false
*
* h = "100 elephants";
* eq = hour.equals(h); // eq is equal to false
*
* h = null;
* eq = hour.equals(h); // eq is equal to false
*
*
* @param h
* an hour on a 12-hour clock represented as a string
* @return true if the conditions described above are true, and false
* otherwise
* @pre h starts with an integer followed by a space followed by one or more
* characters
*/
public boolean equals(String h) {
// HINT: DO NOT USE THE ECLIPSE GENERATED VERSION OF EQUALS
return true;
}
}