Nextday
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.
Usage
Find the next working day
Date.today.next_working_day
DateTime.today.next_working_day
Time.now.next_working_day
Find the previous working day
Date.today.previous_working_day
DateTime.today.previous_working_day
Time.now.previous_working_day
Is the current day a working day?
Date.today.working_day?
DateTime.today.working_day?
Time.now.working_day?
When will an item be despatched?
Date.today.despatch_day
DateTime.today.despatch_day
Time.now.despatch_day
When will an item be delivered?
Date.today.delivery_day
DateTime.today.delivery_day
Time.now.delivery_day
Rack Application
To 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"
}
Rails
require 'nextday/json'
YourAmazing::Application.routes.draw do
mount Nextday::JSON.new, :at => "/nextday.json"
end
Configuration
To set the cut off time to a different value:
Nextday::Config.cut_off_time = "18:47"
Installation
To use with bundler add nextday to your gem file.
gem 'nextday'
