I am sceptical to the use of Floats. Even using doubles, you've lost nanosecond accuracy when you get up to a number of seconds corresponding to a year: 31536000.000000001 = 31536000.0 true I don't see how the summing done in basicSeconds can possibly add up to correct values... Cheers, Henry On 18 Sep 2014, at 9:56 , Max Leske <maxleske@gmail.com> wrote:
Another issue for cleanup review.
https://pharo.fogbugz.com/f/cases/13229/Year-arithmetic-broken
Ported from Pharo 30.
Made a few additional changes to #hash and #printOn: methods that no longer worked, added class comment to AnnualDuration.
NOTE: I haven't done a full review on this and the change of seconds from integer to floats can have quite serious implications. Please look at this carefully.
Name: SLICE-Issue-13229-Year-arithmetic-broken-MaxLeske.1 Author: MaxLeske Time: 18 September 2014, 9:50:41.500402 pm UUID: 44e5effc-4344-4aec-8cf5-3cb5d92ad73e Ancestors: Dependencies: Kernel-MaxLeske.1827, KernelTests-MaxLeske.678
Port from Pharo 30.
- Added class comment to AnnualDuration. - adapted #hash and #printOn: methods that no longer worked because of seconds being floats