TL;DR:
HH:MM:SS.ms
とHH:MM:SS.ms
asの違いを取得する必要がありますHH:MM:SS:ms
必要なもの:
ここにトリッキーなものがあります。次のような 2 つのタイムスタンプの差を計算しようとしています。
In: 00:00:10.520
Out: 00:00:23.720
配信する必要があります:
Diff: 00:00:13.200
Time
時間を実際のオブジェクトに解析し、そこでの違いを使用すると思いました。これは前のケースでうまく機能し、 を返します00:0:13.200
。
機能しないもの:
usec
ただし、Ruby が代わりに を使用するため、これが正しく機能しない場合もありmsec
ます。
In: 00:2:22.760
Out: 00:2:31.520
Diff: 00:0:8.999760
明らかに、違いは であり00:00:8:760
、 ではないはず00:00:8.999760
です。私は本当にただtdiff.usec.to_s.gsub('999','')
……
これまでの私のコード:
これまでのコードは次のとおりです(これらは「0:00:10:520」などの入力文字列から解析されます)。
tin_first, tin_second = ins.split(".")
tin_hours, tin_minutes, tin_seconds = tin_first.split(":")
tin_usec = tin_second * 1000
tin = Time.gm(0, 1, 1, tin_hours, tin_minutes, tin_seconds, tin_usec)
同じことが起こりtout
ます。それで:
tdiff = Time.at(tout-tin)
出力には、次を使用します。
"00:#{tdiff.min}:#{tdiff.sec}.#{tdiff.usec}"
これを行うより速い方法はありますか?覚えておいてください、私は2つの時間の違いが欲しいだけです。私は何が欠けていますか?
現在、Ruby 1.9.3p6 を使用しています。