Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static DateTime AddBusinessDays(DateTime current, int days, bool adjustCurrentDateForWeekend = true)
- {
- if(adjustCurrentDateForWeekend)
- current = AdjustCurrentDateForWeekend(current, days);
- var sign = Math.Sign(days);
- var unsignedDays = Math.Abs(days);
- for (var i = 0; i < unsignedDays; i++)
- {
- do
- {
- current = current.AddDays(sign);
- } while (current.DayOfWeek == DayOfWeek.Saturday ||
- current.DayOfWeek == DayOfWeek.Sunday);
- }
- return current;
- }
- private static DateTime AdjustCurrentDateForWeekend(DateTime current, int days)
- {
- // Check if current date is weekend
- if (current.DayOfWeek == DayOfWeek.Saturday && days < 0)
- current = current.AddDays(-1);
- else if (current.DayOfWeek == DayOfWeek.Saturday && days > 0)
- current = current.AddDays(2); // TODO : Check
- if (current.DayOfWeek == DayOfWeek.Sunday && days < 0)
- current = current.AddDays(-2);
- else if (current.DayOfWeek == DayOfWeek.Sunday && days > 0)
- current = current.AddDays(1); // TODO Check
- return current;
- }
Add Comment
Please, Sign In to add comment