今月の日曜日は何回? 3

おお。id:mimpoo さんが、VisualWorksSmalltalk で。じゃあ、Strongtalk で書いてみようかな…と心にもないことを。w

Month ってないんですね。 Squeak のはてっきり ANSI 由来だと思い込んでいました。


追記
とりあえず VisualWorks 版を、mimpoo さんとは別アプローチで。

| today month year daysInMonth lastDayOfMonth |

today := Date today.
month := today monthIndex.
year := today year.
daysInMonth := today daysInMonth.

lastDayOfMonth := Date newDay: daysInMonth monthNumber: month year: year.
(lastDayOfMonth previous: #Sunday) dayOfMonth // 7 + 1

追々記:
調べてみたら、Strongtalk では、デフォで日付の計算ができませんでした。orz (Date class >> #julian:、Date >> #julian が self unimplemented )