今月の日曜日は何回? 2

ざっと見たところ、cweek を使ったものがないようなので(日数を 7 で割るのと、さほどかわりありませんが…)。

require 'date'
t = Date.today; y = t.year; m = t.month
p (Date.new(y,m,-7).cweek-(Date.new(y,m)-7).cweek)%52

-7 を -1 にすれば月曜日、-2 にすれば火曜日…を数えます。


同様のことを SqueakSmalltalk でむりやり書くと(だいぶニュアンスが変わってしまいますが…)、

| month |
Week startDay: #Monday. 
month := Date today month.
(month end - 6 days) asWeek - (month previous end - 6 days) asWeek // 7 days

と、こんなかんじ。