Exemple #1
0
        public static DateTime SubtractBusinessDays(DateTime baseDate, int businessDaysToSubtract)
        {
            ParameterValidator.AssertIsNotMinOrMaxDate("baseDate", baseDate);
            ParameterValidator.AssertIsPositiveValue("businessDaysToSubtract", businessDaysToSubtract);

            DateTime result         = baseDate;
            int      daysSubtracted = 0;

            while (daysSubtracted < businessDaysToSubtract)
            {
                if (result == DateTime.MinValue)
                {
                    string message = "Subtracting the specified number of days results in a value less than minimum allowable date value.";
                    throw new InvalidOperationException(message);
                }
                else
                {
                    result = result.AddDays(-1);

                    if (IsWorkingDay(result))
                    {
                        daysSubtracted++;
                    }
                }
            }

            return(result);
        }
Exemple #2
0
        public static DateTime AddBusinessDays(DateTime baseDate, int businessDaysToAdd)
        {
            ParameterValidator.AssertIsNotMinOrMaxDate("baseDate", baseDate);
            ParameterValidator.AssertIsPositiveValue("businessDaysToAdd", businessDaysToAdd);

            DateTime result    = baseDate;
            int      daysAdded = 0;

            while (daysAdded < businessDaysToAdd)
            {
                if (result == DateTime.MaxValue)
                {
                    string message = "Adding the specified number of days results in a value greater than the maximum allowable date value.";
                    throw new InvalidOperationException(message);
                }
                else
                {
                    result = result.AddDays(1);

                    if (IsWorkingDay(result))
                    {
                        daysAdded++;
                    }
                }
            }

            return(result);
        }