2006年4月 9日

[ruby-list:41990] Re: Timeクラスの継承について

From: Yuki SHIMAZU <y.shimazu@xxxxx>
Subject: [ruby-list:41987] Re: Timeクラスの継承について
Date: Sun, 9 Apr 2006 13:46:01 +0900

>  ・Timeオブジェクト
>  ・Date/DateTimeオブジェクト
> の使い分け、というのは、どのようにされているのでしょうか。

Timeが時刻の計算、Dateが日付の計算という感じです。
+1するのでもTimeは1秒、Dateは1日加算されます。

irbsh[09@xxxxx:04](main):056:0> [Time.now, Time.now+1]
[Sun Apr 09 15:05:28 JST 2006, Sun Apr 09 15:05:29 JST 2006]
irbsh[09@xxxxx:05](main):057:0> [Date.today.to_s, (Date.today+1).to_s]
["2006-04-09", "2006-04-10"]

> class Time
> attr_accessor :holiday
> end
>
> day = Time.mktime(2006, 1, 1)
> day.holiday = "New Year Holiday"
>
> p day
> p day.holiday

しかし、これでは「1秒後」の時刻の祝日がnilになってしまいます。
やはりDateクラスの方が適切だと思います。

class Date
HOLIDAYS = {
[1,1] => "New Year Holiday",
...
}

def holiday
# ...
end
end

という感じでHOLIDAYSから算出するようにすれば、来年の祝日なども表現でき
るでしょう。
--
rubikitch
http://www.rubyist.net/~rubikitch/

投稿者 xml-rpc : 2006年4月 9日 15:13
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/41840
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。