From: Rick DeNatale Date: 2009-02-07T01:55:46+09:00 Subject: [ruby-core:21894] [Bug #1123] DateTime.<=> is broken Bug #1123: DateTime.<=> is broken http://redmine.ruby-lang.org/issues/show/1123 Author: Rick DeNatale Status: Open, Priority: Normal ruby -v: ruby 1.8.6 (2007-09-23 patchlevel 110) [i686-darwin8.11.1] Comparison of date time instances doesn't appear to work correctly. In the following code the two date times should be equal, but they are not. The two instance have different ajd values, but I can't determine why ~ >cat rubyscrapbook/date_time_bug.rb require 'date' dt1 = DateTime.parse("1997-12-24T09:00:00+00:00") dt2 = DateTime.parse("1997-12-24T00:00:00+00:00") puts "dt1 == dt2 => #{dt1 == dt2}" puts "dt1 <=> dt2 => #{dt1 <=> dt2}" puts "dt1 - dt2 => #{dt1 - dt2}" puts "dt1.sec_fraction #=> #{dt1.sec_fraction}" puts "dt2.sec_fraction #=> #{dt2.sec_fraction}" puts "dt1.ajd #=> #{dt1.ajd}" puts "dt2.ajd #=> #{dt2.ajd}" ~ >ruby rubyscrapbook/date_time_bug.rb dt1 == dt2 => false dt1 <=> dt2 => 1 dt1 - dt2 => 3/8 dt1.sec_fraction #=> 0 dt2.sec_fraction #=> 0 dt1.ajd #=> 19606455/8 dt2.ajd #=> 4901613/2 ---------------------------------------- http://redmine.ruby-lang.org