0
Этот код не должен иметь, с моей точки зрения, различные результаты между третьим и вторым примерами.Большое расхождение в рубине Арифметика времени, используемая с активной поддержкой Расширения времени
0> Time.utc(1999, 12, 29) - Time.utc(1999, 12, 29)
=> 0.0
0> Time.utc(1999, 12, 29) + 1.month - Time.utc(1999, 12, 29)
=> 2678400.0
0> 1.month.to_i
=> 2592000
Как ни странно, когда я конвертирую все в Fixnum, он вернется к работе, как ожидалось.
0> Time.utc(1999, 12, 29).to_i + 1.month.to_i - Time.utc(1999, 12, 29).to_i
=> 2592000
Что происходит?
Я думаю, что получаю его, но не могу найти доказательство .. «+ 1.month» адаптируется к тому месяцу, к которому он присоединяется? и результат моих последних примеров работает так, как ожидалось (to_i), потому что в этом месяце нет контекста, поэтому он использует текущий месяц. –