[ruby-list:49454] Re: [Q]時間の四則演算
From:
"Takashi SUGA" <suchowan@...>
Date:
2013-06-07 00:29:47 UTC
List:
ruby-list #49454
須賀です。 先日公開した when_exe ( http://rubygems.org/gems/when_exe )では、 最小構成の使い方として TM_Duration クラスのみを使うユースケースを 想定しました。 http://www2u.biglobe.ne.jp/~suchowan/u/wiki.cgi?Calendar%2FWhen%2FRuby%2F2%2EAPI%E3%81%AE%E4%BD%BF%E7%94%A8%E4%BE%8B%2F4%2E%E6%99% 82%E9%96%93%E9%96%93%E9%9A%94%2F%E6%9C%80%E5%B0%8F%E3%82%BB%E3%83%83%E3%83%88 when_exe 0.3.1 は全体としては重い実装ですが、 require 'when_exe/tmduration' するだけなら、これ以上ないコンパクトな実装になるように配慮しました。 -------- 須賀隆 Blog: http://suchowan.at.webry.info/ -----Original Message----- From: Masa [mailto:imagine@sakano.co.uk] Sent: Wednesday, November 21, 2012 8:14 PM To: ruby mailing list Subject: [ruby-list:49010] [Q]時間の四則演算 坂野 正明です。 時間の四則演算をしたいと考えています。 たとえば 3分20秒 - 20秒 => 3分 (=180秒) 2時間1分10秒 + 20秒 => 2時間1分30秒 10秒 * 6 => 60秒 (=1分0秒) 2分58秒 / 1分29秒 => 2 などのような。 端的には、 時間と時間の和および差 => 時間 時間とNumericの積 => 時間 時間と時間の商 => Numeric を計算したい次第です。 # 物理単位としての「時間」の演算と言ってもいいです。 単位は、現実問題として、××時間(hour)か、せいぜい日(day) まであれば手前としては実用的に十分です。実際、年(year)が 出てくると、どの定義を採用するか、という不確定性が出てきて 混乱を招きそうですし……。 そういうライブラリまたはクラスがきっとあるだろう、と思って 検索してみたのですが、適当なものが見つかりませんでした。 標準クラスの Timeは、差分としての時間ではなく、 暦という座標における時刻ですよね。 Timeクラスにおいて、差(-)のメソッドは定義されていますが (秒をNumericで返す)、和は定義されていないようですし、 まして積や商は定義されていません。Timeが時刻である以上、 仕様としてそうあるべきもの、と納得します。 アドバイスやコメント頂ければ幸いです。 坂野正明