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

9 respostas
T

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…

9 Respostas

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…

T

“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…

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?

V

“Thiago008”:

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

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?

aborges

“Thiago008”:

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

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 …

T

“Vegetto”:
“Thiago008”:

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

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?

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

T

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

danieldestro
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;
  }
}

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

Abraços

T
"danieldestro":
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;
  }
}

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

Abraços

valeu cara, obrigado pela atencao

J
danieldestro:
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;
  }
}

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

Abraços

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

:D

Criado 25 de março de 2004
Ultima resposta 19 de jan. de 2010
Respostas 9
Participantes 6