[Pkg] The Trunk: Chronology-Core-ul.23.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Jan 21 22:38:28 UTC 2019


Levente Uzonyi uploaded a new version of Chronology-Core to project The Trunk:
http://source.squeak.org/trunk/Chronology-Core-ul.23.mcz

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

Name: Chronology-Core-ul.23
Author: ul
Time: 21 January 2019, 11:37:59.846788 pm
UUID: 18de3a91-5246-44e9-94dc-190924f9b969
Ancestors: Chronology-Core-ul.21

- added an accessor to Time's ClockPolicy, so that tests can depend on its current value
- optimized various DateAndTime methods

=============== Diff against Chronology-Core-ul.21 ===============

Item was changed:
  ----- Method: DateAndTime>>asUTC (in category 'ansi protocol') -----
  asUTC
  
  	localOffsetSeconds = 0 ifTrue: [ ^self ].
+ 	^self copy makeUTC!
- 	^self copy
- 		utcMicroseconds: utcMicroseconds
- 		offset: 0
- !

Item was changed:
  ----- Method: DateAndTime>>asUnixTime (in category 'squeak protocol') -----
  asUnixTime
  	"answer number of seconds since unix epoch (midnight Jan 1, 1970, UTC)"
  
+ 	^utcMicroseconds // 1000000!
- 	^(self - self class unixEpoch) asSeconds!

Item was changed:
  ----- Method: DateAndTime>>dayMonthYearDo: (in category 'squeak protocol') -----
  dayMonthYearDo: aBlock
  	"Evaluation the block with three arguments: day month, year."
  
+ 	| l n i j dd |
- 	| l n i j dd mm yyyy |
  	l := self julianDayNumber + 68569.
  	n := 4 * l // 146097.
  	l := l - (146097 * n + 3 // 4).
+ 	i := l + 1 * 4000 // 1461001.
- 	i := 4000 * (l + 1) // 1461001.
  	l := l - (1461 * i // 4) + 31.
  	j := 80 * l // 2447.
  	dd := l - (2447 * j // 80).
  	l := j // 11.
- 	mm := j + 2 - (12 * l).
- 	yyyy := 100 * (n - 49) + i + l.
  
  	^ aBlock
  		value: dd
+ 		value: -12 * l + 2 + j "month"
+ 		value: n - 49 * 100 + i + l "year"!
- 		value: mm
- 		value: yyyy!

Item was changed:
  ----- Method: DateAndTime>>floor (in category 'squeak protocol') -----
  floor
  	"Answer a copy with magnitude rounded down to the nearest whole second"
  	^self class
+ 		utcMicroseconds: utcMicroseconds // 1000000 * 1000000
- 		utcMicroseconds: utcMicroseconds - (utcMicroseconds \\ 1000000)
  		offset: localOffsetSeconds!

Item was changed:
  ----- Method: DateAndTime>>getSeconds (in category 'accessing') -----
  getSeconds
+ 	
+ 	^utcMicroseconds // 1000000 + localOffsetSeconds \\ 86400!
- 
- 	| posixDays posixSeconds localSeconds |
- 	posixSeconds := utcMicroseconds // 1000000.
- 	localSeconds := posixSeconds + localOffsetSeconds.
- 	localSeconds < 0 ifTrue: [localSeconds := localSeconds \\ SecondsInDay]. "normalize"
- 	posixDays := localSeconds // SecondsInDay.
- 	^localSeconds - (posixDays * SecondsInDay).
- !

Item was changed:
  ----- Method: DateAndTime>>julianDayNumber (in category 'squeak protocol') -----
  julianDayNumber
  
+ 	^utcMicroseconds // 1000000 + localOffsetSeconds // 86400 + PosixEpochJulianDays!
- 	| posixDays posixSeconds localSeconds negativeDays |
- 	posixSeconds := utcMicroseconds // 1000000.
- 	localSeconds := posixSeconds + localOffsetSeconds.
- 	negativeDays := 0.
- 	localSeconds < 0 ifTrue: [ "normalize"
- 			negativeDays := localSeconds // SecondsInDay.
- 			localSeconds := negativeDays * SecondsInDay + localSeconds].
- 	posixDays := localSeconds // SecondsInDay.
- 	^posixDays + PosixEpochJulianDays - negativeDays.
- !

Item was changed:
  ----- Method: DateAndTime>>microsecondsFromDay:seconds:nanos:offset: (in category 'private') -----
  microsecondsFromDay: jdn seconds: s nanos: n offset: localOffsetSeconds
  
+ 	^jdn - PosixEpochJulianDays "days" * 86400
+ 		+ s - localOffsetSeconds "seconds" * 1000000
+ 		+ (n / 1000) "nanos"!
- 	| days totalSeconds micros |
- 	days := jdn - PosixEpochJulianDays.
- 	totalSeconds := days * 86400 + s - localOffsetSeconds. "n.g. const 86400 is faster than SecondsInDay"
- 	micros := totalSeconds * 1000000.
- 	^micros + (n / 1000)
- !

Item was added:
+ ----- Method: Time class>>clockPolicy (in category 'class initialization') -----
+ clockPolicy
+ 
+ 	^ClockPolicy!



More information about the Packages mailing list