Comments (9)
OK, i dug through the code deeper and found the issue. My holidays seem to be storing in BusinessTime::Config.holidays as TimeWithZones on initialize instead of Dates. I am using the default initializer with the code:
BusinessTime::Config.load("#{Rails.root}/config/business_time.yml")
and business_time.yml file is shown in my first post.
When i update my /initializers/business_time.rb file to:
BusinessTime::Config.load("#{Rails.root}/config/business_time.yml")
BusinessTime::Config.holidays = BusinessTime::Config.holidays.map(&:to_date)
the holidays are stored as Dates and everything works as planned.
from business_time.
Anyone? Are holidays working for everyone else? I don't really see how I'm doing anything wrong with configuring the holidays for it to be an issue on my end, but if it is, i'd be glad to know what I'm doing wrong.
from business_time.
Adnan:
In Rails console, run the following, does it return false?
date = Date.parse(2013, 05, 27)
Time.workday?(date)
from business_time.
@marshallshen : This is the output from my rails console:
1.9.3p327 :003 > date = Date.parse('2013/05/27')
=> Mon, 27 May 2013
1.9.3p327 :004 > Time.workday?(date)
=> true
1.9.3p327 :005 > BusinessTime::Config.holidays
=> [Mon, 18 Feb 2013 00:00:00 PST -08:00, Mon, 27 May 2013 00:00:00 PDT -07:00, Thu, 04 Jul 2013 00:00:00 PDT -07:00, Mon, 02 Sep 2013 00:00:00 PDT -07:00, Thu, 28 Nov 2013 00:00:00 PST -08:00, Fri, 29 Nov 2013 00:00:00 PST -08:00, Wed, 25 Dec 2013 00:00:00 PST -08:00, Tue, 31 Dec 2013 00:00:00 PST -08:00, Wed, 01 Jan 2014 00:00:00 PST -08:00]
from business_time.
Ok, so i figured out what the issue is. business_time holidays seems to fail when the rails time zone is not set to UTC. I currently have this line in my application.rb:
config.time_zone = 'Pacific Time (US & Canada)'
When i comment this out, the holidays work. However, i need to keep that as my time zone.
This gem says that's its timezone agnostic so I'm going to assume this is a bug.
from business_time.
I agree, sounds like a bug. Can you write a test to expose it or better yet, include a fix in a pullup request?
from business_time.
@AdnanTheExcellent's solution solved the problem here.
I'm using a different default time_zone as well.
from business_time.
Ok, I'm prepping for a new release this weekend, and this is top of my list. We put a lot of work into dealing with timezones... It is said that every software engineer eventually learns to hate timezones, and this proves that point
from business_time.
Awesome. Glad this is going to get patched up in a more elegant solution than what i did.
from business_time.
Related Issues (20)
- business_time_until doesn't account for holidays when called on Time objects HOT 1
- initiate business_time instead of global definitions HOT 3
- Short days before holiday HOT 1
- Still finding problems next business day for mondays HOT 3
- factory time vs. office time HOT 2
- Business day calculation wrong for weekends HOT 1
- Request for API for 'next business Friday' etc
- Wrong Result or unexpected not-business day ? HOT 1
- Business day calculations off when starting with a non-workday HOT 1
- business_days.after weird behaviour when not in workday and out of business hours. HOT 2
- Support Ruby 3.0.0 HOT 2
- No CHANGELOG for newer versions HOT 1
- [Bug] business_days.after inconsistencies HOT 3
- during_business_hours? returning nil since 0.10.0 HOT 3
- [Bug] Concurrency issues HOT 6
- rubocop-users: Rubocop-rails autocorrection mistake
- Support Time gem version >= 0.2.0 HOT 1
- Consider dropping external deps: sorted_set and rbtree dependencies? HOT 4
- The method from_now of Class: BusinessTime::BusinessDays returns different results under the same context HOT 6
- Allow business hours that cross midnight HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from business_time.