GBWorkDay
Library to make calculation on work days.
Unlike others libraries like business_time
,
working_hours
, biz
it operates on whole days, not hours.
Installation
Add this line to your application's Gemfile:
gem 'gb_work_day'
And then execute:
$ bundle
Or install it yourself as:
$ gem install gb_work_day
Usage
Work week
Set default work week for current thread
beginning_of_week = 1 #Monday
work_days = 5 #work days are Monday-Friday
GBWorkDay::WorkWeek.current = GBWorkWeek.new(work_days, beginning_of_week)
or if you want to setup per instance
beginning_of_week = 1 #Monday
work_days = 5 #work days are Monday-Friday
week = GBWorkWeek.new(work_days, beginning_of_week)
my_date = Date.today.to_work_date(week)
or
beginning_of_week = 1 #Monday
work_days = 5 #work days are Monday-Friday
week = GBWorkWeek.new(work_days, beginning_of_week)
my_date = my_date
#some code here
my_date.week = week
Date and Time operation
Check if today is a work day
Date.today.work?
or
Time.now.work?
Check if today is holiday
Date.today.free?
or
Time.now.free?
Get next working day
Date.today.next_work_day
or
Time.now.next_work_day
You can also make more complicated calculations
delivery_date = Date.today + 10.work_days
or
amount_of_work = (start_date.to_work_date - end_date).work_days
Contributing
- Fork it ( https://github.com/GenieBelt/gb-works-day/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request