Метод until
Метод until класса LocalDate вычисляет
разницу между текущей датой и датой, переданной
в первом параметре. Результат возвращается в виде
числа в единицах измерения, которые задаются
вторым параметром. Разница может быть как
положительной, так и отрицательной. В первом
параметре мы передаем конечную дату, во втором -
единицу измерения периода в виде объекта
ChronoUnit.
Метод возвращает объект типа long. Если конечная
дата больше текущей, результат положительный,
если меньше - отрицательный.
Синтаксис
date.until(endDate, chronoUnit)
Пример
Давайте вычислим количество дней между двумя датами:
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class Main
{
public static void main(String[] args)
{
LocalDate start = LocalDate.of(2025, 1, 1);
LocalDate end = LocalDate.of(2025, 1, 10);
long res = start.until(end, ChronoUnit.DAYS);
System.out.println(res);
}
}
Результат выполнения кода:
9
Пример
Давайте вычислим количество месяцев между двумя датами:
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class Main
{
public static void main(String[] args)
{
LocalDate start = LocalDate.of(2025, 1, 1);
LocalDate end = LocalDate.of(2025, 6, 1);
long res = start.until(end, ChronoUnit.MONTHS);
System.out.println(res);
}
}
Результат выполнения кода:
5
Пример
Давайте вычислим количество лет между двумя датами:
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class Main
{
public static void main(String[] args)
{
LocalDate start = LocalDate.of(2020, 1, 1);
LocalDate end = LocalDate.of(2025, 1, 1);
long res = start.until(end, ChronoUnit.YEARS);
System.out.println(res);
}
}
Результат выполнения кода:
5
Пример
Если конечная дата меньше текущей, метод возвращает отрицательное число:
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class Main
{
public static void main(String[] args)
{
LocalDate start = LocalDate.of(2025, 1, 10);
LocalDate end = LocalDate.of(2025, 1, 1);
long res = start.until(end, ChronoUnit.DAYS);
System.out.println(res);
}
}
Результат выполнения кода:
-9