Ir ao conteúdo
  • Cadastre-se

Transformar hora em horario ?


Posts recomendados

Fala aeee gente, então estou com problemas acho que minha lógica não esta funcionando kk, quero criar um código para receber umas hora com minutos (4.30 por exemplo) e transforma-la apenas em minutos( minutos que vão até 59) alguém me ajudaria? não consigo dormir em paz até fazer este código haha, Obrigado

 

adicionado 20 minutos depois

Por enquanto estou nesta parte

import java.util.Scanner;
public class Bonus {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		float hora;
		System.out.println("Digite a hora desejada: ");
		hora=sc.nextFloat();

acho que a partir dai eu deveria tentar quebrar o numero , separar os minutos da hora, para multiplicar a hora por 59 e assim somar mais os números que antes estavam após a vírgula alguém sabe como ?

Link para o comentário
Compartilhar em outros sites

import java.util.Scanner;
public class Bonus {
	private static Scanner sc;

	public static void main(String[] args){
		sc = new Scanner(System.in);
		float hora;
		int hi,hf;
		System.out.println("Digite a hora desejada: ");
		hora=sc.nextFloat();
		hi=(int)hora;
		hf=(int)hora-hi;
		
		System.out.println(hf);
				
		
		
		
		
		
		
		
	}

}

o codigo esta seguindo essa sequencia maais acho q nao esta funcionando alguem tem alguma ideia ?o erro é esse:

 

 

Digite a hora desejada:
14.5
Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextFloat(Unknown Source)
    at Bonus.main(Bonus.java:10)

adicionado 5 minutos depois
import java.util.Scanner;
public class Bonus {
	private static Scanner sc;

	public static void main(String[] args){
		sc = new Scanner(System.in);
		float hora;
		int hi,hm,fn;
		System.out.println("Digite a hora desejada: ");
		hora=sc.nextFloat();
		hi=(int)hora;
		hm=(int)hora-hi;
		fn=((hi*60)+hm);
		
		
		System.out.println(fn);
				
		
		
		
		
		
		
		
	}

}

Atualização no codigo, o numero se for inteiro funciona agora se tiver o " . " da o erro:

 

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextFloat(Unknown Source)
    at Bonus.main(Bonus.java:10)

Link para o comentário
Compartilhar em outros sites

Ahhhhh... data e hora com Java. Bem-vindo ao inferno na Terra.

 

Bom, vamos lá. Primeiro, é que o padrão de uma data ou hora deve SEMPRE seguir um determinado padrão de escrita senão o Parser default não funciona.

 

No seu caso, é simples. Leia o valor digitado como String, e não como float ou integer. Depois de ter o valor lido, você pode criar um vetor dando um split na sua String usando o caracter . (ponto) para aplicar o split.

 

No exemplo que você deu acima, ao dar um split na String 14.5, vai gerar um vetor com os valores [14][5].

 

Pegue a primeira posição do vetor, transforme horas em minutos e depois some com os minutos da segunda posição do vetor e terá seu resultado.

 

String[] horas = valorDigitado.split(".");

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!