Chris M in particular,
On 03.07.2012, at 18:33, Bert Freudenberg wrote:
On 03.07.2012, at 18:16, glenpaling wrote:
It's just a bad reference to *self localOffset* rather than the specified offset in todayAtNanoSeconds:offset: (see below). Changing the reference to *aDuration* fixes the problem. Usually todayAtMilliseconds:offset: is used. todayAtNanoSeconds:offset is only used when a call to nowWithOffset: results in the same tick value as the previous call.
todayAtNanoSeconds: nanoSecondsSinceMidnight offset: aDuration
"This is usually only during system startup..." self waitForOffsets. ^ self basicNew setJdn: DaysSinceEpoch seconds: (nanoSecondsSinceMidnight // 1000000000) nano: (nanoSecondsSinceMidnight \\ 1000000000 ) offset: *self localOffset*
Great! Committed to trunk.
Shouldn't this be a private method?
This method relies on DaysSinceEpoch being set to the right day. That means it's only safe to use from #nowWithOffset: which precedes it with a call to #milliSecondsSinceMidnight which is the only method that adjusts DaysSinceEpoch.
Who is using the #todayAt... methods anyway? No other sender in the image.
How about inlining these into #nowWithOffset: and removing them altogether?
- Bert -