動かざることバグの如し

殿、温めておいたバグがこちらでございます

RubyでDateTimeの差を秒単位で取得する

DateTimeはあくまで日ベースなので単純には秒の差が取得できない

方法1

(DateTime - DateTime)はRationalになるので、1日を秒に変換した、「24 * 60 * 60」をかけて秒に変換する

require "date"

date1 = Date.today
date2 = Date.today - 3
puts ((date1 - date2)* 60 * 60 * 24).to_i
=> 259200

方法2

先にTime型に変換してTime-Timeで秒を取得する

require "date"

date1 = Date.today
date2 = Date.today - 3
puts (date1.to_time - date2.to_time).to_i
=> 259200

どっちがいいんだろう