Home > Web Site Updates > AA+ v1.29

AA+ v1.29

January 26, 2007
Just to let everyone know that v1.29 of AA+ has been released. Updates for this version include:

  • After a bug report from Ing. Taras Kapuszczak that a round trip of the date 25 January 100 as specified in the Gregorian calendar to the Julian day number and then back again produces the incorrect date 26 January 100, I’ve spent some time looking into the 2 key Meeus Julian Day algorithms. It seems that the algorithms which converts from a Calendar date to JD works ok for propalactive dates, but the reverse algorithm which converts from a JD to a Calendar date does not. Since I made the change in behaviour to support propalactive Gregorian dates to address issues with the Moslem calendar (and since then I have discovered further unresolved bugs in the Moslem calendar algorithms and advised people to check out my DTime+ library instead), I am now reverting these changes so that the date algorithms are now as presented in Meeus’s book. This means that dates after 15 October 1582 are assumed to be in the Gregorian calendar and dates before are assumed to be in the Julian calendar. This change also means that some of the CAADate class methods no longer require the now defunct "bool" parameter to specify which calendar the date represents. As part of the testing for this release verification code has been added to AATest.cpp to test all the dates from JD 0 (i.e. 1 January -4712) to a date long in the future. Hopefully with this verification code, we should have no more reported issues with the class CAADate. Again if you would prefer a much more robust and comprehensive Date time class framework, don’t forget to check out the authors DTime+ library.
  • Optimized CAADate constructor code
  • Provided a static version of CAADate::DaysInMonth() method
  • Discovered an issue in CAADate::JulianToGregorian. It seems the algorithm presented in the book to do conversion from the Julian to Gregorian calendar fails for Julian dates before the Gregorian calendar reform in 1582. I have sent an email to Jean Meeus to find out if this is a bug in my code or a deficiency in the algorithm presented. Currently the code will assert in this function if it is called for a date before the Gregorian reform.
  • Changed name of CAAMoonIlluminatedFraction::IluminatedFraction to CAAMoonIlluminatedFraction::IlluminatedFraction. Thanks to Ing. Taras Kapuszczak for reporting this typo!.
Categories: Web Site Updates
%d bloggers like this: