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

package com.nimbusds.jwt.util;

import java.util.Date;

public class DateUtils
{
    public static Date nowWithSecondsPrecision() {
        return fromSecondsSinceEpoch(toSecondsSinceEpoch(new Date()));
    }
    
    public static long toSecondsSinceEpoch(final Date date) {
        return date.getTime() / 1000L;
    }
    
    public static Date fromSecondsSinceEpoch(final long time) {
        return new Date(time * 1000L);
    }
    
    public static boolean isAfter(final Date date, final Date reference, final long maxClockSkewSeconds) {
        return new Date(date.getTime() + maxClockSkewSeconds * 1000L).after(reference);
    }
    
    public static boolean isBefore(final Date date, final Date reference, final long maxClockSkewSeconds) {
        return new Date(date.getTime() - maxClockSkewSeconds * 1000L).before(reference);
    }
    
    public static boolean isWithin(final Date date, final Date reference, final long maxClockSkewSeconds) {
        final long minTime = reference.getTime() - maxClockSkewSeconds * 1000L;
        final long maxTime = reference.getTime() + maxClockSkewSeconds * 1000L;
        return date.getTime() > minTime && date.getTime() < maxTime;
    }
    
    private DateUtils() {
    }
}
