public void GetFirstDate_DayOfWeek() { // April 2011 // M T W T F S S // 1 2 3 // 4 5 6 7 8 9 10 // 11 12 13 14 15 16 17 // 18 19 20 21 22 23 24 // 25 26 27 28 29 30 MonthlyRecurrency monthly = new MonthlyRecurrency(new DateTime(2011, 4, 01), new DateTime(2011, 11, 30), 1, DayOfWeek.Tuesday, DayIndex.Third); Assert.AreEqual(new DateTime(2011, 4, 19), monthly.GetFirstDate()); }
public void GetFirstDate_DayOfMonth_RollsIntoNextMonth() { MonthlyRecurrency monthly = new MonthlyRecurrency(new DateTime(2011, 2, 20), new DateTime(2011, 11, 30), 1, 14); Assert.AreEqual(new DateTime(2011, 3, 14), monthly.GetFirstDate()); // (2011, 2, 14) is before start date }
public void GetNextDate_DayOfWeek_Inexact() { MonthlyRecurrency monthly = new MonthlyRecurrency(new DateTime(2011, 4, 01), new DateTime(2011, 11, 30), 3, DayOfWeek.Monday, DayIndex.Third); Assert.AreEqual(new DateTime(2011, 4, 1), monthly.StartDate); Assert.AreEqual(new DateTime(2011, 4, 18), monthly.GetFirstDate()); Assert.AreEqual(new DateTime(2011, 4, 18), monthly.GetNextDate(new DateTime(2011, 1, 1))); Assert.AreEqual(new DateTime(2011, 4, 18), monthly.GetNextDate(new DateTime(2011, 4, 17))); Assert.AreEqual(new DateTime(2011, 7, 18), monthly.GetNextDate(new DateTime(2011, 4, 18))); Assert.AreEqual(new DateTime(2011, 7, 18), monthly.GetNextDate(new DateTime(2011, 4, 19))); Assert.AreEqual(new DateTime(2011, 7, 18), monthly.GetNextDate(new DateTime(2011, 5, 1))); Assert.AreEqual(new DateTime(2011, 7, 18), monthly.GetNextDate(new DateTime(2011, 6, 1))); Assert.AreEqual(new DateTime(2011, 7, 18), monthly.GetNextDate(new DateTime(2011, 7, 17))); }
public void GetFirstDate_DayOfMonth() { MonthlyRecurrency monthly = new MonthlyRecurrency(new DateTime(2011, 2, 01), new DateTime(2011, 11, 30), 1, 14); Assert.AreEqual(new DateTime(2011, 2, 14), monthly.GetFirstDate()); }
public void GetNextDate_DayOfMonth_Inexact() { MonthlyRecurrency monthly = new MonthlyRecurrency(new DateTime(2011, 1, 1), 4, 1, 15); Assert.AreEqual(new DateTime(2011, 1, 1), monthly.StartDate); Assert.AreEqual(new DateTime(2011, 1, 15), monthly.GetFirstDate()); Assert.AreEqual(new DateTime(2011, 1, 15), monthly.GetNextDate(new DateTime(2011, 1, 1))); Assert.AreEqual(new DateTime(2011, 1, 15), monthly.GetNextDate(new DateTime(2011, 1, 14))); Assert.AreEqual(new DateTime(2011, 2, 15), monthly.GetNextDate(new DateTime(2011, 1, 15))); Assert.AreEqual(new DateTime(2011, 2, 15), monthly.GetNextDate(new DateTime(2011, 1, 16))); Assert.AreEqual(new DateTime(2011, 2, 15), monthly.GetNextDate(new DateTime(2011, 2, 14))); Assert.AreEqual(new DateTime(2011, 3, 15), monthly.GetNextDate(new DateTime(2011, 2, 15))); Assert.AreEqual(new DateTime(2011, 3, 15), monthly.GetNextDate(new DateTime(2011, 2, 16))); Assert.AreEqual(new DateTime(2011, 3, 15), monthly.GetNextDate(new DateTime(2011, 3, 14))); Assert.AreEqual(new DateTime(2011, 4, 15), monthly.GetNextDate(new DateTime(2011, 3, 15))); Assert.AreEqual(new DateTime(2011, 4, 15), monthly.GetNextDate(new DateTime(2011, 3, 16))); Assert.AreEqual(new DateTime(2011, 4, 15), monthly.GetNextDate(new DateTime(2011, 4, 14))); Assert.IsNull(monthly.GetNextDate(new DateTime(2011, 4, 15))); }