Wenn Sie einen Monat zu 2015/01/29
hinzufügen, erhalten Sie 2015/02/29
- da 2015 kein Schaltjahr ist, das ist kein gültiges Datum, also wählt Joda 2015/02/28
, dokumentiert :
Die Addition kann das Jahr ändern, aber normalerweise ist der Tag des Monats unverändert. Wenn das Hinzufügen von Monaten den Monatstag ungültig macht, ist dies der Fall angepasst an den letzten gültigen Tag des Monats.
Und ein weiterer Monat, der zu 2015/02/28
hinzugefügt wurde, führt zum tatsächlichen Datum 2015/03/28
.
Das Problem mit dem fehlenden 29. Februar tritt nicht auf, wenn zwei Monate hinzugefügt werden, da Joda niemals ein ungültiges Datum erhält.
Das gleiche gilt beispielsweise für new LocalDate(2015, 03, 31).plusMonths(2)
gegenüber new LocalDate(2015, 03, 31).plusMonths(1).plusMonths(1)
- ich denke, das ist häufiger als Schaltjahre.