示例#1
0
        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)));
        }
示例#2
0
        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)));
        }
示例#3
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)));
        }
示例#4
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)));
        }
示例#5
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);