2010-04-12 6 views

Répondre

13

Calendar.DAY_OF_YEAR est la bonne façon de soustraire jours

Vous pouvez également soustraire un an (en prenant en compte les années bissextiles) en utilisant

Calendar calendar = Calendar.getInstance(); 
calendar.setTime(givenDate); 
calendar.add(Calendar.YEAR, -1); 
+2

En fait calendar.add (Calendar.DAY_OF_YEAR, n) et calendar.add (Calendar.DATE, n) sont identiques. Voir http://stackoverflow.com/questions/2506082/add-more-than-30-days-with-calendars-add-method-in-java/2506096#2506096 –

4

C'est la bonne façon de soustraire des jours.

Notez que 365 jours ne sont pas toujours égaux à un an en raison des jours bissextiles. calendar.add(Calendar.YEAR, -1) soustrairait un an correctement.

Vous pouvez également utiliser Joda Time -library au lieu de java.util.Date et java.util.Calendar. Joda Time est une API beaucoup plus agréable pour gérer les temps et les dates.

0

Si vous essayez de strictement Soustraire 365 jours, alors oui, ce serait le faire. Cependant, si vous essayez des années en arrière, cela pourrait ne pas fonctionner en raison des années bissextiles.

0

Découvrez Veyder-time. C'est une alternative simple et puissante à java.util.Calendar et a des méthodes simples pour ajouter et soustraire des jours et des années, parmi beaucoup d'autres choses.