// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.common.util;

import java.time.DateTimeException;
import java.time.temporal.TemporalField;
import java.time.temporal.ChronoField;
import java.time.temporal.TemporalUnit;
import java.time.temporal.Temporal;
import java.time.temporal.ChronoUnit;
import java.time.Duration;
import javax.annotation.Nonnull;
import java.time.Instant;

public class TimeUtil
{
    public static int compareDifference(@Nonnull final Instant from, @Nonnull final Instant to, @Nonnull final Duration duration) {
        if (from.equals(Instant.MIN) && !to.equals(Instant.MIN) && !duration.isZero()) {
            return 1;
        }
        try {
            final long diff = from.until(to, ChronoUnit.NANOS);
            return Long.compare(diff, duration.toNanos());
        }
        catch (final DateTimeException | ArithmeticException e) {
            long seconds = from.until(to, ChronoUnit.SECONDS);
            long nanos;
            try {
                nanos = to.getLong(ChronoField.NANO_OF_SECOND) - from.getLong(ChronoField.NANO_OF_SECOND);
                if (seconds > 0L && nanos < 0L) {
                    ++seconds;
                }
                else if (seconds < 0L && nanos > 0L) {
                    --seconds;
                }
            }
            catch (final DateTimeException e2) {
                nanos = 0L;
            }
            final long durSeconds = duration.getSeconds();
            final int durNanos = duration.getNano();
            int res = Long.compare(seconds, durSeconds);
            if (res == 0) {
                res = Integer.compare((int)nanos, durNanos);
            }
            return res;
        }
    }
}
