Pegar meses e anos anteriores!

6 respostas
D

Bem preciso pegar os meses e os anos anteriores ao mes e ano atual, teria como fazer isso!!

Ex.:

Estamos em 02/2003 gostaria de pegar os 12 meses passados, ou seja,

01/2003,12/2002,11/2002,10/2002,09/2002,08/2002,07/2002,06/2002,
05/2002,04/2002,03/2002,…,…,…

tem como eu fazer isso, estou utilizando o GregorianCalendar!!

6 Respostas

Bani

Não conheço nenhum método que faça isso, mas com um loopzinho básico você monta uma array.

Veja um exemplo:

int mes = // mes atual int ano = // ano atual String[] meses = new String[12]; for (int m = 0; m < 12; m++) { if (mes > 1) { mes--; if (mes < 10) { meses[m] = "0" + mes +"/"+ ano; } else { meses[m] = mes +"/"+ ano; } } else { ano--; mes=12; meses[m] = "12/" + ano; } }

own_prison

e ai blz??? fugindo um pouco do assunto… como eu faço pra pegar uma hora…??? tipo kuando eu pego ela vem com varios valores… e eu kero apenas hh:mm…??? tipo(15:50)… :slight_smile:

D

Olha, eu fiz assim!!

import java.util.GregorianCalendar;
import java.util.Date;

GregorianCalendar calendar = new GregorianCalendar();

int hora = calendar.get(calendar.HOUR_OF_DAY);

int minuto = calendar.get(calendar.MINUTE);

Espero ter ajudado!!

D

Bani, muito obrigado, você resolveu 70% do meu problema, agora vÊ se você pode me ajudar em mais uma coisa!!

No código que você me deu acima, ele faz justamente o que eu preciso, só que eu preciso pegar os meses com um mes de defazagem, ou seja.

Ex.:

Hoje nós estamos em:

02/2003 eu preciso pegar os meses e o ano apartir de 12/2002 ele está fazendo isso, só que em janeiro eu tenho que pegar o mes de 11/2002, em diante!!

01/2003 eu preciso pegar o mes de 11/2002
02/2003 eu preciso pegar o mes de 12/2002 aqui ele já faz isso!!!
03/2003 eu preciso pegar o mes de 01/2001 :wink: aqui ele já faz isso!!!

own_prison

Valeu…

Bani

É só diminuir o mês/ano antes de usar...

int mes = //mes atual
      int ano = //ano atual

         if (mes > 1) { 
            mes--;
         } else { 
            ano--; 
            mes=12; 
         }

      String[] meses = new String[12]; 
        for (int m = 0; m < 12; m++) { 
         if (mes > 1) { 
            mes--;
         } else { 
            ano--; 
            mes=12; 
         }
         meses[m] = mes +"/"+ ano; 
         if (meses[m].length() < 7) {
            meses[m] = "0" + meses[m];
         }
        }

Você pode até colocar esse if em um método separado para não ficar duplicando código.

Criado 6 de fevereiro de 2003
Ultima resposta 8 de fev. de 2003
Respostas 6
Participantes 3