Example #1
0
        public void EveryMD()
        {
            var m = new DateTimeMatcher("****.08.14-**-00:00");

            Assert.IsTrue(m.Valid);
            var first = new DateTime(2018, 1, 1, 0, 0, 0);

            for (var i = 0; i < 366 * 10; i++)
            {
                var dt = first.AddDays(i);
                if (dt.Month == 8 && dt.Day == 14)
                {
                    Assert.IsTrue(m.IsMatch(dt));
                    Assert.IsFalse(m.IsMatch(dt.AddSeconds(30)));
                    Assert.IsFalse(m.IsMatch(dt.AddSeconds(630)));
                }
                else
                {
                    // other
                    Assert.IsFalse(m.IsMatch(dt));
                }
            }
        }
Example #2
0
        public void EveryLast()
        {
            var m = new DateTimeMatcher("****.**.LL-**-00:00");

            Assert.IsTrue(m.Valid);
            var first = new DateTime(2018, 1, 1, 0, 0, 0);

            for (var i = 0; i < 380; i++)
            {
                var dt = first.AddDays(i);
                if (dt.IsLastDayInMonth())
                {
                    Assert.IsTrue(m.IsMatch(dt));
                    Assert.IsFalse(m.IsMatch(dt.AddSeconds(30)));
                    Assert.IsFalse(m.IsMatch(dt.AddSeconds(630)));
                }
                else
                {
                    // other
                    Assert.IsFalse(m.IsMatch(dt));
                }
            }
        }
Example #3
0
        public void Tuesday()
        {
            var m = new DateTimeMatcher("****.**.**-*2-21:05");

            Assert.IsTrue(m.Valid);
            var tue = new DateTime(2018, 8, 14, 21, 5, 0);

            for (var i = 0; i < 200; i++)
            {
                if (i % 7 == 0)
                {
                    // tuesday
                    Assert.IsTrue(m.IsMatch(tue.AddDays(i)));
                    Assert.IsFalse(m.IsMatch(tue.AddDays(i).AddSeconds(30)));
                    Assert.IsFalse(m.IsMatch(tue.AddDays(i).AddSeconds(630)));
                }
                else
                {
                    // other
                    Assert.IsFalse(m.IsMatch(tue.AddDays(i)));
                }
            }
        }
Example #4
0
        public void EveryLastThursday()
        {
            var m = new DateTimeMatcher("****.**.**-L4-00:00");

            Assert.IsTrue(m.Valid);
            var first = new DateTime(2018, 1, 1, 0, 0, 0);

            for (var i = 0; i < 366 * 10; i++)
            {
                var dt             = first.AddDays(i);
                var isLastThursday = dt.DayOfWeek == DayOfWeek.Thursday && dt.AddDays(7).Month != dt.Month;
                if (isLastThursday)
                {
                    Assert.IsTrue(m.IsMatch(dt));
                    Assert.IsFalse(m.IsMatch(dt.AddSeconds(30)));
                    Assert.IsFalse(m.IsMatch(dt.AddSeconds(630)));
                }
                else
                {
                    // other
                    Assert.IsFalse(m.IsMatch(dt));
                }
            }
        }
Example #5
0
        public void ThirdThursday()
        {
            var m = new DateTimeMatcher("****.**.**-34-21:05");

            Assert.IsTrue(m.Valid);
            var first = new DateTime(2018, 1, 1, 21, 5, 0);

            for (var i = 0; i < 380; i++)
            {
                var dt = first.AddDays(i);
                var isThirdThursday = dt.DayOfWeek == DayOfWeek.Thursday && dt.GetNumberOfDayOfWeek() == 3;
                if (isThirdThursday)
                {
                    Assert.IsTrue(m.IsMatch(dt));
                    Assert.IsFalse(m.IsMatch(dt.AddSeconds(30)));
                    Assert.IsFalse(m.IsMatch(dt.AddSeconds(630)));
                }
                else
                {
                    // other
                    Assert.IsFalse(m.IsMatch(dt));
                }
            }
        }
Example #6
0
 private static void AssertMatcher(DateTimeMatcher matcher, DateTime dt, bool expect)
 {
     Assert.AreEqual(expect, matcher.IsMatch(dt), matcher.Pattern + " / " + dt.ToString());
 }