以前
作った routine があまりにひどいので、
つっこみ
と
おことば
をもらいました
*1
:)
んで、いくつかいじってまた routine を組み直してみたり。
ぜんぜん date.rb なんてのをしらなかったですよ(;_;)
require 'date'
require 'parsedate'
def isrecent?(date)
target = ''
case date
when Time
target = Date.new(date.year, date.month, date.day)
when Date
target = date
when String
time = Time.local(*ParseDate::parsedate(date)[0,6])
target = Date.new(time.year, time.month, time.day)
else
raise ArgumentError.new(date.inspect)
end
target.between?(Date.today << 1, Date.today)
end
比較するときに Time で比較するか Date で比較するか悩んだのだけど、
とりあえず必要だったのは Date だったので、ここでは Date にして比較。
@
date.rb:
rd も付いてないので、判る部分だけ動かしてみる。
使いそうなのは today, +, -, <<, >>, between?, <, >, year, month, day あたり?
- Date::today で今日の日付の Date object を生成
- Date::new(year, month, day) で任意の日付の Date object を生成
- Date::+, Date::- で日の増減、Date::<<, Date::>> で月単位の増減が可能:)
- Date::between?, Date::<, Date::> あたりで日付の比較が可能
- year, month, day とかとかで日付の要素が取得できる:)
下手に自分で操作するよりはこいつを利用した方が楽そう。
Date::leap?
*2
があるところを見ると、ある程度は管理してくれてるみたいだし。
ただ、document がないのがちょっと(;_;)
判らない method がまだいくつかあるのが残念だなぁ。
*1: 反応遅すぎ(;_;) > おいら
*2: おそらく leap year: 閏年かどうかを調べるんだと思うがこれいかに。