Guest User

Untitled

a guest
Oct 18th, 2017
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. public static DateTime AddBusinessDays(DateTime current, int days, bool adjustCurrentDateForWeekend = true)
  2. {
  3. if(adjustCurrentDateForWeekend)
  4. current = AdjustCurrentDateForWeekend(current, days);
  5.  
  6. var sign = Math.Sign(days);
  7. var unsignedDays = Math.Abs(days);
  8. for (var i = 0; i < unsignedDays; i++)
  9. {
  10. do
  11. {
  12. current = current.AddDays(sign);
  13. } while (current.DayOfWeek == DayOfWeek.Saturday ||
  14. current.DayOfWeek == DayOfWeek.Sunday);
  15. }
  16.  
  17. return current;
  18. }
  19.  
  20. private static DateTime AdjustCurrentDateForWeekend(DateTime current, int days)
  21. {
  22. // Check if current date is weekend
  23. if (current.DayOfWeek == DayOfWeek.Saturday && days < 0)
  24. current = current.AddDays(-1);
  25. else if (current.DayOfWeek == DayOfWeek.Saturday && days > 0)
  26. current = current.AddDays(2); // TODO : Check
  27.  
  28. if (current.DayOfWeek == DayOfWeek.Sunday && days < 0)
  29. current = current.AddDays(-2);
  30. else if (current.DayOfWeek == DayOfWeek.Sunday && days > 0)
  31. current = current.AddDays(1); // TODO Check
  32.  
  33. return current;
  34. }
Add Comment
Please, Sign In to add comment