Diferença em dias entre duas datas desconsiderando final de semana

3 respostas
ph_ms

boa tarde Java man’s e woman’s…

seguinte, preciso saber a diferença em dias entre duas datas desconsiderando os finais de semana:

Exemplo 01:

12/07/07 e 12/07/07 -&gt tem q me retornar 1.

Exemplo 02:

12/07/07 e 13/07/07 -&gt tem q me retornar 2, pois quero contar o 12 e o 13 também...

Exemplo 03:

12/07/07 e 17/07/07 -&gt tem q me retornar 4, pois não quero considerar o sábado e o domingo,  vou considerar os dias 12(quinta), 13(sexta), 16(segunda) e 17(terça)...

valeu

3 Respostas

king_of_gods

Use isto:

Calendar.DAY_OF_WEEK;
Começa em Domingo(0) e termina em Sábado(6);

Compara a data do dia que você faça um data.getDay() e compare com os valores se forem dias da semana vc soma, senão vc não faz nada.

ph_ms

valeu moçada…

R
Código tosco, mas resolve:
Calendar data1 = Calendar.getInstance();
Calendar data2 = Calendar.getInstance(); 
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
		
data1.setTime(sdf.parse("01/06/2007"));
data2.setTime(new Date());
			
int inicio = data1.get(Calendar.DAY_OF_YEAR);
int fim = data2.get(Calendar.DAY_OF_YEAR);
			
int qdeDias = (fim - inicio) + 1;
			
for (; inicio <= fim; inicio++){
    if (data1.get(Calendar.DAY_OF_WEEK) == 1 
        || data1.get(Calendar.DAY_OF_WEEK) == 7)
	qdeDias--;
				
    data1.add(Calendar.DATE, 1);
}
A saída do código acima são 33 dias.

Veja o Joda Time que me parece bem completo.

flws!

Criado 17 de julho de 2007
Ultima resposta 17 de jul. de 2007
Respostas 3
Participantes 3