Finds the Next Working Day even if holidays are in the way.
Extends Date, Time and DateTime to allow you to find the next working day
Nextday only checks for English public holidays at the moment, I aim to extend it to support locales in the near future.
Date.today.next_working_day
DateTime.today.next_working_day
Time.now.next_working_dayDate.today.previous_working_day
DateTime.today.previous_working_day
Time.now.previous_working_dayDate.today.working_day?
DateTime.today.working_day?
Time.now.working_day?Date.today.despatch_day
DateTime.today.despatch_day
Time.now.despatch_dayDate.today.delivery_day
DateTime.today.delivery_day
Time.now.delivery_dayTo make caching easier you can mount the Nextday::JSON in your application so you can poll it every few minutes and have next to real time data.
It will return so:
{
"cut_off_time": "16:00",
"working_day": false,
"next_working_day": "2012-06-11",
"previous_working_day": "2012-06-08",
"despatch_day": "2012-06-11",
"delivery_day": "2012-06-12"
}require 'nextday/json'
YourAmazing::Application.routes.draw do
mount Nextday::JSON.new, :at => "/nextday.json"
endTo set the cut off time to a different value:
Nextday::Config.cut_off_time = "18:47"To use with bundler add nextday to your gem file.
gem 'nextday'