Trabalhar com datas

3 respostas
analuiza.fagundes

Olá amigos ,
Tenho uma data inicial e uma data final , gostaria de calcular o numero de dias entre as duas…

Ah e gostaria de sabe tbm como faço para testar a partir de uma data , qual dia da semana ela representa ?

3 Respostas

Jair_Rillo_Junior

Esses são assuntos que já foram bastante discutidos no GUJ. Aconselho também dar uma estudada na API do GregorianCalendar e também no JODATIME (esse último eu particularmente nunca usei de fato).

ViniGodoy

Use para isso a biblioteca Joda-Time. Aí o código fica simples assim:

LocalTime start = new LocalTime("10:00:00");
LocalTime end   = new LocalTime("11:30:00");
Period period   = new Period(start, end);

System.out.println("Entre as duas datas há: " + period.getDays() + " dias,  " 
    + period.getHours() + " horas "
    + period.getMinutes() + " minutos.");

Agora, não use a classe Calendar do Java. É muito ineficiente, difícil de usar e sujeita a erros.
As classes do Joda estão sendo cogitadas para substituirem os calendários do Java em versões futuras.

elugo

Calculando número de dias

Locale locale = new Locale("pt_BR");
TimeZone zona = TimeZone.getTimeZone("GMT-3");
Calendar d1 = Calendar.getInstance(zona, locale);
Calendar d2 = Calendar.getInstance(zona, locale);

d1.setTime(data1);//data1 é o parâmetro passado.
d2.setTime(data2);//data2 é o parâmetro passado.
int dia = (int) ((d1.getTimeInMillis() - d2.getTimeInMillis()) / (24 * 60 * 60 * 1000));
Criado 19 de novembro de 2008
Ultima resposta 19 de nov. de 2008
Respostas 3
Participantes 4