Adicionando dias a uma data em Java

Como faço para adicionar x dias a uma data em Java?

Por exemplo, minha data é (dd / mm / aaaa) = 01/01/2012

Adicionando 5 dias, a saída deve ser 06/01/2012 .

 SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); Calendar c = Calendar.getInstance(); c.setTime(new Date()); // Now use today date. c.add(Calendar.DATE, 5); // Adding 5 days String output = sdf.format(c.getTime()); System.out.println(output); 

java.time

Com a API de data e hora do Java 8, você pode usar a class LocalDate .

 LocalDate.now().plusDays(nrOfDays) 

Veja o tutorial do Oracle .

 Calendar cal = Calendar.getInstance(); cal.set(Calendar.DAY_OF_MONTH, 1); cal.set(Calendar.MONTH, 1); cal.set(Calendar.YEAR, 2012); cal.add(Calendar.DAY_OF_MONTH, 5); 

Você também pode sublinhar dias como Calendar.add(Calendar.DAY_OF_MONTH, -5);

Aqui está um código simples para dar saída como currentdate + D days = some 'x' date (data futura):

 DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); Calendar c = Calendar.getInstance(); c.add(Calendar.DATE, 5); System.out.println(dateFormat.format(c.getTime())); 

Se você estiver usando o Joda-Time (e há muitas boas razões para – uma API simples e intuitiva e segurança de thread), então você pode fazer isso de forma trivial:

 (new LocalDate()).plusDays(5); 

para dar 5 dias a partir de hoje, por exemplo.

Simples, sem qualquer outra API:

Para adicionar 8 dias:

 Date today=new Date(); long ltime=today.getTime()+8*24*60*60*1000; Date today8=new Date(ltime);