Exemple #1
0
        private void WriteTimeSpan(object obj)
        {
            var t = (TimeSpan)obj;

            // 'Constant' format is guaranteed to be ASCII-clean.
            if (JsonOptions.TimeSpanFormat == "c")
            {
                writer.Write((byte)'"');
                if (t.Ticks < 0)
                {
                    writer.Write((byte)'-');
                    t = t.Duration();
                }
                var d = t.Days;
                if (d > 0)
                {
                    JsonIntWriter.WriteInt(writer, d);
                    writer.Write((byte)'.');
                }
                JsonIntWriter.WriteInt2Digits(writer, t.Hours);
                writer.Write((byte)':');
                JsonIntWriter.WriteInt2Digits(writer, t.Minutes);
                writer.Write((byte)':');
                JsonIntWriter.WriteInt2Digits(writer, t.Seconds);
                var f = (int)(t.Ticks % TimeSpan.TicksPerSecond);
                if (f > 0)
                {
                    writer.Write((byte)'.');
                    JsonIntWriter.WriteInt7Digits(writer, f);
                }
                writer.Write((byte)'"');
            }
            else
            {
                JsonStringWriter.WriteEscapedString(
                    writer, t.ToString(JsonOptions.TimeSpanFormat, CultureInfo.InvariantCulture));
            }
        }
Exemple #2
0
 private void WriteInt(object obj) => JsonIntWriter.WriteInt(writer, obj);