- From: <bugzilla@wiggum.w3.org>
- Date: Wed, 11 May 2005 19:15:12 +0000
- To: public-qt-comments@w3.org
- Cc:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=1211
------- Additional Comments From pcotton@microsoft.com 2005-05-11 19:15 -------
Since the URL given was member-only here is the details of the adopted
proposal:
===
So here are the changes
we need to make for the alternative proposal, which makes it represent the
start of the day when used as a time, but the end of the day when used in a
dateTime. This mainly consists of examples to alert people to the possible
surprises that this causes.
In the data model, add a note to 3.3.2 that the lexical representation
"24:00:00" maps to the value (0,0,0), while 1999-12-31T24:00:00 maps to the
value (2000, 1, 1, 0, 0, 0).
In F+O:
Section 5.2. Add two examples:
fn:dateTime(xs:date("1999-12-31"), xs:time("12:00:00")) =>
xs:dateTime("1999-12-31T12:00:00")
fn:dateTime(xs:date("1999-12-31"), xs:time("24:00:00")) =>
xs:dateTime("1999-12-31T00:00:00")
with perhaps a word of explanation.
Section 10.1: explain in the text or by examples that the lexical
representation "24:00:00" maps to the value (0,0,0), while
1999-12-31T24:00:00 maps to the value (2000, 1, 1, 0, 0, 0).
In 10.4, to the paragraph starting "The starting instant of an occurrence of
a date/time value is an xs:dateTime calculated by filling in the missing
components..." add: "If the xs:time value written as
24:00:00 is to be compared, filling in the missing components gives
1972-12-31T00:00:00, because 24:00:00 is treated as being simply an
alternative representation of 00:00:00 (the lexical value 24:00:00 is
converted to the components (0,0,0) before the missing components are filled
in). This has the consequence that when ordering xs:time values, 24:00:00 is
considered to be earlier than 23:59:59. However, when ordering xs:dateTime
values, a time of 24:00:00 is considered equivalent to 00:00:00 on the
following day."
Section 10.4.7.1: add the examples
op:dateTime-equal(xs:dateTime("1999-12-31T24:00:00"),
xs:dateTime("2000-01-01T00:00:00")) returns true
op:dateTime-equal(xs:dateTime("2005-04-04T24:00:00"),
xs:dateTime("2005-04-04T00:00:00")) returns false
Section 10.4.13: add the example
op:time-equal(xs:time("24:00:00+01:00"), xs:time("00:00:00+01:00")) returns
true
Section 10.4.14: add the example
op:time-less-than(xs:time("23:59:59"), xs:time("24:00:00")) return false
Section 10.5.7: add the example
fn:year-from-dateTime(xs:dateTime("1999-12-31T24:00:00")) returns 2000
Section 10.5.10: add the example
fn:hours-from-dateTime(xs:dateTime("1999-12-31T24:00:00")) returns 0
Section 10.5.18: add the example
fn:hours-from-time(xs:time("24:00:00")) returns 0
Section 10.8.3: add the example
op:subtract-times(xs:time("24:00:00"), xs:time("23:59:59")) returns
xdt:dayTimeDuration("-PT23H59M59S"), with an explanation as with the other
examples.
Section 17.1.2, to the paragraph starting "If ST is xs:dateTime, xs:date or
xs:time, ..." add "Note that the hours component of the resulting string
will never be 24. Midnight is always represented as "00:00:00".
===
Received on Wednesday, 11 May 2005 19:15:15 UTC