For an issue tracking system I need to calculate the response time for a request. The timer for response time should only be running during business hours. What algorithm/library should I use for this task? (Sure thing, I know about Joda-Time or ObjectLab Kit, but couldn't find anything helping with my task. Am I missing something?)
Example:
Business hours: 9am - 5pm (8 hours per day)
Maximum response time: 16 hours
The method may look something like:
DateTime calculateResponseTime(DateTime issueReportedAt)
I'll give some possible inputs and results as example:
Mon, 2011-09-19, 1:00pm -> Wed, 2011-09-21, 1:00pm
Mon, 2011-09-19, 6:05pm -> Thu, 2011-09-22, 9:00am
Fri, 2011-09-23, 2:00pm -> Tue, 2011-09-27, 2:00pm
解决方案
You may take a look on the jBPM business calendar.
Another library allows you configure bank holidays but it doesn't have a notion of business hours.