|
The Java library actually supports this case. It may not have the convenient "years" method directly, but you can add an arbitrary unit of time quite easily Example with duration: Duration.of(1, ChronoUnit.YEARS)
Example with datetime: today.plus(2, ChronoUnit.YEARS)
It even supports decades, centuries, eras and half days :-)For those curious about how it handles leap years: var leapDay = LocalDate.of(2024, 2, 29)
leapDay.plus(1, ChronoUnit.YEARS);
// ==> 2025-02-28
var lastYear = LocalDate.of(2023, 3, 1);
lastYear.plus(1, ChronoUnit.YEARS);
// ==> 2024-03-01
var lastFeb = LocalDate.of(2023, 2, 28);
lastFeb.plus(1, ChronoUnit.YEARS);
// ==> 2024-02-28
var firstFeb = LocalDate.of(2024, 2, 1);
leapDay.with(TemporalAdjusters.lastDayOfMonth());
// ==> 2024-02-29
|