Duvidas com exercicios

2 respostas
C

Amigos, postarei abaixo o codigo que eu fiz... no qual estou com duvida, é um exercicio da faculdade, estou no segundo ano e estamos pegando java agora, semestres passado peguei c, então em java tenho algumas duvidas e acho q vcs q estão ae a mais tempo devem saber.

Antes de mais nada tentei fazer e cheguei só nisso.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class InternetHora {
	   public static void main(String [] args) throws IOException {
		   BufferedReader leitor = new BufferedReader(new InputStreamReader(System.in));
		  double numero;
		  double numero2;
		  double aux;
		  double valor6=0.06;
		  double valor3=0.03;
		  double valor1=0.01;
		  double contador;
		  System.out.println("Digite o horario q ficou na net e que saiu");
		  System.out.println("ex: 06.10 = 06:10");
		  do{
			numero = Double.parseDouble(leitor.readLine()); 
			numero2 = Double.parseDouble(leitor.readLine()); 
			aux=numero-numero2;
			for(contador=0 ; contador<aux ; contador++)
			{
			if((06.00<numero+contador) || (numero+contador<18.00))
			if((18.01<numero+contador) || (numero+contador<22.00))
			if((22.01<numero+contador) || (numero+contador<05.59))
						}
		  }while(numero>0);
				  
	 }
}

Com era o seguinte o trabalho.
Um usuario vai digitar os horarios q ele entrou na net e desconectou até digitar um horario de inicio negativo.
Das 06:00 horas até 18:00 é cobrado 0.03 CENTAVOS
das 18:01 ate as 22:00 é cobrado 0.06 CENTAVOS
das 22:01 até as 5:59 é cobrado 0.01 CENTAVOS

Ou sejá a minha maior dificuldade é, se a pessoa ficar das 6 da manha até as 22:30 oq aconteceria ele teria q entender q a pessoa ficou tantas horas, e de tanta atanta 0.03 e depois 0.06 e depois 0.01, mesmo a pessoa ficando 24h, eu pensei em pegar o horario q a pessoa digita pelo final subtrair, esse horario subtraido eu pegar e botar num for tipo ( x=0; x<horarioSubtraido; x++)
aqui dentro iria um IF, q ia receber esse x++ até o horario sbtraido quando chegar em 18.00 ele sairia desse if e cariinha no outro somando o outro valor em centavos.

¬¬°

Mais mesmo assim estou com dificuldades, caso alguem possa ajudar ou postar uma parte q falta ou alguma ajuda, se for um comando gostaria q explique oq ele faz, pois como disse estou começando java e não entendo muito bem se alguem posta um System. não sei das quantas pois conheço o Basico.

Grato amigos.

2 Respostas

B

Ola,

Eu aconselho o uso da classe java.util.GregorianCalendar, pois vc pode criar ranges de horarios... +/- assim:
GregorianCalendar cent03Init = new GregorianCalendar(2007,01,01, 06,00);
GregorianCalendar cent03Fim = new GregorianCalendar(2007,01,01, 18,00);

GregorianCalendar cent06Init = new GregorianCalendar(2007,01,01, 18,01);
GregorianCalendar cent06Fim = new GregorianCalendar(2007,01,01, 22,00);
...
Assim vc cria uma lista com os ranges de horarios... com inicio e fim, e note que a única coisa que muda é a hora e minutos... Depois disto, sá vc pegar a hora que o usuário digitar, criar um GregorianCalendar para ele, e calcular... por exemplo:
int horaInitUsuario = 06;
int minutoInitUsuario = 00
int horaFimUsuario = 22;
int minutoFimtUsuario = 30;
GregorianCalendar init = new Gregoriacalendar(2007,01,01, horaInitUsuario, minutoInitUsuario);
GregorianCalendar fim = new Gregoriacalendar(2007,01,01, horaFimUsuario, minutoFimUsuario);

float apagar = 0.0F;
if(cent03Init.before(init) && cent03Fim.after(init){
  apagar += 0.3F;
}
if(cent03Fim.after(fim){
  //acabou o calculo... senao continue calculando....
}
E por ae vai... lembrando que as variaveis "cent03Init" foram aquelas declaradas no trecho que codigo acima....
C

Muito obrigado pela ajuda,vou ver oq vai virar eu fazendo do jeito q vc me explicou, dai se pintar novas duvidas posto =).

Obrigado amigo

Criado 14 de fevereiro de 2007
Ultima resposta 15 de fev. de 2007
Respostas 2
Participantes 2