order relation on dateTime

The ordering between two dateTimes P and Q is defined by the following 
algorithm: 
A.Normalize P and Q. That is, if there is a timezone present, but it is 
not Z, convert it to Z using the addition operation defined in Adding 
durations to dateTimes (§E)
Thus 2000-03-04T23:00:00+03:00 normalizes to 2000-03-04T20:00:00Z
B. If P and Q either both have a time zone or both do not have a time 
zone, compare P and Q field by field from the year field down to the 
second field, and return a result as soon as it can be determined. That 
is:
1.      For each i in {year, month, day, hour, minute, second} 
a.      If P[i] and Q[i] are both not specified, continue to the next i 
b.      If P[i] is not specified and Q[i] is, or vice versa, stop and 
return P <> Q 
c.      If P[i] < Q[i], stop and return P < Q 
d.      If P[i] > Q[i], stop and return P > Q
2.      Stop and return P = Q
C.Otherwise, if P contains a time zone and Q does not, compare as follows: 

1.      P < Q if P < (Q with time zone +14:00) 
2.      P > Q if P > (Q with time zone -14:00) 
3.      P <> Q otherwise, that is, if (Q with time zone +14:00) < P < (Q 
with time zone -14:00)
D. Otherwise, if P does not contain a time zone and Q does, compare as 
follows:
1.      P < Q if (P with time zone -14:00) < Q. 
2.      P > Q if (P with time zone +14:00) > Q. 
3.      P <> Q otherwise, that is, if (P with time zone +14:00) < Q < (P 
with time zone -14:00)


Problems:
1. Step A is not necessary. Time zones are already normalized when we 
convert lexical reps to values. (There is no timezone property in the 
value, only a boolean timezoned.)
2. How can the situation described in B.1.b ever happen?
3. C.3. Shouldn't it be  Q with +14 <= P <= Q with -14
4. Similarly in D.3, shouldn't it be  P with +14 <= Q <= P with -14

Thanks,
Sandy Gao
Software Developer, IBM Canada
(1-905) 413-3255
sandygao@ca.ibm.com

Received on Thursday, 5 May 2005 15:43:11 UTC