Рассчитать разницу в днях, не учитывая год?

201
07 ноября 2018, 16:20

Есть две даты : 27.08.1995(день рождения) и 17.08.2018(сегодняшняя дата)

Как правильно рассчитать, что до ДР осталось 10 дней?

Были попытки сделать разными способами. Один из них такой:

Days.daysBetween(bDate, currentDate).getDays()

Но он выводит абсолютное количество дней - 8391

Answer 1

Можно использовать ChronoUnit из Java 8:

import java.time.LocalDate;
import java.time.Month;
import java.time.temporal.ChronoUnit;
public class DifferenceBetweenTwoDate {
 static  int timeBetweenTwoDays(LocalDate birthday){
     LocalDate today = LocalDate.now(); //Получаем сегодняшний день
     LocalDate nextBDay = birthday.withYear(today.getYear());
     //Проверка, был ли день рождения в этом году
     if (nextBDay.isBefore(today) || nextBDay.isEqual(today)) { 
         nextBDay = nextBDay.plusYears(1);
     }
     long daysBetween = ChronoUnit.DAYS.between(today, nextBDay);
     System.out.println("There are " + daysBetween + " days until your next birthday");
     return (int)daysBetween;
 }
    public static void main(String[] args) {
        timeBetweenTwoDays(LocalDate.of(1995, Month.AUGUST, 27)); //Передаём дату дня рождения
    }
}

Вывод: There are 10 days until your next birthday

READ ALSO
Отрисовка переданного Sprite

Отрисовка переданного Sprite

Есть два класса, назовем их txtManager и актер ObjtxtManager создает и отдает спрайт:

207
Взятие id из GET запроса

Взятие id из GET запроса

Есть GET http://localhost:8088/property/123

217
Как реализовать получение результата Android In-app billing в fragment?

Как реализовать получение результата Android In-app billing в fragment?

Не могу разобраться уже несколько днейКак реализовать получение результата Android In-app billing в fragment? При совершении тестовой оплаты (после успешной...

190
Хранение файлов на сервере java

Хранение файлов на сервере java

Загружаю файл на сервер java

223