Java LocalDate withDayOfMonth() Method

The withDayOfMonth() method in Java, part of the java.time.LocalDate class, is used to return a copy of the LocalDate instance with the day-of-month altered. This method is useful for creating a new date with a specific day of the month.

Table of Contents

  1. Introduction
  2. withDayOfMonth() Method Syntax
  3. Understanding withDayOfMonth()
  4. Examples
    • Basic Usage
    • Using withDayOfMonth() for Validations
  5. Real-World Use Case
  6. Conclusion

Introduction

The withDayOfMonth() method allows you to create a new LocalDate instance with the day-of-month altered. This is particularly useful when you need to adjust the day of the month while keeping the year and month unchanged.

withDayOfMonth() Method Syntax

The syntax for the withDayOfMonth() method is as follows:

public LocalDate withDayOfMonth(int dayOfMonth)

Parameters:

  • dayOfMonth: The day of the month to set in the resulting LocalDate.

Returns:

  • A LocalDate representing the specified day of the month.

Throws:

  • DateTimeException if the day-of-month value is invalid for the month or year.

Understanding withDayOfMonth()

The withDayOfMonth() method returns a new LocalDate instance with the day-of-month altered to the specified value, while the year and month remain the same.

Examples

Basic Usage

To demonstrate the basic usage of withDayOfMonth(), we will change the day of the month of a LocalDate instance.

Example

import java.time.LocalDate;

public class LocalDateWithDayOfMonthExample {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2024, 6, 27);
        LocalDate newDate = date.withDayOfMonth(15); // Change the day to the 15th

        System.out.println("Original Date: " + date);
        System.out.println("New Date: " + newDate);
    }
}

Output:

Original Date: 2024-06-27
New Date: 2024-06-15

Using withDayOfMonth() for Validations

This example shows how to use the withDayOfMonth() method to ensure that a date is set to the last day of the month.

Example

import java.time.LocalDate;

public class LastDayOfMonthExample {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2024, 6, 27);
        LocalDate lastDayOfMonth = date.withDayOfMonth(date.lengthOfMonth()); // Set to the last day of the month

        System.out.println("Original Date: " + date);
        System.out.println("Last Day of Month: " + lastDayOfMonth);
    }
}

Output:

Original Date: 2024-06-27
Last Day of Month: 2024-06-30

Real-World Use Case

Adjusting Due Dates

In real-world applications, the withDayOfMonth() method can be used to adjust due dates to specific days of the month, such as setting all due dates to the 1st or the last day of the month.

Example

import java.time.LocalDate;

public class AdjustDueDateExample {
    public static void main(String[] args) {
        LocalDate currentDate = LocalDate.now();
        LocalDate adjustedDueDate = currentDate.withDayOfMonth(1); // Set the due date to the 1st of the month

        System.out.println("Current Date: " + currentDate);
        System.out.println("Adjusted Due Date: " + adjustedDueDate);
    }
}

Output:

Current Date: 2024-07-06
Adjusted Due Date: 2024-07-01

Conclusion

The LocalDate.withDayOfMonth() method is used to create a new LocalDate instance with a specific day of the month. This method is particularly useful for adjusting the day of the month while keeping the year and month unchanged. By understanding and using this method, you can effectively manage and manipulate date-based data in your Java applications.

Comments