소개
이 랩에서는 Java LocalDate 클래스의 withDayOfYear() 메서드를 사용하여 새로운 연중 날짜 값을 가진 날짜를 생성하는 방법을 배웁니다.
Java 파일 생성
~/project 디렉토리 아래에 LocalDateWithDayOfYear.java 파일을 생성하고 다음 코드를 입력합니다.
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
요약
이 랩에서는 Java LocalDate 클래스에서 withDayOfYear() 메서드를 사용하여 새로운 연중 날짜 값을 가진 날짜를 생성하는 방법을 배웠습니다. 또한 새로운 연중 날짜 값을 설정할 때 유효하지 않은 날짜 예외를 처리하는 방법도 배웠습니다.



