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

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

        System.out.println("plusDays(45)     : " + mulai.plusDays(45));
        System.out.println("plusWeeks(2)     : " + mulai.plusWeeks(2));
        System.out.println("plusMonths(2)    : " + mulai.plusMonths(2));
        System.out.println("plusYears(4)     : " + mulai.plusYears(4));
        System.out.println("minusDays(10)    : " + mulai.minusDays(10));
        System.out.println("plus ChronoUnit  : " + mulai.plus(10, ChronoUnit.DAYS));
        System.out.println("plus Period      : " + mulai.plus(Period.ofMonths(2)));

        // Penjumlahan bulan menyesuaikan panjang bulan tujuan.
        System.out.println("31 Mar minus 1 bln : " + LocalDate.of(2026, 3, 31).minusMonths(1));
        System.out.println("31 Jan plus 1 bln  : " + LocalDate.of(2026, 1, 31).plusMonths(1));

        // Tahun kabisat: 29 Feb 2024 maju 2 tahun jatuh ke 28 Feb.
        System.out.println("29 Feb 2024 + 2 thn: " + LocalDate.of(2024, 2, 29).plusYears(2));
    }
}
