}         // GetNextOffDate

        // ----------------------------------------------------------------------
        private static ScheduleWeek <TimeRange> GetScheduleWeek()
        {
            ScheduleWeek <TimeRange> week = new ScheduleWeek <TimeRange>();

            DateTime now = DateTime.Now;             // used as time container

            week[DayOfWeek.Monday].WorkingTimes.Add(new TimeRange(TimeTrim.Hour(now, 6, 30), TimeTrim.Hour(now, 8, 30)));
            week[DayOfWeek.Monday].WorkingTimes.Add(new TimeRange(TimeTrim.Hour(now, 15), TimeTrim.Hour(now, 22, 30)));

            week[DayOfWeek.Tuesday].WorkingTimes.Add(new TimeRange(TimeTrim.Hour(now, 6, 30), TimeTrim.Hour(now, 8, 30)));
            week[DayOfWeek.Monday].WorkingTimes.Add(new TimeRange(TimeTrim.Hour(now, 15), TimeTrim.Hour(now, 22, 30)));

            week[DayOfWeek.Wednesday].WorkingTimes.Add(new TimeRange(TimeTrim.Hour(now, 6, 30), TimeTrim.Hour(now, 8, 30)));
            week[DayOfWeek.Wednesday].WorkingTimes.Add(new TimeRange(TimeTrim.Hour(now, 12), TimeTrim.Hour(now, 22, 30)));

            week[DayOfWeek.Thursday].WorkingTimes.Add(new TimeRange(TimeTrim.Hour(now, 6, 30), TimeTrim.Hour(now, 8, 30)));
            week[DayOfWeek.Thursday].WorkingTimes.Add(new TimeRange(TimeTrim.Hour(now, 15), TimeTrim.Hour(now, 22, 30)));

            week[DayOfWeek.Friday].WorkingTimes.Add(new TimeRange(TimeTrim.Hour(now, 6, 30), TimeTrim.Hour(now, 8, 30)));
            week[DayOfWeek.Friday].WorkingTimes.Add(new TimeRange(TimeTrim.Hour(now, 15), TimeTrim.Hour(now, 22, 30)));

            week[DayOfWeek.Saturday].WorkingTimes.Add(new TimeRange(TimeTrim.Hour(now, 7), TimeTrim.Hour(now, 22, 30)));

            week[DayOfWeek.Sunday].WorkingTimes.Add(new TimeRange(TimeTrim.Hour(now, 7), TimeTrim.Hour(now, 22, 30)));

            return(week);
        }         // GetScheduleWeek
 // ----------------------------------------------------------------------
 public ScheduleCalculator(ScheduleWeek <T> week)
 {
     if (week == null)
     {
         throw new ArgumentNullException("week");
     }
     this.week = week;
 }         // ScheduleCalculator