Примеры Java для получения следующего или предыдущего дня для любого заданного дня. В примере используется устаревший класс java.util.Date, а также класс java.time.LocalDate из Java 8.
Мы можем использовать этот пример кода для расчета завтрашних и вчерашних дат на основе сегодняшней даты.
1. Использование LocalDate [Java 8]
Используйте методы LocalDate plusDays() и minusDays(), чтобы получить следующий и предыдущий день, прибавляя и вычитая 1 из сегодняшнего дня.
private LocalDate findNextDay(LocalDate localdate){return localdate.plusDays(1);}private LocalDate findPrevDay(LocalDate localdate){return localdate.minusDays(1);}
2. Использование даты [Java 7]
Используйте конструктор класса Date и передайте время в миллисекундах. Чтобы получить время вчерашнего дня, получите время сегодняшнего дня и вычтите общее количество миллисекунд в дне.
Аналогично, суммируйте общее количество миллисекунд ежедневно, чтобы получить время для следующей даты.
private static final long MILLIS_IN_A_DAY = 1000 * 60 * 60 * 24;private static Date findNextDay(Date date){return new Date(date.getTime() + MILLIS_IN_A_DAY);}private static Date findPrevDay(Date date){return new Date(date.getTime() - MILLIS_IN_A_DAY);}
3. Полный пример
import java.time.LocalDate;import java.util.Date;public class FindNextPrevDay{private static final long MILLIS_IN_A_DAY = 1000 * 60 * 60 * 24;public static void main(String[] args){Date today = new Date();System.out.println("Today :: " + findNextDay(today));System.out.println("Next date :: " + findNextDay(today));System.out.println("Prev date :: " + findPrevDay(today));LocalDate todayDate = LocalDate.now();System.out.println("Today :: " + todayDate);System.out.println("Next date :: " + findNextDay(todayDate));System.out.println("Prev date :: " + findPrevDay(todayDate));}private static Date findNextDay(Date date){return new Date(date.getTime() + MILLIS_IN_A_DAY);}private static Date findPrevDay(Date date){return new Date(date.getTime() - MILLIS_IN_A_DAY);}private static LocalDate findNextDay(LocalDate localdate){return localdate.plusDays(1);}private static LocalDate findPrevDay(LocalDate localdate){return localdate.minusDays(1);}}
Вывод программы:
Today :: Sun May 03 19:49:34 IST 2020Next date :: Sun May 03 19:49:34 IST 2020Prev date :: Fri May 01 19:49:34 IST 2020Today :: 2020-05-02Next date :: 2020-05-03Prev date :: 2020-05-01
Пишите мне свои вопросы в комментариях.