Diferenca entre duas datas

1 resposta
V

[b]Pessoal, estou com o seguinte problema… preciso tirar a diferenca em horas entre duas datas usando GregorianCalendar (formato dd/mm/aaaa hh:mm:ss) … eu fiz usando o getTimeInMillis() e diminuindo uma data da outra, e depois eu fazia os calculos transformando em hora, nao deu nenhum erro de compilacao, so que as datas estao chegando na funcao iguais, mesmo eu entrando com duas datas diferentes… eu creio que o erro esta na hora de chamar o construtor, mas pqp, eu nao consigo ver onde…

essa funcao calcula

public static double valorServico(GregorianCalendar dataHora1, GregorianCalendar dataHora2, double valorHora){ double valorServico; long dias = dataHora2.getTimeInMillis() - dataHora1.getTimeInMillis(); double nHoras = (dias/3600000.0); // Diferença em Horas valorServico = nHoras*valorHora; return valorServico; }

e criando a data assim:

dataHora1 = Console.readLine("Digite a data de inicio no formato dd/mm/aaaa hh:mm:ss : "); String[] dat = auxData[0].split("/"); String[] hora = auxData[1].split(":"); int ano = Integer.parseInt(dat[2]); int mes = Integer.parseInt(dat[1]); int dia = Integer.parseInt(dat[0]); int hor = Integer.parseInt(hora[0]); int min = Integer.parseInt(hora[1]); int seg = Integer.parseInt(hora[2]); GregorianCalendar data1 = new GregorianCalendar(); data1.set(ano,mes-1,dia,hor,min,seg);

ajudem por favor :([/b]

[color=“red”]*Editado por jairelton: Use as tags BBCode nas suas mensagens no forum :wink: [/color]

1 Resposta

J

Exercicio do professor Erix Morato, acertei??? :twisted:

Não reinvente a roda, use SimpleDateFormat para trabalhar com datas...

dataHora1 = Console.readLine("Digite a data de inicio no formato dd/mm/aaaa hh:mm:ss : ");
SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");

Date dt1 = null;

try{
   dt1 = formatador.parse(dataHora1);
}catch(ParseException pe){
   pe.printStackTrace();
}

GregorianCalendar data1 = new GregorianCalendar();
data1.setTime(dt1);

dataHora2 = Console.readLine("Digite a data de fim no formato dd/mm/aaaa hh:mm:ss : ");

Date dt2 = null;

try{
   dt2 = formatador.parse(dataHora2);
}catch(ParseException pe){
   pe.printStackTrace();
}

GregorianCalendar data2 = new GregorianCalendar();
data1.setTime(dt2);

double valorHora = //ler valor

double valor = valorServico(data1, data2, valorServico);

Não se esqueça dos import's... esse codigo não está muito bonito não, mas trabalho de faculdade é assim mesmo...pode ser que tenha algum erro aí, não testei, qualquer outra duvida é só postar...

Criado 2 de setembro de 2006
Ultima resposta 3 de set. de 2006
Respostas 1
Participantes 2