Example #1
0
        /// <summary>
        /// Advances to week day.
        /// </summary>
        /// <param name="value">The value.</param>
        /// <param name="weekDay">The week day.</param>
        /// <returns></returns>
        public static DateTime AdvanceToWeekDay(this DateTime value, WeekDay weekDay)
        {
            if (!weekDay.HasValue())
            {
                throw new ArgumentException("The weekDay has to be set", "weekDay");
            }

            int target = (int)weekDay;
            int from   = (int)value.GetWeekDay();
            int offSet = target - from;

            // check if we have to jump the week
            if (offSet < 0)
            {
                offSet = offSet + 7;
            }
            var result = value.AddDays(offSet);

            return(result);
        }