Básico - Gera 20 datas

Boa tarde, pessoal!

Como programar por exemplo data inicio da aula e vai ter 20 aulas em todas quartas, a programa gera 20 datas somente a data.

eu tentei esse código

public void gerarDataAula(){
		Calendar c = new GregorianCalendar(2012, 8, 6 );
		int aulas = 20;
		
		for (int i = 0; i < aulas; i++) {
			c.add(7, Calendar.DAY_OF_MONTH);
			Date dt = c.getTime();
			System.out.println(i+" - "+dt);
		}
		
	}

mas o resultado foi em todas quarta, gerou várias dia da semana, veja ai!!

Espero que vocês me dar um dicas ou ajuda, obrigado!

Jeison Pereira

está ao contrário, faz o seguinte:

c.add(Calendar.DAY_OF_WEEK, 7);  

Olá jsnpereira

Para calcular data de forma simples da uma olhadinha na biblioteca JodaTime, um exemplo simples de fazer o que vc quer usando essa biblioteca:

import org.joda.time.DateTime;
public class Teste {
public static void main(String[] args) {

	DateTime data = new DateTime(2012, 11, 28, 0, 0, 0, 0);
	for (int i = 0; i&lt;5; i++){ //coloquei 5 para o resultado ficar menor
		data = data.plusDays(7);
		System.out.println(data.toString(&quot;E dd/MM/yyyy HH:mm:ss&quot;));
	}
}}

resultado

Qua 05/12/2012 00:00:00 Qua 12/12/2012 00:00:00 Qua 19/12/2012 00:00:00 Qua 26/12/2012 00:00:00 Qua 02/01/2013 00:00:00

Viu, você pode também configurar as horas de forma bem simples, que começam essas aulas.
Dá uma olhadinha na documentação: http://joda-time.sourceforge.net/contrib/hibernate/userguide.html , baixe o jar e carregue na sua aplicação.

Abs.,

Outra informação,
vc viu que a sua data começou como:

0 - Tue Sep 11 00:00:00 BRT 2012 

sendo que vc queria agosto, certo?

Calendar c = new GregorianCalendar(2012, 8, 6 );  

Isso acontece porque na Calendar os meses são contados a partir do 0, conforme os arrays.

nesse caso para que saia correto faz assim:

Calendar c = new GregorianCalendar(2012, c.AUGUST, 6 ); 

Viu a diferença, dessa forma vai começar a contagem em agosto.

Abs.