java - JAVA 中的时钟循环帮助

标签 java clock

我需要一些帮助来解决我的时钟问题。我对逻辑感到困惑。基本上,我想做的就是这个。如果给定的输入是:23:25:55,当第二个达到60时,它应该变成00并添加+1 精确到分钟。但是,它会打印 23:25:60,并且只有在 Netbeans 上按 OK 后,它才会变为 23:26:00。如果60不再出现就更好了。以下是我在类里面使用的方法。

public  void incHour(){
    hr++;

    if (hr == 24){
        hr = 0;
    }
    printTime();
}

public void incMinute(){
    min++;

    if (min > 59){
        incMinute();
        min = 0;
    }
    printTime();
}

public void incSecond(){
    sec++;

    if (min > 59){
        incMinute();
        sec = 0;
    }
    printTime();
}

最佳答案

您有一堆复制和粘贴错误。在 incMinute() 中,更改为

if (min > 59){
    incHour(); //changed from incMinute();

并在incSecond()中,更改为

if (sec > 59){ //changed from if (min > 59){
    incMinute(); 

编辑

The 60 still shows up.

这是因为当 sec > 59 时,您将其增加到 60,然后也从 incMinute() 方法调用 printTime() 。首先进行归零,然后添加一个像这样的 else 子句以仅打印一次。您必须对 incMinute() 方法进行相同的更改:

public void incSecond(){
    sec++;
    if (sec > 59){
        sec = 0;
        incMinute();
    } else {
        printTime();
    }
}

关于java - JAVA 中的时钟循环帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24678575/

相关文章:

java - 从数组中删除前 50 个值并重新调整其大小

java - 斯卡拉微风 : Solution to a complex system of linear equations

c++ - 如何用C连续输出计算开始后的秒数?

clock() 在使用 C 时即使暂停大约 5 秒也会返回 0

javascript - 在 javascript 24 小时倒计时中使用所需的时区或偏移倒计时,使其达到 00 :00 at 11:00 local time instead of at 00:00 local time

java - “R”在默认包中 android 错误

java - 如何确定 java 中枚举的最低/最高索引?

java - "dirty reads"在 Terracotta 中使用安全吗?

php - 在线考试系统计时器,用于存储每个部分的时间

buffer - 使用 BUFG 驱动时钟负载