由两个显示对象组成的Java时钟

由两个显示对象组成的Java时钟,java,Java,我的家庭作业把我难倒了。我有一个24小时的时钟,它由两个数字显示对象组成。 numberDisplay对象有一个限制它们的角色,因此当分钟数达到60时,它会回滚到零,并增加小时数。当小时数达到24时,它将回滚到零 我的任务是将其从24小时时钟更改为12小时时钟,但我无法更改有关对象的任何内容。只有他们如何互动 到目前为止,我已经做到了: private void updateDisplay() { int functionHours = Integer.parseInt(hours.ge

我的家庭作业把我难倒了。我有一个24小时的时钟,它由两个数字显示对象组成。 numberDisplay对象有一个限制它们的角色,因此当分钟数达到60时,它会回滚到零,并增加小时数。当小时数达到24时,它将回滚到零

我的任务是将其从24小时时钟更改为12小时时钟,但我无法更改有关对象的任何内容。只有他们如何互动

到目前为止,我已经做到了:

private void updateDisplay()
{
    int functionHours = Integer.parseInt(hours.getDisplayValue());
    String amPM = "AM";
    if ( functionHours == 0 ) {
        hours.setValue(12);
        amPM = "AM";
    }
    else if ( functionHours > 0 && functionHours < 12 )
    {
        hours.setValue(functionHours);
        amPM = "AM";
    }
    else if ( functionHours == 12 ) {
        hours.setValue(functionHours);
        amPM = "PM";
    }
    else if ( functionHours > 12 && functionHours <= 23 ) {
        functionHours -= 12;
        hours.setValue(functionHours);
        amPM ="PM";
    }
    displayString = hours.getDisplayValue() + ":" + minutes.getDisplayValue() + " " + amPM;
}
private void updateDisplay()
{
int functionHours=Integer.parseInt(hours.getDisplayValue());
字符串amPM=“AM”;
如果(functionHours==0){
小时。设定值(12);
amPM=“AM”;
}
否则如果(功能小时数>0和功能小时数<12)
{
小时数。设置值(功能小时数);
amPM=“AM”;
}
否则,如果(函数小时==12){
小时数。设置值(功能小时数);
amPM=“PM”;
}
否则,如果(函数小时数>12&&functionHours=0)和(替换值<限制)){
值=替换值;
}
}
/**
*将显示值增加1,如果
*达到极限。
*/
公共空间增量()
{
值=(值+1)%limit;
}
}

考虑如果代码中的
hours.getDisplayValue()==23会发生什么。在最后一个块中,您可以通过以下方式对其进行更改:

// functionHours is 23.
else if ( functionHours > 12 && functionHours <= 23 ) { // OK
    functionHours -= 12;  // now functionHours is 11
    hours.setValue(functionHours); // set hours.value to 11 !!
    amPM ="PM";
/**
 * Update the internal string that represents the display.
 */
private void updateDisplay()
{
    int functionHours = Integer.parseInt(hours.getDisplayValue());
    if ( functionHours == 0 ) {
        displayString = "12:" + minutes.getDisplayValue() + " AM";
    }
    else if ( functionHours >= 0 && functionHours < 12 ) {
        displayString = hours.getDisplayValue() + ":" + minutes.getDisplayValue() + " AM";
    }
    else if ( functionHours == 12 ) {
        displayString = hours.getDisplayValue() + ":" + minutes.getDisplayValue() + " PM";
    }
    else if ( functionHours >= 12 && functionHours < 22 ) {
        int tempHours = ( hours.getValue() - 12 );
        displayString = "0" + Integer.toString(tempHours) + ":" + minutes.getDisplayValue() + " PM";
    }
    else if ( functionHours >21 && functionHours < 24 ) {
        displayString = hours.getDisplayValue() + ":" + minutes.getDisplayValue() + " PM";
    }      
}
//functionHours是23。

else if(functionHours>12&&functionHours感谢您的逻辑,这是有意义的。我是这样做的:

// functionHours is 23.
else if ( functionHours > 12 && functionHours <= 23 ) { // OK
    functionHours -= 12;  // now functionHours is 11
    hours.setValue(functionHours); // set hours.value to 11 !!
    amPM ="PM";
/**
 * Update the internal string that represents the display.
 */
private void updateDisplay()
{
    int functionHours = Integer.parseInt(hours.getDisplayValue());
    if ( functionHours == 0 ) {
        displayString = "12:" + minutes.getDisplayValue() + " AM";
    }
    else if ( functionHours >= 0 && functionHours < 12 ) {
        displayString = hours.getDisplayValue() + ":" + minutes.getDisplayValue() + " AM";
    }
    else if ( functionHours == 12 ) {
        displayString = hours.getDisplayValue() + ":" + minutes.getDisplayValue() + " PM";
    }
    else if ( functionHours >= 12 && functionHours < 22 ) {
        int tempHours = ( hours.getValue() - 12 );
        displayString = "0" + Integer.toString(tempHours) + ":" + minutes.getDisplayValue() + " PM";
    }
    else if ( functionHours >21 && functionHours < 24 ) {
        displayString = hours.getDisplayValue() + ":" + minutes.getDisplayValue() + " PM";
    }      
}
/**
*更新表示显示的内部字符串。
*/
私有void updateDisplay()
{
int functionHours=Integer.parseInt(hours.getDisplayValue());
如果(functionHours==0){
displayString=“12:”+minutes.getDisplayValue()+“AM”;
}
else if(函数小时数>=0&&functionHours<12){
displayString=hours.getDisplayValue()+“:”+分钟.getDisplayValue()+“AM”;
}
否则,如果(函数小时==12){
displayString=hours.getDisplayValue()+“:”+分钟.getDisplayValue()+“PM”;
}
否则如果(功能小时数>=12和功能小时数<22){
int tempHours=(hours.getValue()-12);
displayString=“0”+整数.toString(tempHours)+“:”+分钟.getDisplayValue()+“PM”;
}
否则如果(功能小时数>21和功能小时数<24){
displayString=hours.getDisplayValue()+“:”+分钟.getDisplayValue()+“PM”;
}      
}