2010-01-15 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Fri, 15 Jan 2010 10:10:30 +0000 (10:10 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Fri, 15 Jan 2010 10:10:30 +0000 (10:10 -0000)
* DateTime.cs : In AddMilliseconds(), it seems fractional
  milliseconds are first rounded and then added.

* DateTimeTest.cs : added test for rounding milliseconds.

svn path=/trunk/mcs/; revision=149614

mcs/class/corlib/System/ChangeLog
mcs/class/corlib/System/DateTime.cs
mcs/class/corlib/Test/System/ChangeLog
mcs/class/corlib/Test/System/DateTimeTest.cs

index 2f05fcaa204bdc8cd1d1a2e98f6b1ae7c1d9061a..3af99cdb63b14e541d23ebd5328f54bcd908a93a 100644 (file)
@@ -1,3 +1,8 @@
+2010-01-15  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DateTime.cs : In AddMilliseconds(), it seems fractional
+         milliseconds are first rounded and then added.
+
 2010-01-15  Atsushi Enomoto  <atsushi@ximian.com>
 
        * DateTimeOffset.cs : preserve fractions (it is somehow dropped).
index 0a81391957cc0cc1bda97f4915f60fc7afdebb64..a33702baf48c4d38d82048002940290bf1ac8b37 100644 (file)
@@ -541,7 +541,7 @@ namespace System
                                        (value * TimeSpan.TicksPerMillisecond) < long.MinValue) {
                                throw new ArgumentOutOfRangeException();
                        }
-                       long msticks = (long) (value * TimeSpan.TicksPerMillisecond);
+                       long msticks = (long) Math.Round (value * TimeSpan.TicksPerMillisecond);
 
                        return AddTicks (msticks);
                }
index a1e1d199aa2d09300a2653aff0f03ded4d9b9288..84a95eff4de37fe01eb92761b0f75ad5602d063f 100644 (file)
@@ -1,3 +1,7 @@
+2010-01-15  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DateTimeTest.cs : added test for rounding milliseconds.
+
 2010-01-15  Atsushi Enomoto  <atsushi@ximian.com>
 
        * DateTimeOffsetTest.cs : add ParseExact() case that should preserve
index bbafafa0d5a582f21578e06d568df5ad23eca4d1..406c26abd63f673b92c42341383828dd364fd9e2 100644 (file)
@@ -806,6 +806,11 @@ namespace MonoTests.System
                        t1 = DateTime.ParseExact ("20050707132527Z",
                                "yyyyMMddHHmmss\\Z", CultureInfo.InvariantCulture);
                        Assert.AreEqual (632563395270000000, t1.Ticks, "#L2");
+
+                       // XAttributeTest.CastDateTimeOffsets():#6b
+                       t1 = DateTime.ParseExact ("2039-10-31T12:34:56.7552+00:00", "yyyy-MM-ddTHH:mm:ss.FFFFFFFzzz",
+                                                 CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
+                       Assert.AreEqual (643393064967552000, t1.Ticks, "#M");
                }
 
                [Test]