Skip to content

Commit

Permalink
[] (0) Define 'week' syntax. Details coming later.
Browse files Browse the repository at this point in the history
git-svn-id: http://svn.whatwg.org/webapps@2384 340c8d12-0b0e-0410-8428-c7bf67bfef74
  • Loading branch information
Hixie committed Oct 30, 2008
1 parent 8ec218b commit 8e5c255
Show file tree
Hide file tree
Showing 2 changed files with 141 additions and 11 deletions.
65 changes: 60 additions & 5 deletions index
Expand Up @@ -2748,7 +2748,7 @@
interpret the resulting sequence as a base-ten integer. Let that
number be the <var title="">month</var>.</li>

<li>If <var title="">month</var> is not a number in the range
<li><p>If <var title="">month</var> is not a number in the range
1&nbsp;&le;&nbsp;<var title="">month</var>&nbsp;&le;&nbsp;12, then
fail.</li>

Expand Down Expand Up @@ -2945,7 +2945,7 @@
(possibly with a fractional part). Let <var title="">second</var>
be that number instead of the string version.</li>

<li>If <var title="">second</var> is not a number in the range
<li><p>If <var title="">second</var> is not a number in the range
0&nbsp;&le;&nbsp;<var title="">second</var>&nbsp;&lt;&nbsp;60, then
fail.</li>

Expand Down Expand Up @@ -3196,13 +3196,68 @@

<!-- XXX ISO week information -->

<p class=XXX>... <dfn id=valid-week-string>valid week string</dfn></p>
<p class=XXX>The <dfn id=week-number>week number</dfn> of a day is ...</p>

<p class=XXX>... rules to <dfn id=parse-a-week-string>parse a week string</dfn></p>
<p class=XXX>The <dfn id=week-number-of-the-last-day>week number of the last day</dfn> of a year ...</p>

<p>A string is a <dfn id=valid-week-string>valid week string</dfn> representing a year
<var title="">year</var> and week <var title="">week</var> if it
consists of the following components in the given order:</p>

<ol><li>Four or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, representing <var title="">year</var></li>

<li>A U+002D HYPHEN-MINUS character (-)</li>

<li>A U+0057 LATIN CAPITAL LETTER W character</li>

<li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
representing the week <var title="">week</var>, in the range
1&nbsp;&le;&nbsp;<var title="">week</var>&nbsp;&le;&nbsp;<var title="">maxweek</var>, where <var title="">maxweek</var> is the
<a href=#week-number-of-the-last-day>week number of the last day</a> of year <var title="">year</var></li>

</ol><p>The rules to <dfn id=parse-a-week-string>parse a week string</dfn> are as follows. This
will either return a year and week, or nothing. If at any point the
algorithm says that it "fails", this means that it is aborted at
that point and returns nothing.</p>

<ol><li><p>Let <var title="">input</var> be the string being
parsed.</li>

<li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
string.</li>

<li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
sequence is not at least four characters long, then
fail. Otherwise, interpret the resulting sequence as a base-ten
integer. Let that number be the <var title="">year</var>.</li>

<li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a U+002D HYPHEN-MINUS character,
then fail. Otherwise, move <var title="">position</var> forwards
one character.</li>

<li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a 0057 LATIN CAPITAL LETTER W
character, then fail. Otherwise, move <var title="">position</var>
forwards one character.</li>

<li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
sequence is not exactly two characters long, then fail. Otherwise,
interpret the resulting sequence as a base-ten integer. Let that
number be the <var title="">week</var>.</li>

<li><p>Let <var title="">maxweek</var> be the <a href=#week-number-of-the-last-day>week number of
the last day</a> of year <var title="">year</var>.</li>

<li><p>If <var title="">week</var> is not a number in the range
1&nbsp;&le;&nbsp;<var title="">week</var>&nbsp;&le;&nbsp;<var title="">maxweek</var>, then fail.</li>

<li><p>If <var title="">position</var> is <em>not</em> beyond the
end of <var title="">input</var>, then fail.</li>

<li><p>Return <var title="">year</var> and <var title="">week</var>.</li>

<h5 id=vaguer-moments-in-time><span class=secno>2.4.4.7 </span>Vaguer moments in time</h5>
</ol><h5 id=vaguer-moments-in-time><span class=secno>2.4.4.7 </span>Vaguer moments in time</h5>

<p>This section defines <dfn id=date-or-time-string title="date or time string">date or
time strings</dfn>. There are two kinds, <dfn id=date-or-time-string-in-content title="date or time
Expand Down
87 changes: 81 additions & 6 deletions source
Expand Up @@ -2036,9 +2036,9 @@
interpret the resulting sequence as a base-ten integer. Let that
number be the <var title="">month</var>.</p></li>

<li>If <var title="">month</var> is not a number in the range
<li><p>If <var title="">month</var> is not a number in the range
1&nbsp;&le;&nbsp;<var title="">month</var>&nbsp;&le;&nbsp;12, then
fail.</li>
fail.</p></li>

<li><p>Return <var title="">year</var> and <var
title="">month</var>.</p></li>
Expand Down Expand Up @@ -2301,9 +2301,9 @@
(possibly with a fractional part). Let <var title="">second</var>
be that number instead of the string version.</p></li>

<li>If <var title="">second</var> is not a number in the range
<li><p>If <var title="">second</var> is not a number in the range
0&nbsp;&le;&nbsp;<var title="">second</var>&nbsp;&lt;&nbsp;60, then
fail.</li>
fail.</p></li>

<li><p>Return <var title="">hour</var>, <var title="">minute</var>,
and <var title="">second</var>.</p></li>
Expand Down Expand Up @@ -2640,10 +2640,85 @@

<!-- XXX ISO week information -->

<p class="XXX">... <dfn>valid week string</dfn></p>
<p class="XXX">The <dfn>week number</dfn> of a day is ...</p>

<p class="XXX">The <dfn>week number of the last day</dfn> of a year ...</p>

<p>A string is a <dfn>valid week string</dfn> representing a year
<var title="">year</var> and week <var title="">week</var> if it
consists of the following components in the given order:</p>

<ol>

<li>Four or more <span
title="concept-datetime-digit">digits</span>, representing <var
title="">year</var></li>

<li>A U+002D HYPHEN-MINUS character (-)</li>

<li>A U+0057 LATIN CAPITAL LETTER W character</li>

<li>Two <span title="concept-datetime-digit">digits</span>,
representing the week <var title="">week</var>, in the range
1&nbsp;&le;&nbsp;<var title="">week</var>&nbsp;&le;&nbsp;<var
title="">maxweek</var>, where <var title="">maxweek</var> is the
<span>week number of the last day</span> of year <var
title="">year</var></li>

</ol>

<p class="XXX">... rules to <dfn>parse a week string</dfn></p>
<p>The rules to <dfn>parse a week string</dfn> are as follows. This
will either return a year and week, or nothing. If at any point the
algorithm says that it "fails", this means that it is aborted at
that point and returns nothing.</p>

<ol>

<li><p>Let <var title="">input</var> be the string being
parsed.</p></li>

<li><p>Let <var title="">position</var> be a pointer into <var
title="">input</var>, initially pointing at the start of the
string.</p></li>

<li><p><span>Collect a sequence of characters</span> in the range
U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
sequence is not at least four characters long, then
fail. Otherwise, interpret the resulting sequence as a base-ten
integer. Let that number be the <var title="">year</var>.</p></li>

<li><p>If <var title="">position</var> is beyond the end of <var
title="">input</var> or if the character at <var
title="">position</var> is not a U+002D HYPHEN-MINUS character,
then fail. Otherwise, move <var title="">position</var> forwards
one character.</p></li>

<li><p>If <var title="">position</var> is beyond the end of <var
title="">input</var> or if the character at <var
title="">position</var> is not a 0057 LATIN CAPITAL LETTER W
character, then fail. Otherwise, move <var title="">position</var>
forwards one character.</p></li>

<li><p><span>Collect a sequence of characters</span> in the range
U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
sequence is not exactly two characters long, then fail. Otherwise,
interpret the resulting sequence as a base-ten integer. Let that
number be the <var title="">week</var>.</p></li>

<li><p>Let <var title="">maxweek</var> be the <span>week number of
the last day</span> of year <var title="">year</var>.</p></li>

<li><p>If <var title="">week</var> is not a number in the range
1&nbsp;&le;&nbsp;<var title="">week</var>&nbsp;&le;&nbsp;<var
title="">maxweek</var>, then fail.</p></li>

<li><p>If <var title="">position</var> is <em>not</em> beyond the
end of <var title="">input</var>, then fail.</p></li>

<li><p>Return <var title="">year</var> and <var
title="">week</var>.</p></li>

</ol>


<h5>Vaguer moments in time</h5>
Expand Down

0 comments on commit 8e5c255

Please sign in to comment.