import java.util.*;
import java.lang.*;
import java.io.*;
import java.time.*;
import java.time.temporal.TemporalAdjusters;

// The main method must be in a class named "Main".
class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2024, 6, 5);
        
        LocalDate[] week = getWeekStartAndEndDate(date);
        System.out.println("week start date (monday): " + week[0]);
        System.out.println("week end date (sunday): " + week[1]);

        LocalDate[] month = getMonthStartAndEndDate(date);
        System.out.println("month start date: " + month[0]);
        System.out.println("month end date: " + month[1]);
    }

    public static LocalDate[] getWeekStartAndEndDate(LocalDate date) {
        LocalDate start = date.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
        LocalDate end = date.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
        return new LocalDate[] {start, end};
    }

    public static LocalDate[] getMonthStartAndEndDate(LocalDate date) {
        LocalDate start = date.with(TemporalAdjusters.firstDayOfMonth());
        LocalDate end = date.with(TemporalAdjusters.lastDayOfMonth());
        return new LocalDate[] {start, end};
    }
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: