web-dev-qa-db-fra.com

Ajout de jours à une date dans Java

Comment ajouter x jours à une date en Java?

Par exemple, ma date est (jj/mm/aaaa) = 01/01/2012

En ajoutant 5 jours, le résultat devrait être 06/01/2012.

72
hari prasad
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);
95
swemon

Java.time

Avec Java 8 API de date et heure , vous pouvez utiliser la classe LocalDate .

LocalDate.now().plusDays(nrOfDays)

Voir le tutoriel Oracle .

43
Matthias Braun
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);

Vous pouvez également soustraire des jours comme Calendar.add(Calendar.DAY_OF_MONTH, -5);

20
Petr Mensik

Voici un code simple à donner comme résultat currentdate + D days = some 'x' date (date future):

DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");

Calendar c = Calendar.getInstance();    
c.add(Calendar.DATE, 5);
System.out.println(dateFormat.format(c.getTime()));
17
user3136058

Si vous utilisez Joda-Time (et qu'il existe de nombreuses bonnes raisons de - une API simple et intuitive et une sécurité des threads), vous pouvez le faire de manière triviale:

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

donner 5 jours à partir d'aujourd'hui, par exemple.

12
Brian Agnew

Simple, sans autre API:

Pour ajouter 8 jours:

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