月日文字列の構文解析

月日文字列の構文解析

[29] 月日は、です。

月日 (HTML)

[1] HTML における月日 (yearless date) は、グレゴリオ暦におけるを表すものです。 ただしは特定のには関連付けません。 >>2

仕様書

構文

[3] 妥当な月日 (valid yearless date) とは、 month day を表す次のような文字列です >>2

  1. [4] 省略可能な --
  2. [5] month を表す ASCII数字2桁
  3. [6] -
  4. [7] day を表す ASCII数字2桁

[8] ここで、 >>5 は1から12までののいずれか、 >>7 は1から任意の閏年>>5日の数までののいずれかでなければなりません >>2

  1. ?
    1. --
  2. 01 ... 12
  3. -
  4. 01 ... 31

構文解析

[9] 月日文字列の構文解析 (parse a yearless date string) 月部品の構文解析 (parse a yearless date component) は、 入力が >>3>>8 の制約を満たす文字列ならそのを返し、 そうでなければ失敗します >>2

閏年

[10] 月日は、に依存しない値です。2月として認められる範囲は、 >>8 の通り、29までとなっています。

暦法

[11] 月日は、グレゴリオ暦月日を表す >>2 と定義されています。 を含まないためグレゴリオ暦とだけ説明されているようですが、 文脈によっては先発グレゴリオ暦月日を表していると解釈されることもあるでしょう。

用法

[12] time 要素で用いられます。

月と日からの年の推定

[13] 時折、日付の表記にだけが使われ、が省略されることがあります。

[14] だけからを確定することは不可能です。 と基準となる日付基準日 (例えばその文書の出版日など) からを推定する方法は、色々考えられそうです。

[15] 例えば、

  1. [16] 日付1を、 (基準日 - 1, , ) の日付に設定します。
  2. [17] 日付2を、 (基準日, , ) の日付に設定します。
  3. [18] 日付3を、 (基準日 + 1, , ) の日付に設定します。
  4. [19] 距離1を、 | 日付1 - 基準日 | に設定します。
  5. [20] 距離2を、 | 日付2 - 基準日 | に設定します。
  6. [21] 距離3を、 | 日付3 - 基準日 | に設定します。
  7. [22] 最小を、距離1距離2距離3のうち最小のものに設定します。
  8. [23] 最小 = 距離2なら、
    1. [24] 日付2を返します。
  9. [25] それ以外で、最小 = 距離1なら、
    1. [26] 日付1を返します。
  10. [27] それ以外なら、
    1. [28] 日付3を返します。

の取扱に注意。

特別な月日

[30]