Railsで時間を比較するのに少し問題があります。イベントがウィンドウ内にあるかどうかを確認したいのですが、ある場合は、イベントまたはウィンドウが最後に開始し、最初に終了するものを見つけます。私のコードは次のとおりです。
startingTime = 0
endingTime = 0
time = 0
eventTimeStart = Time.parse(event.start.to_s) #Need to convert DateTime to just Time
windowTimeStart = Time.parse(application.reportStart.to_s)
eventTimeEnd = Time.parse(event.end.to_s) #Need to convert DateTime to just Time
windowTimeEnd = Time.parse(application.reportEnd.to_s)
days = 0
if((windowTimeStart > eventTimeStart) || !(eventTimeStart < windowTimeEnd))
startingTime = windowTimeStart
if((eventTimeStart > windowTimeEnd))
days -= 1
end
else
startingTime = eventTimeStart
end
if((windowTimeEnd > eventTimeEnd) && (eventTimeEnd > windowTimeStart))
endingTime = eventTimeEnd
else
if((eventTimeEnd < windowTimeStart))
days -= 1
end
endingTime = windowTimeEnd
end
それぞれのケースを手書きしましたが、実行時に予想とは異なる動作をするようです。いつも窓際の時代に入っているようです。RailsはTimesに対して、私が考えているものとは異なるアプローチを使用していますか?この方法で時間を比較することもできますか?