示例#1
0
        public void Unite()
        {
            var intervalA = new DateTimeInterval(new DateTime(2000, 12, 1, 5, 0, 0), new DateTime(2001, 1, 2, 12, 0, 0));
            var intervalB = new DateTimeInterval(new DateTime(2001, 1, 2, 12, 0, 0), new DateTime(2001, 2, 2, 12, 6, 0));
            var unitedInterval = intervalB.Unite(intervalA);
            Assert.AreEqual(unitedInterval, new DateTimeInterval(new DateTime(2000, 12, 1, 5, 0, 0), new DateTime(2001, 2, 2, 12, 6, 0)));

            intervalB = new DateTimeInterval(new DateTime(2001, 1, 2, 13, 0, 0), new DateTime(2001, 2, 2, 12, 6, 0));
            unitedInterval = intervalA.Unite(intervalB);
            Assert.AreEqual(unitedInterval, null);

            intervalB = new DateTimeInterval(new DateTime(2001, 1, 1, 0, 0, 0), new DateTime(2001, 2, 2, 12, 6, 0));
            unitedInterval = intervalA.Unite(intervalB);
            Assert.AreEqual(unitedInterval, new DateTimeInterval(new DateTime(2000, 12, 1, 5, 0, 0), new DateTime(2001, 2, 2, 12, 6, 0)));

            intervalB = new DateTimeInterval(intervalA.StartDate, intervalA.FinishDate);
            unitedInterval = intervalA.Unite(intervalB);
            Assert.AreEqual(unitedInterval, intervalA);

            intervalB = new DateTimeInterval(new DateTime(1900, 1, 1, 0, 0, 0), new DateTime(2010, 2, 2, 12, 6, 0));
            unitedInterval = intervalA.Unite(intervalB);
            Assert.AreEqual(unitedInterval, intervalB);

            var date = new DateTime(2000, 1, 1, 0, 0, 0);
            intervalA = intervalB = new DateTimeInterval(date, date);
            unitedInterval = intervalA.Unite(intervalB);
            Assert.AreEqual(unitedInterval, intervalA);
        }