月日

月日

[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]

文脈

[32] データ型としての月日が使われることがある場所
[36] 日時表示に於いて同年であるなどの理由で年が省略されるものは示していません。

メモ