import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

public class ManipulasiLocalDate {
    public static void main(String[] args) {
        LocalDate mulai = LocalDate.of(2026, 1, 15);

        // Semua operasi mengembalikan objek baru; objek mulai tidak pernah berubah.
        LocalDate versiBaru = mulai.withYear(2030);
        LocalDate tambah45 = mulai.plusDays(45);
        LocalDate mundur2 = mulai.minusWeeks(2);

        System.out.println("mulai          : " + mulai);
        System.out.println("withYear(2030) : " + versiBaru);
        System.out.println("plusDays(45)   : " + tambah45);
        System.out.println("minusWeeks(2)  : " + mundur2);

        LocalDate tenggat = LocalDate.of(2026, 3, 20);
        System.out.println("until DAYS     : " + mulai.until(tenggat, ChronoUnit.DAYS));
        System.out.println("until MONTHS   : " + mulai.until(tenggat, ChronoUnit.MONTHS));

        System.out.println("isBefore(tenggat)  : " + mulai.isBefore(tenggat));
        System.out.println("isAfter(tenggat)   : " + mulai.isAfter(tenggat));
        System.out.println("isEqual(parse ulang): " + mulai.isEqual(LocalDate.parse("2026-01-15")));
    }
}
