John rated Calendrical calculations: Show rating 5 stars June 28, 2018 Public Calendrical calculations by Edward M. Reingold