Problem z zegarem Java klasy

0

Mam mały problem z zegarem
Mój kod:

public class Clock {
    private int hours;
    private int minutes;
    private int seconds;

    public Clock(int hours, int minutes, int seconds) {
        this.hours = hours;
        this.minutes = minutes;
        this.seconds = seconds;
    }

    public int getHours() {
        return hours;
    }

    public void setHours(int hours) {
        if (Checkhours(hours))
            this.hours = hours;
    }

    public int getMinutes() {
        return minutes;
    }


    public void setMinutes(int minutes) {
        if (Checkminutes(minutes))
            this.minutes = minutes;
    }

    public int getSeconds() {
        return seconds;
    }

    public void setSeconds(int seconds) {
        if (Checkseconds(seconds))
            this.seconds = seconds;
    }

    private boolean Checkhours(int hours) {
        return (0 <= hours) && (hours <= 23);
    }

    private boolean Checkminutes(int minutes) {
        return (0 <= minutes) && (minutes <= 59);
    }

    private boolean Checkseconds(int seconds) {
        return (0 <= seconds) && (seconds <= 59);
    }

    public int tick() { //01 02 03
        return getSeconds() + 1;
    }

    public int tickDown() {
        return getSeconds() - 1;
    }

    public String toString() { //[hh-mm-ss]
        return String.valueOf(getSeconds());
    }
}
public class ClockMain {
    public static void main(String[] args) {
        Clock day = new Clock(12, 00, 00);
        System.out.println(day.getHours() + ":" + day.getMinutes() + ":" + day.getSeconds());

        Clock today = new Clock(03, 12, 56);
        System.out.println(today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds());

        System.out.println("Tick = " + today.getHours() + ":" + today.getMinutes() + ":" +today.tick());
        System.out.println("TickDown = " + today.getHours() + ":" + today.getMinutes() + ":" + today.tickDown());
        System.out.println("TickString = " + today.getHours() + "-" + today.getMinutes() + "-" + today.toString());
    }
}

Po skompilowaniu wyświetla mi:

12:0:0
3:12:56
Tick = 3:12:57
TickDown = 3:12:55
TickString = 3-12-56

Chodzi mi o to żeby wyświetlało 2 zera
np. 1200 albo 0357

2

Używając formatowania stringów to dość łatwo można zrobić:
String.format("Tick = %02d:%02d:%02d", today.getHours(), today.getMinutes(), today.tick());

0

Super działa, dzięki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1