tokuhirom@Inamode6:897 です。

Date にこんなメソッドがあったら良いかも、という話題で某
所でもりあがったので、要望を出させていただきます。取り込
んで頂けると幸いです。

Date#sunday? があると、今迄 date.wday == 0 と書くより可
読性があがるので、是非追加して頂きたいです。

(date << 1)  と書くと、ぱっと見た時に何をしているのかわ
かりませんので、next_month/last_month
というメソッドがあると嬉しいです。先月、来月を求めたいケ
ースというのは多いので、独立にメソッドがあっても良いと思
います。
# last_month は prev_month などでも良いかもしれません

Date.days_in_month(year, month) というメソッドがあると、
その月に金曜日が何回あるか数える時に便利です ;-)

URI() == URI.parse() なので Date() == Date.parse() だと
嬉しいと思います。日付に関する処理が
> Date.parse('2005-10-22')
と書くより
> Date('2005-10-22')
と書けた方が楽ですので。
# Kernel へのメソッドの追加となりますので、異論はあると
思いますが

下記が実装例です。

■■■ ここから
require 'date'

class Date
 # define method "sunday?" and, ...
 DAYNAMES.each_with_index {|day, idx|
  define_method("#{day.downcase}?") {|| wday == idx}
 }

 def next_month
  self >> 1
 end
 def last_month
  self << 1
 end

 def Date.last_day_of_month(year, month)
  Date.new(year, month+1, 1) - 1
 end
 def Date.days_in_month(year, month)
  (Date.new(year, month, 1) ..
Date.last_day_of_month(year, month))
 end
end

module Kernel
 def Date(date_str)
  Date.parse(date_str)
 end
 module_function :Date
end

if $0 == __FILE__
 # Today is friday?
 p Date.today.friday?

 # Days in 2005/8
 p Date.days_in_month(2005, 8).map {|d|
d.strftime('%Y-%m-%d') }

 # How many friday in 2005/9?
 p Date.days_in_month(2005, 9).find_all {|day|
  day.friday?
 }.length

 # Date() => Date.parse()
 p Date('2005-10-21').strftime('%Y/%m/%d')
 p Date('2005-10-21').friday?
end
■■■ ここまで

以上です。よろしくおねがいします。

--
Inamode6 http://inamode6.tokuhirom.dnsalias.org/


--------------------------------------
Know more about Breast Cancer
http://pr.mail.yahoo.co.jp/pinkribbon/