Optimizing date calculations
I wrote a naive little algorithm to calculate the end date of a scheduled event. There are the following restraints: Total number of hours Number of hours per day Workdays per week Skip holidays So, the pseudo-code looks like this : While there are hours If it's a workday diminish the hour counter by the amount of hours per day Go to the next day This works, but it's slow. Let's do this moar better! New pseudo-code : Hours / Hours per day ===> Days Days / Workdays per week ===> Weeks (7 - workdays per week) * Weeks ===> More Days Add the number of days to the initial date to get the end date. Calculate the number of holidays in the range ===> Days While there are days If it's a workday diminish the day counter by one...