package org.ifsoft.rtp;
import org.ifsoft.*;
import java.util.Date;
public class NetworkTimeProtocol
{
private static Date _baseTime = new Date();
static
{
_baseTime = DateExtensions.createDate(1900, 1, 1, 0, 0, 0);
}
public static Long dateTimeToNTP(Date dateTime)
{
TimeSpan span = new TimeSpan(Long.valueOf(DateExtensions.getTicks(dateTime).longValue() - DateExtensions.getTicks(_baseTime).longValue()));
Long totalMilliseconds = new Long((new Double(span.getTotalMilliseconds().doubleValue())).longValue());
Long num2 = Long.valueOf(totalMilliseconds.longValue() / 1000L);
Long num3 = Long.valueOf(totalMilliseconds.longValue() % 1000L);
Long num4 = Long.valueOf((0x100000000L * num3.longValue()) / 1000L);
Byte integerBytesFromLongNetwork[] = BitAssistant.getIntegerBytesFromLongNetwork(num2);
Byte buffer2[] = BitAssistant.getIntegerBytesFromLongNetwork(num4);
Byte buffer3[] = {
integerBytesFromLongNetwork[0], integerBytesFromLongNetwork[1], integerBytesFromLongNetwork[2], integerBytesFromLongNetwork[3], buffer2[0], buffer2[1], buffer2[2], buffer2[3]
};
return BitAssistant.toLongNetwork(buffer3, Integer.valueOf(0));
}
public NetworkTimeProtocol()
{
}
public static Long getUtcNow()
{
return dateTimeToNTP(DateExtensions.getUtcNow());
}
public static Date nTPToDateTime(Long ntp)
{
Byte longBytesNetwork[] = BitAssistant.getLongBytesNetwork(ntp);
Long num = BitAssistant.toLongFromIntegerNetwork(longBytesNetwork, Integer.valueOf(0));
Long num3 = Long.valueOf((BitAssistant.toLongFromIntegerNetwork(longBytesNetwork, Integer.valueOf(4)).longValue() * 1000L) / 0x100000000L);
return DateExtensions.addMilliseconds(DateExtensions.addSeconds(_baseTime, new Double((new Long(num.longValue())).doubleValue())), new Double((new Long(num3.longValue())).doubleValue()));
}
}