public virtual void encodeScaledDate(DateTime date)
{
if (date == null)
{
write(edsNull);
return;
}
TimeSpan span = (protocolVersion >= Protocol.PROTOCOL_VERSION10 ? date.ToUniversalTime() : date) - baseDate;
// always send seconds. ms in date is useless
long value = (long)span.TotalMilliseconds / 1000;
int count = byteCount(value);
write(edsScaledDateLen1 + count - 1);
write(SECONDS_SCALE);
for (int shift = (count - 1) * 8; shift >= 0; shift -= 8)
{
write((int)(value >> shift));
}
}