Eu não sou muito boa em java, estou tento dificuldade para criar um método que receba a quantidade de filmes que a pessoa assistiu e some a duração dos filmes. Aqui esta o que fiz por enquanto. (Não sei se está certo). A parte de receber a quantidade de filmes assistidos deu certo eu não consigo entender o da soma.
Stringduracao;// formato x.xx:xxintqtdFilmes;inttotalDuracao=0;entrada=newScanner(System.in);entrada.useDelimiter("\r\n");System.out.print("\n Entre com a quantidade de filmes que voce vai assistir: ");qtdFilmes=entrada.nextInt();for(inti=0;i<qtdFilmes;i++){System.out.print("\n Entre com a duração do filme: (x.xx:xx");duracao=entrada.next();}}
Eu não sou muito boa em java, estou tento dificuldade para criar um método que receba a quantidade
de filmes que a pessoa assistiu e some a duração dos filmes. Aqui esta o que fiz por enquanto.
(Não sei se está certo). A parte de receber a quantidade de filmes assistidos deu certo eu não
consigo entender o da soma.
Você pode usar a API Java 8 java.time.
Ele tem uma classe de duração que pode ser usada para armazenar e adicionar durações.
Outra solução seria criar sua própria classe de titular de duração e ter métodos para adicionar etc.
*
*
*
*
*/
public class Filmes {
privateScannerentrada;publicvoidcontaTempo(){//String duracao; // formato assim para Duration xx:xx:xxDurationduracao=Duration.ZERO;// initialized to zero intqtdFilmes;inttotalDuracao=0;entrada=newScanner(System.in);entrada.useDelimiter("\r\n");System.out.print("\n Entre com a quantidade de filmes que voce vai assistir: ");qtdFilmes=entrada.nextInt();for(inti=0;i<qtdFilmes;i++){System.out.print("\n Entre com a duração do filme: (x.xx:xx");LocalTimetime=LocalTime.parse(entrada.next());// creates a Local time object (hh:mm:ss)duracao=duracao.plus(Duration.between(LocalTime.MIN,time));// converts to Duration PTxHxMXs}System.out.println(duracao.toHoursPart()+":"+duracao.toMinutesPart()+":"+duracao.toSecondsPart());}
}
V
Viih1
@Joao_Emanuel_Monica Meu professor pediu que eu usasse int totalDuracao = Integer.valueOf(duracao);
Então eu fiz assim.
Pior que meu professor não aceita usar os imports que estão ai, pq n chegamos nessa parte
Mas muitooo obrigada!!!
wldomiciano
Então poderia ser assim:
importjava.util.Scanner;publicclassApp{publicstaticvoidmain(String[]args){Scannerentrada=newScanner(System.in);entrada.useDelimiter("\\D");System.out.print("Entre com a quantidade de filmes que voce vai assistir: ");intquantidadeDeFilmes=entrada.nextInt();inttotalDeHoras=0;inttotalDeMinutos=0;inttotalDeSegundos=0;for(inti=0;i<quantidadeDeFilmes;i++){System.out.print("Entre com a duração do filme (x.xx:xx): ");totalDeHoras+=entrada.nextInt();totalDeMinutos+=entrada.nextInt();totalDeSegundos+=entrada.nextInt();}intsegundos=totalDeSegundos/60;totalDeMinutos=totalDeMinutos+segundos;totalDeSegundos=totalDeSegundos-(segundos*60);intminutos=totalDeMinutos/60;totalDeHoras=totalDeHoras+minutos;totalDeMinutos=totalDeMinutos-(minutos*60);System.out.printf("[%dh %dm %ds]\n",totalDeHoras,totalDeMinutos,totalDeSegundos);entrada.close();}}
PriscilaAS2 likes
obrigada, ajudou !!
Joao_Emanuel_Monica1 like
import java.util.Scanner;
/*&
@Author wldomiciano
I looked at the solution above. Its a great alternative, but you’ll get a
Runtime exception, every-time you type soimething follwed by an enter.
This ins because you need to swallowe the nextLine " " character from the enter.
Eu olhei para a solução acima. É uma ótima alternativa, mas você obterá uma exceção
de tempo de execução toda vez que digitar algo seguido de enter. Isso significa que
você precisa engolir o caractere nextLine “” do enter.
Outra alternativa é usar String.split (String regex) que usa um padrão regex
para dividir sua String em String []
*@Author Joao Rolo
using the String.split(String regex) method
when using “.” you need to add \ else it means any character
*/
public class App2 {
publicstaticvoidmain(String[]args){Scannerentrada=newScanner(System.in);System.out.print("Entre com a quantidade de filmes que voce vai assistir: ");intquantidadeDeFilmes=entrada.nextInt();entrada.nextLine();inttotalDeHoras=0;inttotalDeMinutos=0;inttotalDeSegundos=0;for(inti=0;i<quantidadeDeFilmes;i++){System.out.print("Entre com a duração do filme (x.xx:xx): ");String[]tokens=entrada.nextLine().split("(:|\\.){1}");// split by . or ..System.out.println(Arrays.toString(tokens));totalDeHoras+=Integer.parseInt(tokens[0]);totalDeMinutos+=Integer.parseInt(tokens[1]);totalDeSegundos+=Integer.parseInt(tokens[2]);}intsegundos=totalDeSegundos/60;totalDeMinutos=totalDeMinutos+segundos;totalDeSegundos=totalDeSegundos-(segundos*60);intminutos=totalDeMinutos/60;totalDeHoras=totalDeHoras+minutos;totalDeMinutos=totalDeMinutos-(minutos*60);System.out.printf("[%dh %dm %ds]\n",totalDeHoras,totalDeMinutos,totalDeSegundos);entrada.close();}
}
PriscilaAS
Obrigadaa, trabalho entregue agora só esperar a nota kkkkk