2012-07-24 2 views
-3

Alors disons que j'ai ce code:Calendrier Roll-il autour d'une année, un mois, etc?

//someParameterizedDate = New Years Eve 2011 
Calendar cal = new GregorianCalendar(); 
cal.setTime(someParameterizedDate); 
cal.roll(Calendar.DAY_OF_YEAR, 1); 

Est-ce que le calendrier est maintenant égal au 1er janvier 2012? J'ai trouvé tous les JavaDocs un peu déroutants.

Répondre

4

java.util.Calendar

rouleau (f, delta) ajoute au champ delta f sans changer de champs plus importants. Ceci équivaut à l'appel de l'addition (f, delta) avec l'ajustement suivant:

Règle de roulis. Les champs plus grands sont inchangés après l'appel. Un champ plus grand représente une plus grande unité de temps. DAY_OF_MONTH est un champ plus grand que HEURE.

Vous roulez avec DAY_OF_YEAR ce qui signifie qu'il n'affectera MONTH ou YEAR qui sont des unités plus grandes

Donc, fondamentalement, vous devriez vous obtenir au 1er Décembre 2011

Vous pouvez utiliser add si vous le voulez aller au 1er Janvier 2012

+0

Merci l'homme. Vraiment utile. –

Questions connexes