Entre duas datas espécie de Between

3 respostas
J

Como eu consigo pegar todas as datas que estejam dentre o meio da data inicial, e final ?
ex:
String dataIni = “03/12/2007”
String dataFinal = “06/12/2007”
passando esses 2 parametros, me retornar algo assim:

03/12/2007 // do inicio
04/12/2007
05/12/2007
06/12/2007 // até a final

me retorne os outros dias dentre esses 2 parametros…
alguém pode me ajudar?
estou pesquisando algum recurso que o Java possa oferecer para isso mas não estou encontrando…

3 Respostas

B

Ola,

vc pode fazer o seguinte,
1º, transforme suas datas em java.util.Date, usando o java.text.DateFormat.

2º, crie um java.util.Calendar com a primeira data, e vai iterando e acrescendo o campo DAY_OF_MONTH em um, até que a data seja igual a data fim… vc adiciona um dia assim:

Calendar c ... c.add(Calendar.DAY_OF_MONTH, 1);

J

legal consegui pegar os dias e ano
mas o mes vem “0” zero

dado os valores:
01/12/2007 até 05/12/2007

veja:

while(calini.before(calfim) || calini.equals(calfim)){  
	         lista.add(calini.getTime());
	         calini.add(Calendar.DAY_OF_MONTH , 1);
	    }  
	      
for (Date d : lista) {
     System.out.println(d.getDate() +"/" + d.getMonth() + "/" + d.getYear());
}

resultado:

1/0/2008
2/0/2008
3/0/2008
4/0/2008

pq vem os mes e o ano assim ?

B

Ola,

Mas como vc transformou a string em date??

Olha um exemplo básico:

String d = "25/12/2007";
		DateFormat format = new SimpleDateFormat("dd/MM/yyyy");
		Date date = format.parse(d);
		System.out.println("format = "+date);
		
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		System.out.println("calendar = "+format.format(calendar.getTime()));
		for(int x=0;x<3;x++){
			calendar.add(Calendar.DAY_OF_MONTH, 1);
			System.out.println("calendar = "+format.format(calendar.getTime()));
		}
Criado 3 de dezembro de 2007
Ultima resposta 3 de dez. de 2007
Respostas 3
Participantes 2