public static uint CalculateSeedGen3(DateTime time)
{
DateTime start;
if (time.Year <= 1999)
start = new DateTime(1900, 12, 31);
else if (time.Year == 2000)
start = new DateTime(1999, 12, 31);
//year 2001 or later
else
start = new DateTime(2000, 12, 31);
TimeSpan span = time - start;
var d = (uint)span.TotalDays;
var h = (uint)time.Hour;
var m = (uint)time.Minute;
uint v = 1440 * d + 960 * (h / 10) + 60 * (h % 10) + 16 * (m / 10) + m % 10;
var x = (uint)Math.Floor((double)v / 65536);
uint y = v % 65536;
return x ^ y;
}