Введение
В этом практическом занятии мы узнаем, как использовать метод withDayOfYear() класса LocalDate в Java для создания даты с новым значением дня в году.
Создайте файл на Java
Создайте файл LocalDateWithDayOfYear.java в каталоге ~/project с кодом:
import java.time.LocalDate;
public class LocalDateWithDayOfYear {
public static void main(String[] args) {
System.out.println("Original date: ");
LocalDate localDate = LocalDate.of(2002, 01, 10);
System.out.println(localDate);
}
}
Используйте следующую команду для компиляции и запуска кода:
javac LocalDateWithDayOfYear.java && java LocalDateWithDayOfYear
На экране должно появиться исходная дата:
Original date:
2002-01-10
Используйте withDayOfYear() для установки нового дня в году
Чтобы создать новую дату, установив новое значение дня в году, мы можем использовать метод withDayOfYear() для установки нового дня для даты.
Добавьте следующий код после строки System.out.println(localDate);:
// set day-of-year as 30
localDate = localDate.withDayOfYear(30);
System.out.println("New date with day-of-year set as 30: ");
System.out.println(localDate);
// set day-of-year as 300
localDate = localDate.withDayOfYear(300);
System.out.println("New date with day-of-year set as 300: ");
System.out.println(localDate);
Используйте следующую команду для компиляции и запуска кода:
javac LocalDateWithDayOfYear.java && java LocalDateWithDayOfYear
На экране должно появиться вывод с новыми датами с новыми значениями дня в году:
Original date:
2002-01-10
New date with day-of-year set as 30:
2002-01-30
New date with day-of-year set as 300:
2002-10-27
Обработка недопустимой даты
Если полученная дата недопустима, будет выброшено исключение. Мы можем обработать исключение с использованием блока try-catch следующим образом:
try {
// set day-of-year as 366 (invalid for non-leap year)
localDate = localDate.withDayOfYear(366);
System.out.println(localDate);
} catch (Exception e) {
System.out.println("Invalid date: " + e.getMessage());
}
Используйте следующую команду для компиляции и запуска кода:
javac LocalDateWithDayOfYear.java && java LocalDateWithDayOfYear
На экране должно появиться сообщение об исключении по недопустимой дате:
Original date:
2002-01-10
New date with day-of-year set as 30:
2002-01-30
New date with day-of-year set as 300:
2002-10-27
Invalid date: Invalid date 'DayOfYear 366' as '2002' is not a leap year
Резюме
В этом практическом занятии мы узнали, как использовать метод withDayOfYear() класса LocalDate в Java для создания даты с новым значением дня в году. Мы также узнали, как обрабатывать исключение при установке нового значения дня в году, когда дата является недопустимой.



