@scores_raw.each do |score_raw|
# below is code if time was being sent in milliseconds
hh = ((score_raw.score.to_i)/100)/3600
mm = (hh-hh.to_i)*60
ss = (mm-mm.to_i)*60
crumbs = [hh,mm,ss]
sum = crumbs.first.to_i*3600+crumbs[1].to_i*60+crumbs.last.to_i
@scores << {:secs => sum, :hms => hh.round.to_s+":"+mm.round.to_s+":"+ss.round.to_s}
@scores_hash << {:secs => sum, :hms => hh.round.to_s+":"+mm.round.to_s+":"+ss.round.to_s}
# milliseconds case end
end
これは私の現在のコードですが、私はそれが嫌いです。見た目が乱雑です。それはすべてで偉大に見えるだけではありません。多分、ルビーの専門家が、連鎖によってこれを行う方法を教えて、誰かを減らして見栄えを良くする人がいるでしょうか?3行のコードの下でRubyで文字列形式のミリ秒をHH:MM:SS形式に変換するにはどうすればよいですか?
ありがとう、これはLOCの最短量です。 – qwexar
@qwexar 'at 'の問題は' 1970年代から数えてミリ秒を与える必要があります。 'Time.at(0)#=> Thu Jan 01 05:30:00 +0530 1970'。そして 'at '関数は' mili-seconds'に相当する 'HH:MM:SS'を与えません。それは 'Time.at(0)'との相対的な結果をハイブにします。 – codeit
@Tooroor Changaizそれは 'Time.at(0)'に相対的な時間を与えます。 – codeit