Java fin du mois plusMonths

Qu'arrive-t-il à plus de mois vers la fin du mois?

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.

  1. Ajoutez le nombre de mois entré dans le champ mois
  2. Vérifiez si la date résultante n'est pas valide
  3. Ajustez «Mois Jour» au dernier jour valide, si nécessaire Par exemple, l'ajout de janvier au 31/03/2007 entraîne une date non valide 31/04/2007. Au lieu de renvoyer un résultat non valide, 2007-04-30, le dernier jour valide du mois, est sélectionné.

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.

Vérification

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:

De côté

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

Java fin du mois plusMonths
[Java] Présentation de Java
Caractéristiques prévues de Java
[Java] Importance de serialVersionUID
Avis sur Java Shilber
java --Unification des commentaires
Histoire des annotations Java
java (mérites du polymorphisme)
Examen NIO de Java
[Java] Trois fonctionnalités de Java
Résumé du support Java 2018
[Java] Utilisation de Mirage-Basic de SQL
[Java] Compréhension débutante de Servlet-②
[Java] Pratique de la gestion des exceptions [Exception]
Principes de base de l'utilisation des caractères (Java)
[Java] Création d'annotations originales
java learning day 4
[Java] Compréhension débutante de Servlet-①
[Java] Résumé des expressions régulières
[Java] Résumé des opérateurs (opérateur)
[Java] Implémentation du réseau Faistel
[Java] Comparateur de la classe Collection
Résumé des bases du langage Java
Résumé de la classe Java Math
Énumération de toutes les combinaisons Java
java (héritage du principe is-a)
Avantages et inconvénients de Java
Comment dériver le dernier jour du mois en Java
Avantages de la méthode statique Java
[Java] Supprimer le nombre spécifié de caractères à la fin de StringBuilder
[Java] Résumé de la syntaxe de contrôle
Implémentation Java de tri-tree
Résumé du traitement des erreurs Java
[Java] Résumé des modèles de conception
[Java] Résumé des opérations mathématiques
Méthode pour additionner le nombre d'années et obtenir la fin du mois
[Java] Comparaison de vitesse de combinaison de chaînes
Pensez à une stratégie de mise à jour Java
[Java] Supprimer les éléments de la liste
[Pour les débutants] Résumé du constructeur java
Diverses méthodes de la classe Java String
Cause fondamentale du bogue du framework Java
À propos de Biocontainers fastqc et Java
[Édition Java] Histoire de la sérialisation
Résumé du package [Java Silver Study]
À propos de Lambda, Stream, LocalDate de Java8
Histoire du passage de Java Gold SE8
Trier la liste des objets Java
[Java] DateTimeFormatter sortie par FormatStyle
[Java] Entrez dans le stdin du processus
Utilisation de base de Java Facultatif Partie 1
Gestion des fuseaux horaires avec Java
[Java EE] @ Idée fausse commune de Dependent
[Note] Gestion des points décimaux Java
[Java] Zones de données d'exécution de JVM
Liste des membres ajoutés dans Java 9
Prise en compte du risque de «changement de politique Java»
[Java] Référence / mise à jour d'Active Directory