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; }