如何让我的时钟像这样03:05:01

时间:2016-04-27 02:29:26

标签: java

我在java中有项目。

  

使用以下规范创建CTime类

     
      
  1. 属性:小时,分钟和秒
  2.   
  3. 小时> = 0且< = 23,分钟> = 0且< = 59,秒> = 0且< = 59
  4.   
  5. 方法      
        
    • 更新CTime属性的构造函数
    •   每个属性的
    • setget方法
    •   
    • tick方法,向CTime对象添加1秒并且不返回任何内容
    •   
    • toString方法,使用以下格式创建时间字符串HH:mm:ss例如22时15分01秒
    •   
  6.   

我做了这个

public class CTime {

    int hour;
    int min;
    int sec;

    public CTime(int h, int m, int s) {
        hour = h;
        min = m;
        sec = s;
    }

    public void setHour(int h) {
        hour = h;
    }

    public int getHour() {
        return hour;
    }

    public void setMin(int m) {
        min = m;
    }

    public int getMin() {
        return min;
    }

    public void setSec(int s) {
        sec = s;
    }

    public int getSec() {
        return sec;
    }

    public void tick() {
        sec++;
        if (sec >= 59) {
            sec = 0;
            min++;
            if (min >= 59) {
                min = 0;
            }
            hour++;
        }
    }

    public String toString() {
        String s = hour + ":" + min + ":" + sec;
        return s;
    }
}

如何用2位数制作我的小时,分​​钟和秒,例如5点02分09秒?

我的代码是否正确?

2 个答案:

答案 0 :(得分:2)

如果你坚持按照自己的方式使用Strings做这类事情,你可以做类似以下的事情:

public String toString() {
    String s =  (hour > 9 ? hour : "0" + hour) + ":" + (min > 9 ? min : "0" + min) + ":" + (sec > 9 ? sec : "0" + sec);
    return s;
}

答案 1 :(得分:2)

只需使用String.format()

即可
public String toString() {
    String s = String.format("%02d:%02d:%02d", hour, min, sec);
    return s;
}

另一个链接here

你的代码,是的,它是正确的。要使它成为 live 时钟,您所要做的就是每秒调用tick()方法。看看this SO post,了解如何做到这一点。