- XmlConvert.ToString to TimeSpan incorrectly returns T suffix even if Time was not...
authorSergey Bogdanov <sergey.bogdanov@gmail.com>
Wed, 8 Aug 2012 12:13:20 +0000 (15:13 +0300)
committerSergey Bogdanov <sergey.bogdanov@gmail.com>
Wed, 8 Aug 2012 12:13:20 +0000 (15:13 +0300)
mcs/class/System.XML/System.Xml/XmlConvert.cs
mcs/class/System.XML/Test/System.Xml/XmlConvertTests.cs

index ae31b62983cb6255af04a748bb4588d88a3b4947..98e60ba59f8d6949d2c4004d2ed7abf9a1b4d879 100644 (file)
@@ -568,7 +568,7 @@ namespace System.Xml {
                        if (value.Days > 0)
                                builder.Append (value.Days).Append ('D');
                        long ticks = value.Ticks % TimeSpan.TicksPerMillisecond;
-                       if (value.Days > 0 || value.Hours > 0 || value.Minutes > 0 || value.Seconds > 0 || value.Milliseconds > 0 || ticks > 0) {
+                       if (value.Hours > 0 || value.Minutes > 0 || value.Seconds > 0 || value.Milliseconds > 0 || ticks > 0) {
                                builder.Append('T');
                                if (value.Hours > 0)
                                        builder.Append (value.Hours).Append ('H');
index 32ca3c9e027e26d2b2cb057d1421296887656c4b..900043304d63b855a64708f6d7b5f9918c15f830 100644 (file)
@@ -366,6 +366,13 @@ namespace MonoTests.System.Xml
                        // Must not throw an exception...
                        Assert.IsNotNull ("-P10675199DT2H48M5.4775808S", XmlConvert.ToString (TimeSpan.MinValue));
                }
+               
+               [Test]
+        public void TimeSpanToStringShouldNotHaveTimeSuffixIfTimeIsZero()
+        {
+            string s = XmlConvert.ToString(new TimeSpan(345, 0, 0, 0));
+            Assert.AreEqual("P345D", s);
+        }
 
                [Test]
                public void FromTimeSpan ()