Estou desenvolvendo um serviço no qual preciso calcular a data inicial, de acordo com a data final que é sempre a data atual. No serviço deve ser informado um valor de diferença entre a data inicial e final, e com base nesse valor preciso calcular a data inicial. Por exemplo, informando o valor 15, a data inicial deve ser 02/06/2009, pois a data final é 18/06/2009 (data atual).
Gostaria de saber se naquela classe GregorianCalendar existe algum método que ajude a fazer esse tipo de cálculo, pois eu analisei e não encontrei. Eu pensei em desenvolver uma classe para esse tipo de situação, mas como envolveria bastante verificações (ano bissesto, dias dos meses, etc), pensei em perguntar pra vocês qual seria a melhor maneira de eu desenvolver este algoritmo.
Mais uma dúvida, não sei porque, mas na hora de eu recuperar o valor do mês inserido, ele retorna o mês errado. Por exemplo: quando eu tenho mês 06 ele retorna como mês 07, na hora em que recupero o valor.
Segue abaixo o código: