bokmann / business_time

Support for doing time math in business hours and days
MIT License
1.27k stars 215 forks source link

handling negative business hours & days #119

Open paulcc opened 9 years ago

paulcc commented 9 years ago

At present, negative values are accepted but basically treated as zero. Compare:

irb> 1.hour.ago
 => Fri, 11 Sep 2015 11:41:00 BST +01:00

irb> (-10).days.since(1.hour.ago)
 => Tue, 01 Sep 2015 11:41:00 BST +01:00

irb> (-10).business_days.since(1.hour.ago)
 => Fri, 11 Sep 2015 11:41:00 BST +01:00

Maybe it's a bit daft to try to use negative business days or hours, but people like me will still try to do it! (Having negatives does simplify some interval-based calculations, and Rails does the sensible thing already.)

One option is to get (-x).business_FOO.since(y) to call x.business_FOO.before(y). Even throwing an exception would be better than silently doing nothing.

ps. still a very handy gem - thanks!

bokmann commented 8 years ago

Not a bad suggestion, but not one I have the time or inclination to research. I'll gladly accept a pull request with appropriate tests though.

xlts commented 7 years ago

@bokmann I created a pull request according to suggestions in the above post, see https://github.com/bokmann/business_time/pull/158