Reloj.java 2.54 KB
Newer Older
Jose Baez committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
package clasesjava;

import java.time.Duration;
import java.time.LocalTime;

public class Reloj {
    private int horas;
    private int minutos;
    private int segundos;
    private LocalTime actual = null;

    public Reloj() {
        this.horas = 12;
        this.minutos = 0;
        this.segundos = 0;
    }

    public Reloj(int horas, int minutos, int segundos) {
        this.horas = horas;
        this.minutos = minutos;
        this.segundos = segundos;
    }

    public Reloj(int segundos) {
        setReloj(segundos);
    }

    public int getHoras() {
        return horas;
    }

    public void setHoras(int horas) {
        this.horas = horas;
    }

    public int getMinutos() {
        return minutos;
    }

    public void setMinutos(int minutos) {
        this.minutos = minutos;
    }

    public int getSegundos() {
        return segundos;
    }

    public void setSegundos(int segundos) {
        this.segundos = segundos;
    }

    public void setReloj(int segundos) {
        LocalTime localTime = LocalTime.of(0, 0, 0);
        this.actual=localTime.plusSeconds(segundos);
        actualizarHora(this.actual);
    }

    public void tick() {
        LocalTime localTime = LocalTime.of(this.horas, this.minutos, this.segundos);
        this.actual=localTime.plusSeconds(1L);
        actualizarHora(this.actual);
    }
    public Reloj addReloj(Reloj reloj) {
        Reloj r= reloj;
        return r;
    }

    public void tickDecrement() {
        LocalTime actual=null;
        LocalTime localTime = LocalTime.of(this.horas, this.minutos, this.segundos);
        this.actual=localTime.minusSeconds(1L);
        actualizarHora(this.actual);
    }

    public Reloj restaReloj(Reloj reloj) {
        LocalTime local = LocalTime.of(reloj.horas, reloj.minutos, reloj.segundos);
        LocalTime actual=LocalTime.of(this.horas, this.minutos, this.segundos);

        int value = local.compareTo(actual);
        if(value > 0){
            int diferencia= (int) Duration.between(actual, local).getSeconds();
            return new Reloj(diferencia);
        }else {
            int diferencia= (int) Duration.between(local, actual).getSeconds();
            return new Reloj(diferencia);
        }

    }

    public void actualizarHora(LocalTime actual) {
        this.horas= actual.getHour();
        this.minutos= actual.getMinute();
        this.segundos= actual.getSecond();
    }

    @Override
    public String toString() {
        return "[" +
                + horas +
                ":" + minutos +
                ":" + segundos +
                ']';
    }
}