Ejemplo n.º 1
0
        public void FloorDateTimeHardTest()
        {
            var sut = new DateTime(1966, 7, 14, 13, 46, 15, 316);
            {
                var flooredDateTime = DateTimeUtilities.FloorDateTime(sut, DateTimePart.Milliseconds, 250);
                var expected        = new DateTime(1966, 7, 14, 13, 46, 15, 250);
                Assert.AreEqual(expected, flooredDateTime);
            }

            {
                var flooredDateTime = DateTimeUtilities.FloorDateTime(sut, DateTimePart.Seconds, 5);
                var expected        = new DateTime(1966, 7, 14, 13, 46, 15);
                Assert.AreEqual(expected, flooredDateTime);
            }

            {
                var flooredDateTime = DateTimeUtilities.FloorDateTime(sut, DateTimePart.Minutes, 10);
                var expected        = new DateTime(1966, 7, 14, 13, 40, 0);
                Assert.AreEqual(expected, flooredDateTime);
            }

            {
                var flooredDateTime = DateTimeUtilities.FloorDateTime(sut, DateTimePart.Hours, 3);
                var expected        = new DateTime(1966, 7, 14, 12, 0, 0);
                Assert.AreEqual(expected, flooredDateTime);
            }

            {
                var flooredDateTime = DateTimeUtilities.FloorDateTime(sut, DateTimePart.Days, 7);
                var expected        = new DateTime(1966, 7, 8, 0, 0, 0);
                Assert.AreEqual(expected, flooredDateTime);
            }

            {
                var flooredDateTime = DateTimeUtilities.FloorDateTime(sut, DateTimePart.Months, 3);
                var expected        = new DateTime(1966, 7, 1, 0, 0, 0);
                Assert.AreEqual(expected, flooredDateTime);
            }

            {
                var flooredDateTime = DateTimeUtilities.FloorDateTime(sut, DateTimePart.Years, 10);
                var expected        = new DateTime(1960, 1, 1, 0, 0, 0);
                Assert.AreEqual(expected, flooredDateTime);
            }

            {
                try
                {
                    DateTimeUtilities.FloorDateTime(sut, DateTimePart.Weeks, 1);
                    Assert.Fail("An exception should have been thrown.");
                }
                catch (NotSupportedException)
                {
                }
                catch (Exception ex)
                {
                    Assert.Fail($"The {ex.GetType()} type of exception was not expected!");
                }
            }
        }
Ejemplo n.º 2
0
        public void FloorDateTimeNow()
        {
            var sut = DateTime.Now;
            {
                var flooredDateTime = DateTimeUtilities.FloorDateTime(sut, DateTimePart.Milliseconds, 250);
                var expected        = new DateTime(sut.Year, sut.Month, sut.Day, sut.Hour, sut.Minute, sut.Second, 250 * (sut.Millisecond / 250));
                Assert.AreEqual(expected, flooredDateTime);
            }

            {
                var flooredDateTime = DateTimeUtilities.FloorDateTime(sut, DateTimePart.Seconds, 5);
                var expected        = new DateTime(sut.Year, sut.Month, sut.Day, sut.Hour, sut.Minute, 5 * (sut.Second / 5));
                Assert.AreEqual(expected, flooredDateTime);
            }

            {
                var flooredDateTime = DateTimeUtilities.FloorDateTime(sut, DateTimePart.Minutes, 10);
                var expected        = new DateTime(sut.Year, sut.Month, sut.Day, sut.Hour, 10 * (sut.Minute / 10), 0);
                Assert.AreEqual(expected, flooredDateTime);
            }

            {
                var flooredDateTime = DateTimeUtilities.FloorDateTime(sut, DateTimePart.Hours, 3);
                var expected        = new DateTime(sut.Year, sut.Month, sut.Day, 3 * (sut.Hour / 3), 0, 0);
                Assert.AreEqual(expected, flooredDateTime);
            }

            {
                var flooredDateTime = DateTimeUtilities.FloorDateTime(sut, DateTimePart.Days, 7);
                var expected        = new DateTime(sut.Year, sut.Month, 1 + 7 * ((sut.Day - 1) / 7));
                Assert.AreEqual(expected, flooredDateTime);
            }

            {
                var flooredDateTime = DateTimeUtilities.FloorDateTime(sut, DateTimePart.Months, 3);
                var expected        = new DateTime(sut.Year, 1 + 3 * ((sut.Month - 1) / 3), 1);
                Assert.AreEqual(expected, flooredDateTime);
            }

            {
                var flooredDateTime = DateTimeUtilities.FloorDateTime(sut, DateTimePart.Years, 10);
                var expected        = new DateTime(10 * (sut.Year / 10), 1, 1);
                Assert.AreEqual(expected, flooredDateTime);
            }
        }