private static long ToBinary(DateTime dt)
{
long temp = 0;
switch (dt.Kind)
{
case DateTimeKind.Local:
temp = temp | -9223372036854775808L; // 0x8000000000000000
temp = temp | dt.ToUniversalTime().Ticks;
break;
case DateTimeKind.Utc:
temp = temp | 0x4000000000000000L;
temp = temp | dt.Ticks;
break;
case DateTimeKind.Unspecified:
temp = dt.Ticks;
break;
}
return temp;
}