public void PlusYear_Simple()
        {
            LocalDateTime start = new LocalDateTime(2011, 6, 26, 12, 15, 8);
            LocalDateTime expected = new LocalDateTime(2016, 6, 26, 12, 15, 8);
            Assert.AreEqual(expected, start.PlusYears(5));

            expected = new LocalDateTime(2006, 6, 26, 12, 15, 8);
            Assert.AreEqual(expected, start.PlusYears(-5));
        }
        public void PlusYear_LeapToNonLeap()
        {
            LocalDateTime start = new LocalDateTime(2012, 2, 29, 12, 15, 8);
            LocalDateTime expected = new LocalDateTime(2013, 2, 28, 12, 15, 8);
            Assert.AreEqual(expected, start.PlusYears(1));

            expected = new LocalDateTime(2011, 2, 28, 12, 15, 8);
            Assert.AreEqual(expected, start.PlusYears(-1));
        }
        public void PlusYear_LeapToNonLeap()
        {
            LocalDateTime start    = new LocalDateTime(2012, 2, 29, 12, 15, 8);
            LocalDateTime expected = new LocalDateTime(2013, 2, 28, 12, 15, 8);

            Assert.AreEqual(expected, start.PlusYears(1));

            expected = new LocalDateTime(2011, 2, 28, 12, 15, 8);
            Assert.AreEqual(expected, start.PlusYears(-1));
        }
        public void PlusYear_Simple()
        {
            LocalDateTime start    = new LocalDateTime(2011, 6, 26, 12, 15, 8);
            LocalDateTime expected = new LocalDateTime(2016, 6, 26, 12, 15, 8);

            Assert.AreEqual(expected, start.PlusYears(5));

            expected = new LocalDateTime(2006, 6, 26, 12, 15, 8);
            Assert.AreEqual(expected, start.PlusYears(-5));
        }
예제 #5
0
        public static RaidTime Parse(string value)
        {
            foreach (string format in Formats)
            {
                var parse = LocalDateTimePattern.CreateWithInvariantCulture(format).Parse(value);

                if (!parse.Success)
                {
                    continue;
                }

                var localDt    = new LocalDateTime(DateTimeOffset.Now.Year, parse.Value.Month, parse.Value.Day, parse.Value.Hour, parse.Value.Minute);
                var nowLocalDt = new LocalDateTime(DateTimeOffset.Now.Year, DateTimeOffset.Now.Month, DateTimeOffset.Now.Day, DateTimeOffset.Now.Hour, DateTimeOffset.Now.Minute);

                if (localDt.CompareTo(nowLocalDt) <= 0)
                {
                    localDt = localDt.PlusYears(1);
                }

                int offset = -8;
                if (TimeZoneInfo.Local.IsDaylightSavingTime(localDt.ToDateTimeUnspecified()))
                {
                    offset = -7;
                }

                var offsetDt = new OffsetDateTime(localDt, Offset.FromHours(offset));

                return(new RaidTime(offsetDt));
            }

            throw new FormatException("Couldn't parse value to any format");
        }
        public void PlusYear_LeapToLeap()
        {
            LocalDateTime start    = new LocalDateTime(2012, 2, 29, 12, 15, 8);
            LocalDateTime expected = new LocalDateTime(2016, 2, 29, 12, 15, 8);

            Assert.AreEqual(expected, start.PlusYears(4));
        }
        public void PlusYears_Simple()
        {
            var           calendar    = CalendarSystem.GetIslamicCalendar(IslamicLeapYearPattern.Base15, IslamicEpoch.Civil);
            LocalDateTime start       = new LocalDateTime(5, 8, 20, 2, 0, calendar);
            LocalDateTime expectedEnd = new LocalDateTime(10, 8, 20, 2, 0, calendar);

            Assert.AreEqual(expectedEnd, start.PlusYears(5));
        }
예제 #8
0
        public LocalDateTime?ComputeNextExecutionTime(LocalDateTime lastExecutionTime)
        {
            var currentYearExecutionTime = new LocalDateTime(lastExecutionTime.Year, this._monthOfYear, this._dayOfMonth, this._hourOfDay, this._minuteOfHour);

            if (lastExecutionTime < currentYearExecutionTime)
            {
                return(currentYearExecutionTime);
            }

            return(currentYearExecutionTime.PlusYears(1));
        }
        public void PlusYears_DoesNotTruncateFromOneLeapYearToAnother()
        {
            var calendar = CalendarSystem.GetIslamicCalendar(IslamicLeapYearPattern.Base15, IslamicEpoch.Civil);

            Assert.IsTrue(calendar.IsLeapYear(2));
            Assert.IsTrue(calendar.IsLeapYear(5));

            LocalDateTime start       = new LocalDateTime(2, 12, 30, 2, 0, calendar);
            LocalDateTime expectedEnd = new LocalDateTime(5, 12, 30, 2, 0, calendar);

            Assert.AreEqual(expectedEnd, start.PlusYears(3));
        }
        public void PlusYears_TruncatesAtLeapYear()
        {
            var calendar = CalendarSystem.GetIslamicCalendar(IslamicLeapYearPattern.Base15, IslamicEpoch.Civil);

            Assert.IsTrue(calendar.IsLeapYear(2));
            Assert.IsFalse(calendar.IsLeapYear(3));

            LocalDateTime start       = new LocalDateTime(2, 12, 30, 2, 0, calendar);
            LocalDateTime expectedEnd = new LocalDateTime(3, 12, 29, 2, 0, calendar);

            Assert.AreEqual(expectedEnd, start.PlusYears(1));
        }
 public void PlusYears_Simple()
 {
     var calendar = CalendarSystem.GetIslamicCalendar(IslamicLeapYearPattern.Base15, IslamicEpoch.Civil);
     LocalDateTime start = new LocalDateTime(5, 8, 20, 2, 0, calendar);
     LocalDateTime expectedEnd = new LocalDateTime(10, 8, 20, 2, 0, calendar);
     Assert.AreEqual(expectedEnd, start.PlusYears(5));
 }
예제 #12
0
 public LocalDateTime PlusYears() => Sample.PlusYears(3);
        public void PlusYears_DoesNotTruncateFromOneLeapYearToAnother()
        {
            var calendar = CalendarSystem.GetIslamicCalendar(IslamicLeapYearPattern.Base15, IslamicEpoch.Civil);
            Assert.IsTrue(calendar.IsLeapYear(2));
            Assert.IsTrue(calendar.IsLeapYear(5));

            LocalDateTime start = new LocalDateTime(2, 12, 30, 2, 0, calendar);
            LocalDateTime expectedEnd = new LocalDateTime(5, 12, 30, 2, 0, calendar);

            Assert.AreEqual(expectedEnd, start.PlusYears(3));
        }
예제 #14
0
 public IDateTime PlusYears(int years)
 {
     return(new DateTime(_localDateTime.PlusYears(years)));
 }
 public LocalDateTime PlusYears()
 {
     return(Sample.PlusYears(3));
 }
예제 #16
0
 public static LocalDateTime WithYear(this LocalDateTime instance, int year)
 {
     return(instance.PlusYears(year - instance.Year));
 }
 public void PlusYears()
 {
     Sample.PlusYears(3).Consume();
 }
 public void PlusYear_LeapToLeap()
 {
     LocalDateTime start = new LocalDateTime(2012, 2, 29, 12, 15, 8);
     LocalDateTime expected = new LocalDateTime(2016, 2, 29, 12, 15, 8);
     Assert.AreEqual(expected, start.PlusYears(4));
 }
        public void PlusYears_TruncatesAtLeapYear()
        {
            var calendar = CalendarSystem.GetIslamicCalendar(IslamicLeapYearPattern.Base15, IslamicEpoch.Civil);
            Assert.IsTrue(calendar.IsLeapYear(2));
            Assert.IsFalse(calendar.IsLeapYear(3));

            LocalDateTime start = new LocalDateTime(2, 12, 30, 2, 0, calendar);
            LocalDateTime expectedEnd = new LocalDateTime(3, 12, 29, 2, 0, calendar);

            Assert.AreEqual(expectedEnd, start.PlusYears(1));
        }
 /// <summary>
 /// Add years
 /// </summary>
 /// <param name="ld"></param>
 /// <param name="years"></param>
 /// <returns></returns>
 public static LocalDateTime AddYears(this LocalDateTime ld, int years) => ld.PlusYears(years);