第何週

月の週

[1] に分けて考えるとき、最初から順に第1週、第2週と数えていきます。

[2] 初について日曜日土曜日など様々な考え方があるため、 月の週の表す対象にもばらつきがあります。

[3] 更に週初月初は一般に異なるので、これをどう処理するかも問題となってきます。

[91] 前後のに含まれるはそのに含むとは言わないことが多いので、 その場合は7日未満となります。

[92] 前月の第5週が翌月の第1週になるなど、の最後と最初のが同じを指すことがよくあります。

[4] 普通、こうした違いが問題となる厳密な指定が必要な場面では使われないか、 明確な定義を与えて利用されることとなります。

週の数

[8] グレゴリオ暦は、4つか5つのを含むことになります。

[9] 閏年以外 (平年) の2月はちょうど28日なので、 初と初が重なる場合、ちょうど4となります。

[14] それ以外のは5または6となります。 第1週と最終週の一方または両方は7日に満たない (前後のにまたがる) こととなります。

計算

[13] ある md が属する n は、 次のようにして求めることができます。

  1. [15] wd を、 d曜日に設定します。 ここで、曜日とはの最初のなら 0、 最後のなら 6 となる整数とします。
  2. [16] n = 12 + d - wd7 を返します。

[17] なぜなら、

  1. [18] fwd を、m1 日の曜日に設定します。
  2. [19] すると m 月第1週には 1 日よりも前に fwd 個のが (m - 1 月に) 存在することとなります。
  3. [20]n には d よりも後に 7 - (wd + 1) = 6 - wd 個のが存在します。
  4. [21] m 月の第1週から第 n 週までに含まれるの合計数は、

    7 n = fwd + d + (6 - wd)

    と表せます。
  5. [22] ここで、 0fwd6 ですから、

    0 + d + (6 - wd) ≦ 7 n6 + d + (6 - wd)

    となります。
  6. [23]

    d - wd + 12 - 6 ≦ 7 nd - wd + 12

  7. [24]

    d - wd + 12 7 - 1 < d - wd + 12 7 - 67n d - wd + 12 7

  8. [25]

    n = d - wd + 127

[26] 逆に、 m 月の第 n wd 曜日 d は、 次のように求められます。

  1. [28] fwd を、m1 日の曜日に設定します。
  2. [27] d = - fwd + 7 n + wd - 6

[29] これは >>21移項したものです。

LDML における月の週

LDML/CLDR週

年の週と月の週

[31] 常識的な感覚によれば、最初の年の週の最初の月の週となり、 最後の年の週の最後の月の週となっていることが期待されます。

[32] LDML/CLDR週はそれを暗黙の前提としています。

関連

[5] 第何何曜日とは似て非なるものです。

メモ

[6] No.680 第何何曜日って?: こんぶブログ~気ままな雑記帳 (2018年1月25日 (木) ) http://kombu-blog.cocolog-nifty.com/zakki/2018/01/no680-3233.html

○週目という表記はその年の第何週目という意味でこれも国際規格(ISO8601)で定められているので、今月の第2週目などいう表現は本来間違っている。

... と主張する人もいますが、根拠が示されていません。この Webページとほとんど同じ (おそらくパクリ元の) Webページがあり、そこには

[7] 第何週第何曜日という数え方について () http://week2017.xyz/you/reference.html

国際的な日付に関する規格(ISO8601)においては「その年の第何週」という規格はあるものの「その月の第何週」という規格は存在しません。そのため、ここでも月の週については誤解を招くため「第何週」という表現はしていません。

... と書かれています。この元々の Webページは、定義がないので自身は採用しないと述べているだけで、 その正誤には言及していません。デマ記事の方はこれを曲解して「間違っている」などと断定したのでしょう。

[10] 指定した日付が、その月の第何週かを求める方法 -月曜から日曜の作業内- Visual Basic(VBA) | 教えて!goo () https://oshiete.goo.ne.jp/qa/393196.html

[11] JavaScript で週の計算 - Movable Type技術ブログ () http://www.mtcms.jp/movabletype-blog/tech/200903162111.html

[12] Perlでその日が月の第何週に存在しているかを計算する関数を書いてみました - 知らないことがあってもへっちゃらさ () http://blog.mukairiku.net/2010/09/perl%E3%81%A7%E3%81%9D%E3%81%AE%E6%97%A5%E3%81%8C%E6%9C%88%E3%81%AE%E7%AC%AC%E4%BD%95%E9%80%B1%E3%81%AB%E5%AD%98%E5%9C%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%E3%82%92%E8%A8%88%E7%AE%97%E3%81%99%E3%82%8B%E9%96%A2%E6%95%B0%E3%82%92%E6%9B%B8%E3%81%84%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F.html

[30] 公開メモ日記 - ある日付がその月の第何週目かを判定する方法 (2007-02-24 02:17:08 +09:00 版) http://knoa.jp/memo/?id=2007-02-23+12:25 ()