NuoDb.Data.Client.EncodedDataStream.encodeScaledTimestamp C# (CSharp) Method

encodeScaledTimestamp() public method

public encodeScaledTimestamp ( DateTime val ) : void
val DateTime
return void
        public virtual void encodeScaledTimestamp(DateTime val)
        {
            if (val == null)
            {
                write(edsNull);

                return;
            }

            TimeSpan delta = val.ToUniversalTime() - baseDate;
            long nanos = delta.Ticks * NANOSECONDS_PER_TICK;
            int scale = NANOSECONDS_SCALE;

            int count = byteCount(nanos);
            write(edsScaledTimestampLen1 + count - 1);
            write(scale);

            for (int shift = (count - 1) * 8; shift >= 0; shift -= 8)
            {
                write((int)(nanos >> shift));
            }
        }