Erro ao pegar a data dos últimos 3 meses?

Estou querendo pegar a data de hoje e a data de 3 meses atrás, no código abaixo só consigo pegar a data do mês anterior, e se eu colocar menos 3 na frente da variável mes1, o mês vai pra zero :confused:

Calendar calendar = Calendar.getInstance();
int ano = calendar.get(Calendar.YEAR);
int mes = calendar.get(Calendar.MONTH)+1;
int mes1 = calendar.get(Calendar.MONTH);
int dia = calendar.get(Calendar.DAY_OF_MONTH);
     
String inicioData1 = String.valueOf(dia +"/"+ mes1 +"/"+ ano);
String finalData1 = String.valueOf(dia +"/"+ mes +"/"+ ano);

Geralmente é uma má ideia manipular datas dessa forma. Você sempre vai esquecer de lidar com detalhes como ano bissexto, ou como nao tem dia 30 em fevereiro.

Use os métodos apropriados da classe Calendar pra isso:

    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.MONTH, -3);
    System.out.println(calendar.getTime());

Como está em android, imagino que nao tenha acesso ao Java 8, que tem uma api de datas muito melhor.
Recomendo usar JodaTime, que é muito mais prática que a api do java.

Valeu AbelBueno! Deu certo :slight_smile: