Boa tarde…
sempre usei o Calendar.Add pra somar e subtrair datas, e sempre funcionou normal… porém, no dia 19/10/2013 ele simplesmente não adiciona!
Se eu setar dia 20/10/2013 ele já continua normal, mas se tiver menos que isso, ele só vai até dia 19/10/2013… não faz sentido nenhum, né?
o código da função é esse:
//parametro de entrada no formato "dd/MM/yyyy"
public String somadata(String texto) {
if (texto.equals("")){
String ano,mes,dia;
ano = PegaData().substring(0, 4);
mes = PegaData().substring(5,7);
dia = PegaData().substring(8,10);
texto = dia+"/"+mes+"/"+ano;
}
Date data;
String texto2;
texto2 = texto.substring(6, 10) + '-' + texto.substring(3, 5) + '-' + texto.substring(0, 2);
data = Date.valueOf(texto2);
Date dataFinal = data;
Calendar calendarData = Calendar.getInstance();
calendarData.setTime(dataFinal);
int numeroDiasParaSubtrair = 1;
calendarData.add(Calendar.DATE, numeroDiasParaSubtrair);
java.util.Date dataInicial = calendarData.getTime();
SimpleDateFormat formatarDate = new SimpleDateFormat("dd/MM/yyyy");
return formatarDate.format(dataInicial);
}
Se alguem tiver uns minutinhos, testa aí pra ver se acontece o mesmo… ou se eu errei em algum lugar aí no meio… mas acho estranho, pois todas as outras datas funcionam…