diff --git a/ChangeLog b/ChangeLog index 4f03e3d3d..b46e8831a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Tue Jan 4 22:40:00 1999 Richard Frith-Macdonald + + * Source/NSCalendarDate.m: ([-yearOfCommonEra]) fix rounding error. + Tue Dec 21 13:27:00 1999 Richard Frith-Macdonald Fixes suggested by karl@nfox.com diff --git a/Source/NSCalendarDate.m b/Source/NSCalendarDate.m index 54de1b554..c85d775e4 100644 --- a/Source/NSCalendarDate.m +++ b/Source/NSCalendarDate.m @@ -852,13 +852,9 @@ - (int) yearOfCommonEra { int m, d, y; - int a; - // Get reference date in terms of days - a = (_seconds_since_ref+[_time_zone timeZoneSecondsFromGMT]) / 86400; - // Offset by Gregorian reference - a += GREGORIAN_REFERENCE; - [self gregorianDateFromAbsolute: a day: &d month: &m year: &y]; + [self gregorianDateFromAbsolute: [self dayOfCommonEra] + day: &d month: &m year: &y]; return y; } diff --git a/Testing/nsdate.m b/Testing/nsdate.m index ef2afd8d6..74b74e36d 100644 --- a/Testing/nsdate.m +++ b/Testing/nsdate.m @@ -143,6 +143,7 @@ main() c = [NSCalendarDate dateWithString: @"1999-12-31 23:59:59" calendarFormat: @"%Y-%m-%d %H:%M:%S"]; printf("Start at %s\n", [[c description] cString]); + printf("YYYY-MM-DD %d-%d-%d\n", [c yearOfCommonEra], [c monthOfYear], [c dayOfMonth]); c = [c addYear:0 month:0 day:0 hour:0 minute:0 second:1]; printf("Add one second - %s\n", [[c description] cString]); c = [c addYear:0 month:0 day:0 hour:0 minute:0 second:1];