I'm getting unexpected results, where the difference includes an unexpected 18 hrs is added
sd = Time.new(2009, 9)
=> 2009-09-01 00:00:00 -0700
ed = Time.new(2010,11)
=> 2010-11-01 00:00:00 -0700
Time.diff(sd,ed)
=> {:year=>1, :month=>2, :week=>0, :day=>0, :hour=>18, :minute=>0, :second=>0, :diff=>"1 year, 2 months and 18:00:00"}