たけ(tk)です。

皆様どうもでした。

[ruby-list:35083] Re: ISO 8601 とTime#wday にて 
matz / ruby-lang.org (Yukihiro Matsumoto) さん 曰く:
》|Delphi の日付時刻ルーチンを Ruby にポートしようと思っているのですが、次|のような記述、「ISO 8601 では,月曜が週の最初の曜日とされています」、に|ぶち当たってしまいました。ISO 8601 と Time#wday とで仕様が異なるようです。|(先頭が0か1かは別として)。
》
》うーむ、旧約聖書の記述と異なっている。^^;;;

 旧約聖書準拠になったのでしょう。6日働いて7日目に休んだ。

》名前を参考にしたい?
》
》CamelCase(大文字小文字の混在)はRuby的ではないとおもうので、day_of_the_weekでいいんじゃないでしょうか。長すぎ?

 そうなるでしょうね。でも、ポートしたくなくなってしまった。日本のカレン
ダーの感覚からいえばday_of_the_weekという名前を実体とがあわない。

 「年の最初の週」の概念も日本のカレンダーとは異なる。

 ポートするかどうか自体を再考中。
 お騒がせしました。

--

 ISO 8601 規格(Date#cweek、Date#cwday)ではこんな風(↓)になる。

(1)ISO 8601 規格では,週の最初の曜日が月曜とされています。

(2)「年の最初の週」は「少なくとも 4 日以上ある最初の週として定義され
る」。つまり「年の最初の日が金曜,土曜,または日曜である場合,その年の最
初の 3 日,2 日,または 1 日に関しては,WeekOfTheYear は前年の最後の週を
返します」。「年の最後の日が月曜,火曜,または水曜である場合,その年の最
後の 1 日,2 日,または 3 日に関しては,WeekOfTheYear は 1(翌年の最初の
週)を返します」。

--
【ISO 8601 規格の「年の最初の週」】
N:\>ruby -rdate -e 'puts Date::new(2000,01,2).cweek'
52

N:\>ruby -rdate -e 'puts Date::new(2002,12,30).cweek'
1
--

Take_tk = KUMAGAI Hidetake
たけ(tk)=熊谷秀武