public void NegativeSingleShift() { WorkingWeek.Week week = new WorkingWeek.Week(); week.AddShift(DayOfWeek.Monday, 9, 30, 0, 0, TimeSpan.FromHours(3)); week.AddShift(DayOfWeek.Monday, 13, 30, 0, 0, TimeSpan.FromHours(4)); week.AddShift(DayOfWeek.Tuesday, 9, 30, 0, 0, TimeSpan.FromHours(3)); week.AddShift(DayOfWeek.Wednesday, 9, 30, 0, 0, TimeSpan.FromHours(3)); Assert.AreEqual(new DateTime(2010, 7, 5, 9, 30, 0), week.DateAdd(new DateTime(2010, 7, 5, 12, 30, 0), TimeSpan.FromHours(-3))); }
public void PositiveShortStartEndShift() { WorkingWeek.Week week = new WorkingWeek.Week(); week.AddShift(DayOfWeek.Monday, 9, 30, 0, 0, TimeSpan.FromHours(3)); week.AddShift(DayOfWeek.Monday, 13, 30, 0, 0, TimeSpan.FromHours(4)); week.AddShift(DayOfWeek.Tuesday, 9, 30, 0, 0, TimeSpan.FromHours(3)); week.AddShift(DayOfWeek.Wednesday, 9, 30, 0, 0, TimeSpan.FromHours(3)); Assert.AreEqual(new DateTime(2010, 7, 5, 17, 0, 0), week.DateAdd(new DateTime(2010, 7, 5, 10, 30, 0), new TimeSpan(5, 30, 0))); }
public void TestDateDiff4() { WorkingWeek.Week week = new WorkingWeek.Week(); week.AddShift(DayOfWeek.Monday, 9, 30, 0, 0, TimeSpan.FromHours(3)); week.AddShift(DayOfWeek.Monday, 13, 30, 0, 0, TimeSpan.FromHours(4)); week.AddShift(DayOfWeek.Tuesday, 9, 30, 0, 0, TimeSpan.FromHours(3)); week.AddShift(DayOfWeek.Wednesday, 9, 30, 0, 0, TimeSpan.FromHours(3)); Assert.AreEqual(new TimeSpan(0, -12, -30, 0, 0), week.DateDiff(new DateTime(2010, 7, 9, 12, 30, 0), new DateTime(2010, 7, 5, 10, 0, 0))); }
public void Positive30Days() { WorkingWeek.Week week = new WorkingWeek.Week(); week.AddShift(DayOfWeek.Monday, 9, 30, 0, 0, TimeSpan.FromHours(3)); week.AddShift(DayOfWeek.Monday, 13, 30, 0, 0, TimeSpan.FromHours(3)); week.AddShift(DayOfWeek.Tuesday, 9, 30, 0, 0, TimeSpan.FromHours(3)); week.AddShift(DayOfWeek.Wednesday, 9, 30, 0, 0, TimeSpan.FromHours(3)); // Allocate 30 days to a working week of 12 hours. Will take 60 weeks, so compare with 60*7 Assert.AreEqual(new DateTime(2010, 7, 5, 9, 30, 0).AddDays(60 * 7), week.DateAdd(new DateTime(2010, 7, 5, 9, 30, 0), new TimeSpan(30, 0, 0, 0))); }
/// <summary> /// Gets the start date of the dependency, using the supplied working week /// definition to identify working vs. non-working times. /// </summary> /// <param name="week">The working week definition.</param> /// <returns>The start date of the dependency.</returns> public abstract DateTime StartDate(WorkingWeek.Week week);