URGENTE- Pegar ultimos 6 meses em JAVA. alguem sabe?

alguem sabe como pegar os ultimos 6 meses referente ao mes atual em java?

preciso de um metodo q faça isso…

se puderem me ajudar… abraços…

Exemplo…

Calendar dia25 = Calendar.getInstance(); // 25/03/2004
dia25.add(Calendar.MONTH, -1); // 25/02/2004
dia25.add(Calendar.MONTH, -1); // 25/01/2004
dia25.add(Calendar.MONTH, -1); // 25/12/2004
dia25.add(Calendar.MONTH, -1); // 25/11/2004
dia25.add(Calendar.MONTH, -1); // 25/10/2004

Pegô? Abstrai…

[quote=“le-silva”]Exemplo…

Calendar dia25 = Calendar.getInstance(); // 25/03/2004
dia25.add(Calendar.MONTH, -1); // 25/02/2004
dia25.add(Calendar.MONTH, -1); // 25/01/2004
dia25.add(Calendar.MONTH, -1); // 25/12/2004
dia25.add(Calendar.MONTH, -1); // 25/11/2004
dia25.add(Calendar.MONTH, -1); // 25/10/2004

Pegô? Abstrai…[/quote]

valeu cara pela atenção… mas vamos ver se captei.
se eu mandar printar:
dia25.add(Calendar.MONTH, -1);

ele me retorna oque?
vou ter q fazer um parser dessa string: 25/02/2004 pra pegar só o 3º e 4º caracter?

valeu
ps: te mandei um mail, mas voltou. ta funfando esse q ta no seu perfil?

[quote=“Thiago008”]
ele me retorna oque?
vou ter q fazer um parser dessa string: 25/02/2004 pra pegar só o 3º e 4º caracter?[/quote]

Olá amigo,

Dê uma olhada:

http://java.sun.com/j2se/1.4.2/docs/api/java/util/GregorianCalendar.html

você pode fazer o seguinte:

int mes = calendar.get(GregorianCalendar.MONTH);

ps: você é amigo do Fezo?

[quote=“Thiago008”]
ele me retorna oque?
vou ter q fazer um parser dessa string: 25/02/2004 pra pegar só o 3º e 4º caracter?[/quote]

dia25.add(Calendar.MONTH,-1)

Pra retornar o mes

dia25.get(Calendar.MONTH) // se eu nao me engano, o mes comeca a partir de 0 ( zero ) . Exemplo: Janeiro=0, Fev = 1 …

[quote=“Vegetto”][quote=“Thiago008”]
ele me retorna oque?
vou ter q fazer um parser dessa string: 25/02/2004 pra pegar só o 3º e 4º caracter?[/quote]

Olá amigo,

Dê uma olhada:

http://java.sun.com/j2se/1.4.2/docs/api/java/util/GregorianCalendar.html

você pode fazer o seguinte:

int mes = calendar.get(GregorianCalendar.MONTH);

ps: você é amigo do Fezo?[/quote]

sou eu mesmo cara rs…
e ja consegui fazer oq queria, valeu galera !

simples assim:
cal.add(Calendar.MONTH, -6);
rs… abraços.

[code]import java.util.*;

public class Test {

public static void main(String[] args) {
int[] m = pegarUltimosNMeses( new Date(), Integer.parseInt(args[0]) );
for( int i=0; i<m.length; i++ ) {
System.out.println(m[i]);
}
}

/**
* Retorna um array de int com o número correspondente dos últimos N
* meses solicitados, sem incluir o mês atual.
*/
public static int[] pegarUltimosNMeses( Date hoje, int n ) {
int[] meses = new int[n];
int ultimoMesAno = 12;
Calendar calendar = new GregorianCalendar();
calendar.setTime( hoje );
//adiciono 1 pois os meses são representados de 0 a 11
int mesAtual = calendar.get(Calendar.MONTH) + 1;
for(int i=n; i>0; i–) {
meses[i-1] = mesAtual - i;
if( meses[i-1] < 1 ) {
meses[i-1] = ultimoMesAno + meses[i-1];
}
}
return meses;
}
}[/code]

Tem um pequeno BUG, mas vc vai saber quando utilizar.

Abraços

[quote=“danieldestro”][code]import java.util.*;

public class Test {

public static void main(String[] args) {
int[] m = pegarUltimosNMeses( new Date(), Integer.parseInt(args[0]) );
for( int i=0; i<m.length; i++ ) {
System.out.println(m[i]);
}
}

/**
* Retorna um array de int com o número correspondente dos últimos N
* meses solicitados, sem incluir o mês atual.
*/
public static int[] pegarUltimosNMeses( Date hoje, int n ) {
int[] meses = new int[n];
int ultimoMesAno = 12;
Calendar calendar = new GregorianCalendar();
calendar.setTime( hoje );
//adiciono 1 pois os meses são representados de 0 a 11
int mesAtual = calendar.get(Calendar.MONTH) + 1;
for(int i=n; i>0; i–) {
meses[i-1] = mesAtual - i;
if( meses[i-1] < 1 ) {
meses[i-1] = ultimoMesAno + meses[i-1];
}
}
return meses;
}
}[/code]

Tem um pequeno BUG, mas vc vai saber quando utilizar.

Abraços[/quote]

valeu cara, obrigado pela atencao

[quote=danieldestro][code]import java.util.*;

public class Test {

public static void main(String[] args) {
int[] m = pegarUltimosNMeses( new Date(), Integer.parseInt(args[0]) );
for( int i=0; i<m.length; i++ ) {
System.out.println(m[i]);
}
}

/**
* Retorna um array de int com o número correspondente dos últimos N
* meses solicitados, sem incluir o mês atual.
*/
public static int[] pegarUltimosNMeses( Date hoje, int n ) {
int[] meses = new int[n];
int ultimoMesAno = 12;
Calendar calendar = new GregorianCalendar();
calendar.setTime( hoje );
//adiciono 1 pois os meses são representados de 0 a 11
int mesAtual = calendar.get(Calendar.MONTH) + 1;
for(int i=n; i>0; i–) {
meses[i-1] = mesAtual - i;
if( meses[i-1] < 1 ) {
meses[i-1] = ultimoMesAno + meses[i-1];
}
}
return meses;
}
}[/code]

Tem um pequeno BUG, mas vc vai saber quando utilizar.

Abraços[/quote]

Será que vc já conseguiu resolver esse bug prezado Daniel???

:smiley: