import java.time.Duration;
import java.time.Instant;
import java.time.temporal.ChronoUnit;

public class OperasiInstant {
    public static void main(String[] args) {
        Instant mulai = Instant.parse("2026-01-15T01:00:00Z");

        // Penjumlahan dan pengurangan mengembalikan objek Instant yang baru.
        System.out.println("plusSeconds(90)  : " + mulai.plusSeconds(90));
        System.out.println("minusMillis(1500): " + mulai.minusMillis(1500));
        System.out.println("plus(2 jam)      : " + mulai.plus(Duration.ofHours(2)));

        // Buang komponen di bawah detik untuk perbandingan yang adil.
        Instant bertahap = Instant.ofEpochSecond(1768438800L, 750_000_000);
        System.out.println("sebelum truncate : " + bertahap);
        System.out.println("truncatedTo      : " + bertahap.truncatedTo(ChronoUnit.SECONDS));

        // Perbandingan titik waktu di garis waktu.
        Instant selesai = mulai.plus(Duration.ofMinutes(105));
        System.out.println("isBefore         : " + mulai.isBefore(selesai));
        System.out.println("isAfter(EPOCH)   : " + mulai.isAfter(Instant.EPOCH));
        System.out.println("Duration.between : " + Duration.between(mulai, selesai));
    }
}
