Java 时钟项目 - Tick 方法在分钟和秒中输出“0”而不是“00”,修复了 AM PM 的输出

Java clock project - Tick method outputting "0" instead of "00" for minutes and seconds, fix output for AM PM

已解决:我目前正在做一个项目来创建一个时钟,当调用方法 tick 时,时钟将增加 1 秒。还有其他问题,但现在我无法弄清楚为什么当我将组件列为“00”时我的输出是 "Clock finally reads: 12:0:0"。它应该是 12:00:00。此外,如果小时为1,它也应该输出“01”。


更新:错误已修复。但是,我还需要实现它,以便显示它是上午还是下午。目前,它 return 将此作为示例 (12:00:00false),而不是从布尔值中写入 AM 或 PM。我怎样才能解决这个问题? 我的打勾方法是:

public void tick() {

  this.seconds++;

  if (this.seconds == 60) {
      this.seconds = 00;
      this.minutes++;}

  if (this.minutes == 60) {
      this.hours++;
      this.minutes = 00;}

  if(this.seconds == 60){
      this.minutes++; 
      this.seconds = 00; 
      if(this.minutes == 60){
          this.hours++; 
          this.minutes = 00;
      }}

  if(this.hours == 13) {
      this.hours = 1;
      this.morning = false;
  }
  if (this.morning) {
    AMPM = "AM";  
  }
  else {
      AMPM = "PM";  

  }   
  }

我的return方法是:

@Override
  public String toString() {
           return String.format("%1d:%02d:%02d%2s", hours, minutes, seconds, morning);


}

我做错了什么?


尝试方法 String.format:

@Override
public String toString() {
    return (String.format("%02d:%02d:%02d", hours, minutes, seconds));
}