From: Paul Wright Date: 2006-11-07T21:37:25+09:00 Subject: Modifying Time with DPrecision to work with Runt Hi there, I'm currently trying out Runt for a project at work where we want to work out the number of 'business' hours that have occurred between two dates. Using Runt I've found this super easy to express the working hours but I've noticed there's a bit of a performance hit to using DateTime instead of Time. To start with I was using the following: working_hours_expr = DIWeek.new(Mon) & REDay.new(9,30,17,30)) | (REWeek.new(Tue, Fri) & REDay.new(9,00,17,30) working_hours_expr.include?( DateTime.parse(event.created_at.to_s) ) If I tried to pass event.created_at straight into include?() it would error with "undefined method `date_precision' for Tue Nov 07 11:12:34 GMT 2006:Time (NoMethodError)". I added the code below (which is pretty much identical to the DateTime modification included with Runt) and now it works (plus it's a lot faster), but I'm wondering if there's any unintended consequences I should be looking out for? If not, would it make sense to include this in the Runt gem? class Time include Runt::DPrecision attr_accessor :date_precision def date_precision return @date_precision unless @date_precision.nil? return Runt::DPrecision::DEFAULT end end (Also, if anyone knows of a better way to work out how many business hours have elapsed between two dates other than fast-forwarding through the start and finish times whilst counting time within the range I'm all ears.) Cheers Paul.