Il n'y a pas de 31 en février, mais j'étais curieux de savoir ce qui se passerait si j'ajoutais 1 mois à 1/31 avec plusMonths ()
.
Selon Documentation
Cette méthode ajoute le montant spécifié au champ du mois en trois étapes.
Tout d'abord, ajoutez les mois et vérifiez s'il existe une date correspondante dans le mois ajouté. S'il n'y a pas une telle date, il semble retourner le dernier jour du mois.
LocalDate date = LocalDate.of(2020,1,31);
System.out.println(date.plusMonths(1));
// 2020-02-29
LocalDate date = LocalDate.of(2020,1,30);
System.out.println(date.plusMonths(1));
// 2020-02-29
LocalDate date = LocalDate.of(2020,1,29);
System.out.println(date.plusMonths(1));
// 2020-02-29
LocalDate date = LocalDate.of(2020,1,28);
System.out.println(date.plusMonths(1));
// 2020-02-28
Pour les dates qui ne s'appliquent pas, vous obtiendrez une date de retour valide: clap:
Que faire si «minusMonths» est suivi de «plusMonths»?
LocalDate date = LocalDate.of(2020,1,31);
System.out.println(date.plusMonths(1).minusMonths(1));
// 2020-01-29
Le résultat était 2020-01-29 parce que j'ai fait minusMonths
le 2020-02-29 et il est devenu 2020-02-29 avec plusMonths
.
Recommended Posts