Pessoal ve se alguem me ajuda nisso,
como eu poderia tendo uma data base, por exemplo “01012000” e
recebendo um numero de dias por exemplo “512”, retornar qual data a
parttir da data base, como posso fazer isso em java?
valeu
E ai Paulo!
Tenta usar a classe GregorianCalendar.
SimpleDateFormat in = new SimpleDateFormat("dd/MM/yyyy");
try {
GregorianCalendar cal = new GregorianCalendar();
cal.add(GregorianCalendar.DAY_OF_YEAR, 10);
System.out.println(in.format(cal.getTime()));
} catch (ParseException e) {
e.printStackTrace();
}
No metodo add vc passa como argumento qual a unidade que vc quer adicionar (dia do ano, mes, ano etc…) e a variação.
No exemplo tá adicionando 10 dias apartir da data atual.
Certinho? Qualquer dúvida eu tento te ajudar…
[]
Diego, valeu pela ajuda
so ta dando um problema pq parece q esse metodo na leva em conta os anos bissextos e esta dando uma diferença de dias nas datas, eh assim mesmo?
valeu
Realmente, a classe GregorianCalendar leva em consideração anos bisextos, agora quanto a diferença na data eu não sei te dizer se tem mesmo essa diferença…
Se vc descobrir posta ai se dá mesmo essa diferença pq agora eu fiquei curioso… :roll:
Resolvi o problema, eh q tinha uma outra funçao q fazia o contrario, recebia uma data e retornava o numero de dias em relaçao a uma data base, o erro estava ai, pois nao estava levando consideraçao os anos bissextos, ja ta funcionando, valeu cara, e aqui esta esse metodo:
[code]protected int calculaQtdDias(String pData)
{
int anoVenc = Integer.parseInt(pData.substring(4,8));
int mesVenc = Integer.parseInt(pData.substring(2,4));
int diaVenc = Integer.parseInt(pData.substring(0,2));
Calendar calendar = new GregorianCalendar();
calendar.set(1901,Calendar.JANUARY,1);
int diaInicial = calendar.get(Calendar.DAY_OF_YEAR);
calendar.set(anoVenc,mesVenc - 1,diaVenc);
int diaVencimento = calendar.get(Calendar.DAY_OF_YEAR);
int diasError = Math.round((anoVenc - 1901)/4);
return (diaVencimento - diaInicial) + ((anoVenc - 1901) * 365) + diasError;
}[/code]
valeu