Method for adding working days to a date


/ Published in: C#
Save to your folder(s)

A quick search on the internet reveals all kinds of ways you can calculate with business days. I think is the most simple and efficient. In this example add day of week and weeks separately. The loop is never iterated more then 4 times regardless of the number of days being added.


Copy this code and paste it in your HTML
  1. public DateTime AddWorkingDays(DateTime dtFrom, int nDays)
  2. {
  3. // determine if we are increasing or decreasing the days
  4. int nDirection = 1;
  5. if (nDays < 0)
  6. {
  7. nDirection = -1;
  8. }
  9.  
  10. // move ahead the day of week
  11. int nWeekday = nDays % 5;
  12. while(nWeekday != 0)
  13. {
  14. dtFrom = dtFrom.AddDays(nDirection);
  15.  
  16. if (dtFrom.DayOfWeek != DayOfWeek.Saturday
  17. && dtFrom.DayOfWeek != DayOfWeek.Sunday)
  18. {
  19. nWeekday -= nDirection;
  20. }
  21. }
  22.  
  23. // move ahead the number of weeks
  24. int nDayweek = (nDays / 5) * 7;
  25. dtFrom = dtFrom.AddDays(nDayweek);
  26.  
  27. return dtFrom;
  28. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.