On 28 April 2013 08:41, stephane ducasse <stephane.duca...@free.fr> wrote:
> thanks a lot!
> Friday we have an official sprint so I'm sure that this issue will be
> addressed.
>
yes. and i hope i will put my changes into the soup as well.
(i did not published them, and some bits are unfinished).

> Stef
>
> See https://pharo.fogbugz.com/default.asp?10425# and corresponding SLICE in
> 3.0 inbox
> Note: I don't know what is the policy with the labels/states of these bug
> tracker, and it rather bothers me, but the SLICE is ready for tests/reviews.
>
>
> 2013/4/27 Nicolas Cellier <nicolas.cellier.aka.n...@gmail.com>
>>
>> There is more:
>>
>> 1) hasEqualTicks: use julianDayNumber instead of julianDayNumberUTC
>> 2) (Time dateAndTime now) interprets the (Time localSeconds) which are
>> from the wrong primitive (seconds ellapsed since squeak epoch translated to
>> local time) as seconds ellapsed since squeak Epoch (UTC time).
>>
>> We should really ban the old primitive 137 and only use the new one (240
>> which works with UTC microseconds).
>>
>> I think Camillo did a good job, but he stopped cleaning too soon.
>> Ah, young guys are so impatient to invent the future ;)
>>
>>
>> 2013/4/27 stephane ducasse <stephane.duca...@free.fr>
>>>
>>>
>>> On Apr 27, 2013, at 6:33 PM, Nicolas Cellier
>>> <nicolas.cellier.aka.n...@gmail.com> wrote:
>>>
>>> > Since DateAndTime comment is out of date (sic !) and current
>>> > implementation seems not free of bug, here is an effort to summarize and
>>> > understand the whole thing, let's call this a review.
>>>
>>> Thanks this is a great initiative!
>>>
>>>
>>> > Please tell me where my interpretations are wrong.
>>> >
>>> > 1) The DateAndTime is stored internally as
>>> > - a point in UTC time (julianDayNumber, seconds, nanos)
>>> > - an offset from UTC (a Duration) denoting the local time zone
>>> >
>>> > 2) The ticks method returns the UTC part {julianDayNumber. seconds.
>>> > nanos}
>>> >
>>> > 3) DateAndTime print themselves in local time using the offset
>>> >
>>> > 4) other methods (with some exceptions) return the local dateAndTime
>>> > parts (year month day hours minutes seconds)
>>> >
>>> > Exceptions are:
>>> > - secondsSinceMidnight (which should be renamed secondsSinceMidnightUTC
>>> > IMO, even if the method is classified private)
>>> > - julianDayNumberUTC as the name tells
>>> >
>>> > So far so good (but secondsSinceMidnight which is error prone)
>>> >
>>> > What I find strange:
>>> > - #hash uses the offset... Why ???
>>> >
>>> > d1 := DateAndTime now.
>>> > d2 := d1 offset: d1 offset + 1 hours.
>>> > {
>>> >     d1 = d2.
>>> >     d1 hash = d2 hash.
>>> > }
>>> > gives  #(true false), a clue?
>>> >
>>> > - #< compares julianDayNumber (the UTC inst. var.) with otherDate
>>> > julianDayNumber (with otherDate local offset) which seems wrong, it should
>>> > better use julianDayNumberUTC or (normalized) ticks.
>>> >
>>> > - #= could be simplified and accelerated if using #hasEqualTicks: (if
>>> > the ticks are correctly normalized though which would be the case since
>>> > #ticks:offset: does, unfortunately #setJdn:seconds:nanos:offset: does 
>>> > not).
>>> >
>>> > Some senders of #setJdn:seconds:nanos:offset: don't normalize the
>>> > day/seconds/nanos, though it should be their responsibility (DateAndTime
>>> > todayAtMilliSeconds: xxx) (DateAndTime todayAtNanoSeconds: xxx), not
>>> > counting year:month:day:hour:minute:second:nanoSecond:offset: which does 
>>> > not
>>> > either (many senders...).
>>> > Maybe we should better let the normalization responsibility to
>>> > #setJdn:seconds:nanos:offset:.
>>> >
>>> > It remain to analyze the conversion protocol (asYear etc...) which
>>> > seems to use the local time year, but I don't understand the whole 
>>> > Timespan
>>> > thing right now (why DateAndTime now asYear starts now, and not on january
>>> > 1st?).
>>> >
>>> > Nicolas
>>> >
>>> >
>>>
>>>
>>
>
>



-- 
Best regards,
Igor Stasenko.

Reply via email to