The atDay() method of YearMonth class in Java combines the current year-month with a day-of-month passed as parameter to it to create a LocalDate.
Syntax:
public LocalDate atDay(int dayOfMonth)
Parameter: This method accepts a single parameter dayOfMonth. It is the day-of-month to use. It can take values from 1 to 31.
Return Value: It returns a Local Date formed by the current year-month and a day of month passed as parameter to the function.
Exception: This method throws a DateTimeException, if the day of month passed in the parameter is not valid.
Below programs illustrate the atDay() method of YearMonth in Java:
Program 1:
Java
// Program to illustrate the atDay() method import java.util.*; import java.time.*; public class GfG { public static void main(String[] args) { // Creates a YearMonth object YearMonth thisYearMonth = YearMonth.of( 2017 , 8 ); // Creates a local date with this // YearMonth object and day passed to it LocalDate date = thisYearMonth.atDay( 31 ); System.out.println(date); } } |
2017-08-31
Program 2: To illustrate Exception. The below program throws an exception as September is of 30 days and not 31 days.
Java
// Program to illustrate the atDay() method import java.util.*; import java.time.*; public class GfG { public static void main(String[] args) { // Creates a YearMonth object YearMonth thisYearMonth = YearMonth.of( 2017 , 9 ); try { // Creates a local date with this // YearMonth object and day passed to it LocalDate date = thisYearMonth.atDay( 31 ); System.out.println(date); } catch (Exception e) { System.out.println(e); } } } |
java.time.DateTimeException: Invalid date 'SEPTEMBER 31'
Reference: https://docs.oracle.com/javase/8/docs/api/java/time/YearMonth.html#atDay-int-