gpt4 book ai didi

java - Java中的时钟滴答变化

转载 作者:搜寻专家 更新时间:2023-11-01 02:42:17 25 4
gpt4 key购买 nike

好的,所以我是新手,刚刚注册,但是我需要一些解释方面的帮助......

我的作业要求我通过一些调整将 24 小时制转换为 12 小时制。我很确定我快到了,但是我无法使用代码中的 timeTick 方法在小时更改时切换 boolean 值。老实说,我相信其余的都很好,但我们将不胜感激:

    public class ClockDisplay
{
private NumberDisplay hours;
private NumberDisplay minutes;
private String displayString;
private boolean isAM;


/**
* Constructor for ClockDisplay objects. This constructor
* creates a new clock set at 00:00.
*/
public ClockDisplay()
{
hours = new NumberDisplay(12);
minutes = new NumberDisplay(60);
updateDisplay();
setMorn();
}

/**
* Constructor for ClockDisplay objects. This constructor
* creates a new clock set at the time specified by the
* parameters.
*/
public ClockDisplay(int hour, int minute)
{
hours = new NumberDisplay(12);
minutes = new NumberDisplay(60);
setTime(hour, minute);
setMorn();
}

/**
* This method should get called once every minute - it makes
* the clock display go one minute forward.
*/
public void timeTick()
{
minutes.increment();
if(minutes.getValue() == 0) { // it just rolled over!
hours.increment();
}
if (hours.getValue() == 12)
{
isAM = !isAM;
}

updateDisplay();
}

private void setMorn()
{
isAM = true;
}
private void setAft()
{
isAM = false;
}

/**
* Set the time of the display to the specified hour and
* minute.
*/
public void setTime(int hour, int minute)
{
hours.setValue(hour);
minutes.setValue(minute);
updateDisplay();
}

/**
* Return the current time of this display in the format HH:MM.
*/
public String getTime()
{
return displayString;
}


/**
* Update the internal string that represents the display.
*/
private void updateDisplay()
{
int hour = hours.getValue();
String daynight;
if (isAM = true)
{
daynight = "AM";
if (hour == 0)
{
hour = 12;
}
}
else
{
isAM = false;
daynight = "PM";
if (hour == 0)
{
hour = 12;
}
}
displayString = hour + ":" +
minutes.getDisplayValue() + daynight;


}
}

我们有什么

  1. 添加一个 boolean 字段 isAM,其值为 true(上午)和 false(下午)。
  2. 我们创建了两个新方法; setMorning 将 isAM 设置为真,setAfternoon 将 isAM 设置为假。
  3. 两个构造函数都默认将一天中的时间初始化为早上,因此都调用 setMorning。
  4. 在 timeTick 中,我们需要检查时间是否翻转,这意味着它是从上午变为下午,还是从下午变为上午。注意使用:isAM = !isAM
  5. 在 updateDisplay 中,我们需要根据 isAM 是真还是假创建后缀“am”或“pm”。

最佳答案

您的问题几乎肯定出在以下行中:

if (isAM = true)

这实际上是将 isAM 设置为 true 并且表达式的结果因此也是 true 所以 else 部分将永远不会被执行。

你的意思可能是:

if (isAM == true)

或者 - 更好的是:

if (isAM)

关于java - Java中的时钟滴答变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30849307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com