[squeak-dev] The Inbox: Chronology-Core-dtl.80.mcz

commits at source.squeak.org commits at source.squeak.org
Thu May 19 16:03:06 UTC 2022


A new version of Chronology-Core was added to project The Inbox:
http://source.squeak.org/inbox/Chronology-Core-dtl.80.mcz

==================== Summary ====================

Name: Chronology-Core-dtl.80
Author: dtl
Time: 19 May 2022, 12:03:05.720962 pm
UUID: 1b1b97c4-bc35-408d-b548-f0d0376a0808
Ancestors: Chronology-Core-dtl.79

Change DateAndTime>>offset: to be compliant with the ANSI draft spec. The offset: method should answer an instance equivalent to the receiver, where equivalent means having the same UTC time.

Let #offset: adopt the prior behavior of #utcOffset: and let #utcOffset: be a compatibility synonym for #offset:. Add #asLocalAt: to the squeak protocol and let it implement the prior behavior of #offset: Change existing code and tests to use #asLocalAt: but otherwise retain existing behavior.

Issue reported at https://github.com/squeak-smalltalk/squeak-object-memory/issues/23

=============== Diff against Chronology-Core-dtl.79 ===============

Item was added:
+ ----- Method: DateAndTime>>asLocalAt: (in category 'squeak protocol') -----
+ asLocalAt: anOffset
+ 	"Answer a DateAndTime for a different time zone offset that has the same
+ 	year, month, day, hour, minute, and second as this instance, and with
+ 	printString that matches except for time zone offset."
+ 
+ 	| newOffset newMicros |
+ 	newOffset := anOffset asDuration asSeconds.
+ 	newMicros := localOffsetSeconds - newOffset * 1000000 + utcMicroseconds.
+ 	^ self class utcMicroseconds: newMicros offset: newOffset
+ !

Item was changed:
  ----- Method: DateAndTime>>offset: (in category 'ansi protocol') -----
  offset: anOffset
+ 	"Answer a <DateAndTime> equivalent to the receiver but with its local time 
+ 	being offset from UTC by offset.
- 	"Answer a DateAndTime for a different time zone offset that has the same
- 	year, month, day, hour, minute, and second as this instance, and with
- 	printString that matches except for time zone offset."
  
+ 	See asLocalAt: for the earlier behavior of this method."
+ 
+ 	^ self class
+ 		utcMicroseconds: utcMicroseconds
+ 		offset: anOffset asDuration asSeconds!
- 	| newOffset newMicros |
- 	newOffset := anOffset asDuration asSeconds.
- 	newMicros := localOffsetSeconds - newOffset * 1000000 + utcMicroseconds.
- 	^ self class utcMicroseconds: newMicros offset: newOffset
- !

Item was changed:
  ----- Method: DateAndTime>>utcOffset: (in category 'squeak protocol') -----
  utcOffset: anOffset 
+ 	"Compatiblity. Answer a DateAndTime equivalent to the receiver but offset from UTC by anOffset."
+ 
+ 	^ self offset: anOffset!
- 	"Answer a DateAndTime equivalent to the receiver but offset from UTC by anOffset"
- 	^ self class
- 		utcMicroseconds: utcMicroseconds
- 		offset: anOffset asDuration asSeconds!

Item was changed:
  ----- Method: Timespan class>>current (in category 'squeak protocol') -----
  current
+ 	^ self starting: (DateAndTime now asLocalAt: self defaultOffset)!
- 	^ self starting: (DateAndTime now offset: self defaultOffset)!



More information about the Squeak-dev mailing list