Converter Segundos para Horas:Minutos:Segundos - Métodos Java
14 respostas
java
P
Paulo_Solipa
Boas pessoal. Eu tenho andado a fazer um código para um trabalho com o uso de métodos em Java e não funciona. Poderão me ajudar onde terei errado no código?
Vou postar o código aqui:
importjava.util.Scanner;publicclassEx_7{publicstaticvoidmain(String[]args){intseg=pedirsegundos();intsegundos=calcseg(seg);intminutos=calcmins(segundos);intminuto=calcmin(minutos);inthora=hora(minutos);System.out.print("Os segundos introduzidos em horas é"+hora+" : "+minuto+" : "+minutos+" : "+segundos);}publicstaticintpedirsegundos(){Scannerteclado=newScanner(System.in);System.out.print("Insira os segundos ");intsegundos=teclado.nextInt();returnsegundos;}publicstaticintcalcseg(intseg){return(seg%60);}publicstaticintcalcmins(intminutos){return(minutos/60);}publicstaticintcalcmin(intminuto){return(minuto%60);}publicstaticinthora(intminutos){return(minutos/60);}}
Duas vezes valor para minutos? Um deles está a mais.
intminutos=calcmins(segundos);
Queres saber quantos minutos correspondem aos segundos que tu introduziste ou aos segundos que tu calculaste?
L
lucas99
Não sei se entendi muito bem mas acho que quer fazer métodos q transforme os segundos que foram informados para minutos e horas. Bom eu refiz e percebi que foi usado int sendo q o resultado possivelmente seria double em alguns casos então passei tudo para double trabalhei com double e para fazer divisões normalmente se usa o / pois o % devolve os números q vierem depois da virgula do resultado.
publicstaticvoidmain(String[]args){doubleseg=pedirsegundos();doubleminuto=calcmin(seg);doublehora=hora(minuto);System.out.print("Os segundos introduzidos em horas é"+hora+" : "+minuto+" : "+seg);}publicstaticdoublepedirsegundos(){Scannerteclado=newScanner(System.in);System.out.print("Insira os segundos ");intsegundos=teclado.nextInt();returnsegundos;}publicstaticdoublecalcmin(doubleminuto){return(minuto/60);}publicstaticdoublehora(doubleminutos){return(minutos/60);}
P
Paulo_Solipa
Boas. Antes de mais obrigado pela resposta. Quero saber quantas horas minutos e segundos correspondem aos segundos introduzidos pelo usuário a partir de métodos.
A minha pergunta era retórica. Eu sei a resposta. Será que o que tens no teu código é o que tu pretendes?
Só precisas de alterar as duas linhas que eu destaquei: na primeira para retirar a impressao de “minutos” que é apenas uma valor auxiliar. Na segunda para corrigires o parâmetro.
intseg=pedirsegundos();// Imagina que introduzes 150.intsegundos=calcseg(seg);// 150%60 = 30 --> irá ser qualquer coisa e 30 segundosintminutos=calcmins(segundos);// aqui queres saber os minutos de 30 segundos? não me parece...
P
Paulo_Solipa
Ah! Não tinha entendido a sua observação anterior. Percebi a primeira mudança a segunda é que já não estou a perceber muito bem… Desculpe é que eu iniciei java à muito pouco tempo
pmlm1 like
Na ultima linha de código que eu destaquei, tu estas a passar “segundos” que é o valor que calculaste para mostrar na hora final.
Mas tu queres saber os minutos a que correspondem os “seg” que tu introduziste.
P
Paulo_Solipa
Obrigado pela sua ajuda, mas como referi no tópico é tornar num método esse código que tenho dificuldade.
P
Paulo_Solipa
Ah! Que burrice a minha! Faz todo o sentido, claro! Mas se não fosse voçe provavelmente não chegaria lá Terei que me empenhar mais… Muito Obrigado pela sua ajuda. Pela de todos claro.
lvbarbosa1 like
É só pegar essas contas e jogar em métodos, passando os parâmetros necessários e retornando o resultado da conta. Não tem muito como evitar essas subtrações/multiplicações/divisões, pois é inerente às conversões de segundo para horas e minutos.