Есть две даты : 27.08.1995(день рождения) и 17.08.2018(сегодняшняя дата)
Как правильно рассчитать, что до ДР осталось 10 дней?
Были попытки сделать разными способами. Один из них такой:
Days.daysBetween(bDate, currentDate).getDays()
Но он выводит абсолютное количество дней - 8391
Можно использовать 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
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости