public void DateTimeUtils_AddWorkDays_AfterMonday_MustBeWednesday() { DateTime date = new DateTime(2011, 5, 16, 12, 56, 9); Assert.AreEqual(DayOfWeek.Monday, date.DayOfWeek); date = DateTimeUtils.AddWorkDays(date, 2, false, false, true, false, false, false, false); Assert.AreEqual(DayOfWeek.Wednesday, date.DayOfWeek); Assert.AreEqual(2011, date.Year); Assert.AreEqual(6, date.Month); Assert.AreEqual(1, date.Day); Assert.AreEqual(12, date.Hour); Assert.AreEqual(56, date.Minute); Assert.AreEqual(9, date.Second); }
public void DateTimeUtils_AddWorkDays_AfterThursday_In5DaysWeek_MustBeTuesday() { DateTime date = new DateTime(2011, 5, 19, 12, 56, 9); Assert.AreEqual(DayOfWeek.Thursday, date.DayOfWeek); date = DateTimeUtils.AddWorkDays(date, 3, true, true, true, true, true, false, false); Assert.AreEqual(DayOfWeek.Tuesday, date.DayOfWeek); Assert.AreEqual(2011, date.Year); Assert.AreEqual(5, date.Month); Assert.AreEqual(24, date.Day); Assert.AreEqual(12, date.Hour); Assert.AreEqual(56, date.Minute); Assert.AreEqual(9, date.Second); }
/// <summary> /// Добавить требуемое количество дней к дате (рабочих или календарных - зависит от этапа) /// </summary> /// <param name="startDate">Дата</param> /// <param name="daysCount">Количество дней</param> /// <returns></returns> public virtual DateTime AddDays(DateTime startDate, int daysCount) { if (InWorkDays) { var productionOrder = Batch.ProductionOrder; return(DateTimeUtils.AddWorkDays(startDate, daysCount, productionOrder.MondayIsWorkDay, productionOrder.TuesdayIsWorkDay, productionOrder.WednesdayIsWorkDay, productionOrder.ThursdayIsWorkDay, productionOrder.FridayIsWorkDay, productionOrder.SaturdayIsWorkDay, productionOrder.SundayIsWorkDay)); } else { return(startDate.AddDays(daysCount)); } }