我该如何写这种方法?

时间:2018-09-30 16:41:23

标签: java

我实际上是在尝试创建一个闹钟,但是我对如何编写此方法有点困惑,这是我的指示以及到目前为止的内容。

/**
* Formats the time one of the following ways:
* "It is the top-of-the-hour" (if the minutes is 0)
* "It is half-past the hour" (if the minutes is 30)
* "It is 23 minutes past the hour" (if the minutes is more than 0 and less than 30; use the correct number
* of minutes here (23 is just an example)
* "It is 10 minutes before the hour" (if the minutes is more than 30 and less than 60; use the correct number
* of minutes here (10 is just an example)
*
* @precondition clock != null
* @postcondition none
*
* @param clock the clock to format
* @return a string as described above
*/
public String formatMinutesInConversationalTone(AlarmClock clock) {
    if (clock == null) {
        throw new IllegalArgumentException("clock cannot be null");
    }
    if (clock.getMinutes() == 0) {
        return "It is the top-of-the-hour";
    }
    if(clock.getMinutes() == 30) {
    return "it is half past the hour";
    }
    if(clock.getMinutes() > 0 && clock.getMinutes() < 30) {

    }
}

1 个答案:

答案 0 :(得分:0)

我会在小时前后的分钟内使用不同的条件,并使用String.format创建这些字符串:

public String formatMinutesInConversationalTone(AlarmClock clock) {
    if (clock == null) {
        throw new IllegalArgumentException("clock cannot be null");
    }

    int minutes = clock.getMinutes();
    if (minutes == 0) {
        return "It is the top-of-the-hour";
    }

    if (minutes == 30) {
        return "It is half past the hour";
    }

    if (minutes < 30) {
        return String.format("It is %d minutes past the hour", minutes);
    }

    return String.format("It is %d minutes before the hour", (60 - minutes));
}