Leia do usuário o tempo em segundos e escreva em horas,

Ola Familia,
Alguem ai para me por favor ajudar com o codigo do exercicio abaiox, ta dando erro.

"

Leia do usuário o tempo em segundos e escreva em horas, minutos e segundos. Utilize cinco métodos, para a leitura e escrita de dados e para obtenção de horas, minutos e segundos a partir do tempo em segundos.
"
private int horas;
private int minutos;
private int segundos;

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


public int getHoras() {
    return horas;
}

public void setHoras(int horas) {
    if ((horas > 0) && (horas <= 23)) {
        this.horas = horas;
    }
}

public int getMinutos() {
    return minutos;
}

public void setMinutos(int minutos) {
    if ((minutos >= 0 && (minutos <= 60))) {
        this.minutos = minutos;
    }
}

public int getSegundos() {
    return segundos;
}

public void setSegundos(int segundos) {
    if ((segundos >= 0) && (segundos <= 60)) {
        this.segundos = segundos;

    }

    }

public int ler () {
    Scanner sc = new Scanner(System.in);

    System.out.println("Digite a hora para saber quanto equivale em segundos \n");

    int time=sc.nextInt();


    setHoras(Horas(time));
    setMinutos(Minutos(time));
    setSegundos(segundos());



}


 //Criando metodos


public int segundos(int time) {

    return  (time - (getHoras() * 3600) - (getMinutos() * 60));

}

private int Minutos(int time){
    return  (time -(getHoras()*3600))/60;
}

private  int Horas (int time){
    return  time/3600;
}

public  void imprimirHoras() {

    System.out.println("Horas:"+getMinutos()+ ","+getMinutos()+","+getSegundos());
}

public static void main(String[] args) {
    int horas= Horas();
    int minutos=Minutos();
    int segundos=segundos();

    System.out.println();
}

}

A classe main ficou desse jeito.

public static void main(String[] args) {

    /* int hora ;
    Scanner sc = new Scanner(System.in);

    System.out.printf("Digite a hora para saber quanto equivale em segundos \n");

    int time=sc.nextInt();

Pegue o valor em segundos, divida por 3600, e terá as horas.
Pegue o mod dos segundos por 3600.
Divida esse mod por 60 e terá os minutos.
Faça novamente um mod, agora por 60.
O que sobrou são os segundos.

horas = segundos / 3600; //obtendo as horas
segundos %= 3600; //otendo o resto da divisao por 3600 e armazenando nos segundos
minutos = segundos / 60; //obtendo os minutos
segundos %= 60; //otendo o resto da divisao por 60 e armazenando nos segundos

1 curtida

É basicamente o mesmo que está aqui: Segundos em horas, minutos e segs

Só precisa adaptar pra quebrar o código nos 5 métodos que o exercício pede…

Muito obrigado cara

Muito obrigado Hugokotsubo