Olá Pessoal !!
Seguinte… Sou uma negação pra trabalhar com datas :oops:
Preciso muito da ajuda de vcs.
Eu preciso fazer o seguinte:
1 - Tenho 2 datas que só devo levar em consideração mes e ano.
2 - Enquanto uma data não for igual a outra, ele deve fazer algo
3 - O Formato deve ser: yyyymm
O algoritmo é o +/- o seguinte (mas não sei como fazer de forma q funcione hehe… nunca mexo com datas e é nisso q dá ):
É por ai…
Calendar c = Calendar.getInstance();
c.set(Calendar.MONTH, 9); // isso define o mês, e é indexado com 0 então mes 9 = outubro e nao setembro!
c.set(Calendar.YEAR, 2010); // 2010
DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM);
System.out.println(df.format(c.getTime())); // isso imprime a data do objeto 'c' DD/10/2010 onde DD é aparentemente o dia de hoje
Calendar c2 = Calendar.getInstance();
c2.set(Calendar.MONTH, 8); // define o mes como setembro
c2.set(Calendar.YEAR, 2010); // ano 2010
System.out.println(df.format(c2.getTime())); // isso imprime a data do objeto 'c2' DD/09/2010 onde DD é aparentemente o dia de hoje
// agora vamos fazer o que você quer... que é comparar datas!
while ((c.get(Calendar.MONTH) != c2.get(Calendar.MONTH)) || (c.get(Calendar.YEAR) != c2.get(Calendar.YEAR))) {
// aqui eu to dizendo pra ele entrar no loop caso o mês OU o ano das datas sejam diferentes!
// método get(field) retorna o numero do campo da data que voce pedir.. entao... enquanto um for diferente do outro ele deve continuar o loop
// aqui você tem que fazer o que voce quer... vamos dizer que voce queira incrementar c2(setembro) até chegar em outubro
c2.add(Calendar.MONTH, +1);
}
System.out.println(df.format(c2.getTime())); // aqui mostra que c2 foi incrementado e mostra a nova data! DD/10/2010
Calendar c = Calendar.getInstance();
c.set(Calendar.MONTH, 9); // isso define o mês, e é indexado com 0 então mes 9 = outubro e nao setembro!
c.set(Calendar.YEAR, 2010); // 2010
DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM);
System.out.println(df.format(c.getTime())); // isso imprime a data do objeto 'c' DD/10/2010 onde DD é aparentemente o dia de hoje
Calendar c2 = Calendar.getInstance();
c2.set(Calendar.MONTH, 8); // define o mes como setembro
c2.set(Calendar.YEAR, 2010); // ano 2010
System.out.println(df.format(c2.getTime())); // isso imprime a data do objeto 'c2' DD/09/2010 onde DD é aparentemente o dia de hoje
// agora vamos fazer o que você quer... que é comparar datas!
while ((c.get(Calendar.MONTH) != c2.get(Calendar.MONTH)) || (c.get(Calendar.YEAR) != c2.get(Calendar.YEAR))) {
// aqui eu to dizendo pra ele entrar no loop caso o mês OU o ano das datas sejam diferentes!
// método get(field) retorna o numero do campo da data que voce pedir.. entao... enquanto um for diferente do outro ele deve continuar o loop
// aqui você tem que fazer o que voce quer... vamos dizer que voce queira incrementar c2(setembro) até chegar em outubro
c2.add(Calendar.MONTH, +1);
}
System.out.println(df.format(c2.getTime())); // aqui mostra que c2 foi incrementado e mostra a nova data! DD/10/2010
[/code][/quote]
Fala cara !
Obrigado pela ajuda.
Eu fiz da seguinte forma, e tive o resultado esperado:
A saída foi: 200808 200809 200810 200811 200812 200901 200902 200903 200904 200905 200906 200907
Exatamente oq eu precisava…
Sei q isso foi mais um POG dq qq outra coisa, mas preciso disso funcionando pra amanhã no mais tardar :lol:
Então, depois fatoro pra uma versão mais rapida e simples.