From: "遊楽庵" Date: 2007-12-28T15:10:16+09:00 Subject: [ruby-dev:32856] Re: class TimeSpan 遊楽庵です。 私もTimeSpanオブジェクト自体、いいと思います。 ただ、例えば「1年後」とか「1週間後」とかをスカッと書きたいという欲求も あるのです。 今から1年後の日付を出すのに TimeSpan.new(:year => 1).since(Time.now) って、なんか「Javaみたいでヤダ」というわがままですね。 もっとも、TimeSpanクラスを前提にすれば それを返すようにNumeric#year_spanとか適当に作って 2.year_span.since(Time.now) とか書けるようにしちゃえばいいことです。 TimeSpan#to_hashを作って、ActiveSupportのTime#advanceに繋げるとかしたら シンタックスシュガーとして動作しますし、 使う側が趣味や状況に合わせて使い分けることもできそうです。 ActiveSupport前提で話をすると異論が多く出そうですが。 NARUSE, Yui さんは書きました: > 成瀬です。 > > Leonard Chin wrote: >> ActiveSupportで似ているような拡張がある。 >> Time#advanceです。 >> >>>> Time.now.advance(:days => 1) >> => Sat Dec 29 12:13:06 +0900 2007 >>>> Time.now.advance(:months => 1) >> => Mon Jan 28 12:13:12 +0900 2008 >>>> Time.now.advance(:hours => 1) >> => Fri Dec 28 13:13:16 +0900 2007 >> >> DateTimeもDateもOKです。 >> >>>> DateTime.now.advance(:hours => 1) >> => Fri, 28 Dec 2007 13:13:20 +0900 >>>> DateTime.now.advance(:days => 1) >> => Sat, 29 Dec 2007 12:13:27 +0900 >>>> Date.today.advance(:days => 1) >> => Sat, 29 Dec 2007 > > あー、これは知りませんでした。かなり近いと思います。 > あえて言うならば、+ でなく advance なことや、引数が期間オブジェクトでな > くただのハッシュなあたりでしょうか。 > > 期間オブジェクトってあまり使われないのかなぁ。わたしは数値で期間を取りま > わすのって不安なのですが。 > -------------------------------------- Easy + Joy + Powerful = Yahoo! Bookmarks x Toolbar http://pr.mail.yahoo.co.jp/toolbar/