Я хочу рассчитать возраст по дате рождения в Date
. Я пробовал с этим кодом, который, кажется, работает нормально, но это самый удобный способ?
LocalDate hoy = LocalDate.now();
LocalDate nacimiento = usuarioActivo.getFechaNacimiento().toInstant().
atZone(ZoneId.systemDefault()).toLocalDate();
long edad = ChronoUnit.YEARS.between(nacimiento, hoy);
API Java 8 для дат и времени просто огромен. Я использую его, и это мой фаворит. Вы можете использовать JODA, как говорит вам @Alejandro Rangel Celis, который совместим со старыми версиями Java.
Ява 8
То, как оно у вас есть, допустимо, но не совсем правильно, потому что вы не учитываете месяцы. Для этого вы можете использовать класс Period :
Вылет из:
Попробуйте Joda , он упрощает вычисления даты и времени (Joda также является основой для нового стандарта API даты/времени в Java).
В Java 8 есть что- то очень похожее , и его стоит проверить.
Пример
Вот аналогичный вопрос на английском сайте.
Я начинаю программировать java с помощью NetBeans 11, и у меня только что возникла эта проблема, я решил ее следующим образом: (надеюсь, это сработает для вас)