Пример #1
0
        public void Intersection()
        {
            DateInterval januaryToAugust = new DateInterval(
                new LocalDate(2017, 1, 1),
                new LocalDate(2017, 8, 31));

            DateInterval juneToNovember = new DateInterval(
                new LocalDate(2017, 6, 1),
                new LocalDate(2017, 11, 30));

            DateInterval juneToAugust = new DateInterval(
                new LocalDate(2017, 6, 1),
                new LocalDate(2017, 8, 31));

            var result = Snippet.For(januaryToAugust.Intersection(juneToNovember));

            Assert.AreEqual(juneToAugust, result);
        }
Пример #2
0
        public void Union()
        {
            DateInterval firstInterval = new DateInterval(
                new LocalDate(2014, 3, 7),
                new LocalDate(2014, 3, 20));

            DateInterval secondInterval = new DateInterval(
                new LocalDate(2014, 3, 15),
                new LocalDate(2014, 3, 23));

            DateInterval?overlappingInterval = Snippet.For(firstInterval.Union(secondInterval));

            Assert.AreEqual(
                new DateInterval(
                    new LocalDate(2014, 3, 7),
                    new LocalDate(2014, 3, 23)),
                overlappingInterval);
        }
Пример #3
0
        public void IsDaylightSavingTime()
        {
            // Europe/Dublin transitions from UTC+1 to UTC+0 at 2am (local) on 2017-10-29
            // However, Euopre/Dublin is also odd in terms of having its standard time as *summer* time,
            // and its winter time as "daylight saving time". The saving offset in winter is -1 hour,
            // as opposed to the more common "+1 hour in summer".
            var          dt     = new LocalDateTime(2017, 10, 29, 1, 45, 0);
            DateTimeZone dublin = DateTimeZoneProviders.Tzdb["Europe/Dublin"];

            ZonedDateTime beforeTransition = new ZonedDateTime(dt, dublin, Offset.FromHours(1));

            Assert.AreEqual(false, Snippet.For(beforeTransition.IsDaylightSavingTime()));

            // Same local time, different offset - so a different instant, after the transition.
            ZonedDateTime afterTransition = new ZonedDateTime(dt, dublin, Offset.FromHours(0));

            Assert.AreEqual(true, Snippet.For(afterTransition.IsDaylightSavingTime()));
        }
Пример #4
0
        public void AddDuration()
        {
            // Europe/Dublin transitions from UTC+1 to UTC+0 at 2am (local) on 2017-10-29
            var          dt     = new LocalDateTime(2017, 10, 29, 1, 45, 0);
            DateTimeZone dublin = DateTimeZoneProviders.Tzdb["Europe/Dublin"];

            ZonedDateTime beforeTransition = new ZonedDateTime(dt, dublin, Offset.FromHours(1));

            var result = Snippet.For(ZonedDateTime.Add(beforeTransition, Duration.FromHours(1)));

            Assert.AreEqual(new LocalDate(2017, 10, 29), result.Date);
            // Adding an hour of elapsed time takes us across the DST transition, so we have
            // the same local time (shown on a clock) but a different offset.
            Assert.AreEqual(new ZonedDateTime(dt, dublin, Offset.FromHours(0)), result);

            // The + operator and Plus instance method are equivalent to the Add static method.
            var result2 = Snippet.For(beforeTransition + Duration.FromHours(1));
            var result3 = Snippet.For(beforeTransition.Plus(Duration.FromHours(1)));

            Assert.AreEqual(result, result2);
            Assert.AreEqual(result, result3);
        }
Пример #5
0
        public void ExplicitCalendar()
        {
            LocalDate date = Snippet.For(new LocalDate(2010, 6, 16, CalendarSystem.Iso));

            Assert.AreEqual(new LocalDate(2010, 6, 16), date);
        }
Пример #6
0
        public void Minus()
        {
            LocalDate date = Snippet.For(new LocalDate(2010, 6, 16).Minus(Period.FromDays(1)));

            Assert.AreEqual(new LocalDate(2010, 6, 15), date);
        }
Пример #7
0
        public void Subtract()
        {
            LocalDate date = Snippet.For(LocalDate.Subtract(new LocalDate(2010, 2, 28), Period.FromMonths(1)));

            Assert.AreEqual(new LocalDate(2010, 1, 28), date);
        }
Пример #8
0
        public void Plus()
        {
            LocalDate date = Snippet.For(new LocalDate(2010, 1, 30).Plus(Period.FromMonths(1)));

            Assert.AreEqual(new LocalDate(2010, 2, 28), date);
        }
Пример #9
0
        public void ToYearMonth()
        {
            YearMonth yearMonth = Snippet.For(new LocalDate(2010, 6, 16).ToYearMonth());

            Assert.AreEqual(new YearMonth(2010, 6), yearMonth);
        }
Пример #10
0
        public void FromYearMonthWeekAndDay()
        {
            LocalDate date = Snippet.For(LocalDate.FromYearMonthWeekAndDay(2010, 6, 3, IsoDayOfWeek.Wednesday));

            Assert.AreEqual(new LocalDate(2010, 6, 16), date);
        }
Пример #11
0
        public void BeforeCommonEra()
        {
            LocalDate date = Snippet.For(new LocalDate(Era.BeforeCommon, 2010, 6, 16));

            Assert.AreEqual(new LocalDate(Era.BeforeCommon, 2010, 6, 16), date);
        }
Пример #12
0
        public void TestToString()
        {
            LocalDateTime dt = new LocalDateTime(2010, 6, 16, 16, 20);

            Assert.AreEqual("2010-06-16T16:20:00", Snippet.For(dt.ToString("yyyy-MM-dd'T'HH:mm:ss", CultureInfo.InvariantCulture)));
        }
Пример #13
0
        public void ConstructionFromSeconds()
        {
            Offset offset = Snippet.For(Offset.FromSeconds(450));

            Assert.AreEqual(450, offset.Seconds);
        }
Пример #14
0
        public void ConstructionFromHoursAndMinutes()
        {
            Offset offset = Snippet.For(Offset.FromHoursAndMinutes(1, 1));

            Assert.AreEqual(3660, offset.Seconds);
        }
Пример #15
0
        public void Construction()
        {
            LocalTime time = Snippet.For(new LocalTime(16, 20, 0));

            Assert.AreEqual("16:20:00", time.ToString("HH:mm:ss", CultureInfo.InvariantCulture));
        }