Вычисление следующей даты
Теперь, когда мы можем получить текущую дату, мы узнаем, как вычислить следующую дату, добавляя дни к объекту LocalDate
.
Понимание манипулирования датами с помощью LocalDate
Класс LocalDate
предоставляет несколько методов для манипулирования датами, в том числе:
plusDays(long days)
: Добавляет указанное количество дней
plusWeeks(long weeks)
: Добавляет указанное количество недель
plusMonths(long months)
: Добавляет указанное количество месяцев
plusYears(long years)
: Добавляет указанное количество лет
Существуют также соответствующие методы minus
для вычитания.
Давайте улучшим наш код, чтобы вычислить и отобразить следующую дату:
import java.time.LocalDate;
public class DateExample {
public static void main(String[] args) {
// Get the current date
LocalDate currentDate = LocalDate.now();
// Calculate the next date by adding one day
LocalDate nextDate = currentDate.plusDays(1);
// Display both dates
System.out.println("Current date: " + currentDate);
System.out.println("Next date: " + nextDate);
}
}
Компиляция и запуск обновленной программы
Давайте скомпилируем и запустим нашу обновленную программу:
- Убедитесь, что вы сохранили изменения в
DateExample.java
- В терминале скомпилируйте Java-программу:
javac DateExample.java
- Запустите скомпилированную программу:
java DateExample
Вы должны увидеть вывод, похожий на:
Current date: 2023-04-12
Next date: 2023-04-13
Опять же, фактические даты будут отражать текущую дату при запуске программы.
Изучение других манипуляций с датами
Давайте дополнительно улучшим нашу программу, чтобы продемонстрировать другие методы манипулирования датами:
import java.time.LocalDate;
public class DateExample {
public static void main(String[] args) {
// Get the current date
LocalDate currentDate = LocalDate.now();
// Calculate various future dates
LocalDate nextDate = currentDate.plusDays(1);
LocalDate nextWeek = currentDate.plusWeeks(1);
LocalDate nextMonth = currentDate.plusMonths(1);
LocalDate nextYear = currentDate.plusYears(1);
// Display all dates
System.out.println("Current date: " + currentDate);
System.out.println("Next date: " + nextDate);
System.out.println("Date after one week: " + nextWeek);
System.out.println("Date after one month: " + nextMonth);
System.out.println("Date after one year: " + nextYear);
}
}
Скомпилируйте и запустите программу снова:
javac DateExample.java
java DateExample
Вывод покажет текущую дату, следующую дату и даты через неделю, месяц и год:
Current date: 2023-04-12
Next date: 2023-04-13
Date after one week: 2023-04-19
Date after one month: 2023-05-12
Date after one year: 2024-04-12
Важная концепция: Неизменяемость (Immutability)
Обратите внимание, что мы присвоили результат plusDays()
новой переменной. Это связано с тем, что объекты LocalDate
неизменяемы (immutable), то есть их значения не могут быть изменены после создания. Такие методы, как plusDays()
, не изменяют исходный объект; вместо этого они возвращают новый объект с обновленным значением.
Эта неизменяемость является важной особенностью, которая делает объекты LocalDate
потокобезопасными и более предсказуемыми в сложных приложениях.