Calendar Calculations - En bok om kalendersystem och algoritmer för datorer att konvertera mellan dem. Den skrevs av datavetarna Nachum Dershowitz och Edward Reingold och publicerades 1997 av Cambridge University Press . Den andra upplagan med programvara på CD-ROM publicerades 2001, den tredje upplagan 2008 och den fjärde upplagan 2018.
Det finns många olika kalendrar, och det är mycket svårt att konvertera datum mellan dem, främst på grund av oförmågan att förena de irrationella förhållandena för dagliga, månatliga och årliga astronomiska cykler med hjälp av heltal [1] . De 14 kalendrarna som diskuterades i den första upplagan av boken inkluderade den gregorianska kalendern , ISO-datumet för veckan den julianska kalendern , den koptiska kalendern , den etiopiska kalendern , den islamiska kalendern , den moderna iranska kalendern , Baha'i-kalendern , den franska republikanska kalendern , de gamla och moderna hinduiska kalendrarna , kalendern Maya och den moderna kinesiska kalendern [1] [2] . Senare utgåvor har lagt till andra kalendrar [3] [4] [5] . Kalendrar är indelade i två grupper: "aritmetiska" kalendrar, vars beräkningar kan utföras rent matematiskt, oberoende av månens och solens positioner, och "astronomiska" kalendrar, delvis baserade på månens och solens positioner [ 6] .
Författarna har utvecklat kalenderberäkningsalgoritmer för att konvertera datumen för var och en av dessa kalendrar till datum för andra kalendrar, och beräknar Rata Die- systemet av dagar , numrerade från den gregorianska kalendern 1 januari 1. Genom att kombinera dessa metoder kan du konvertera mellan två valfria kalendrar [2] [7] . En av bokens innovationer är användningen av kodning för att ersätta värdetabeller för oregelbundna sekvenser, såsom antalet dagar i en månad [8] . Författarna beskriver också historien om de kalendrar som de beskriver, analyserar deras noggrannhet med avseende på de astronomiska händelser som de skapades för att modellera och pekar ut viktiga dagar i året för varje kalender [2] . Applikationen inkluderar fullständig mjukvarudokumentation [6] [9] .
Ett av bokens mål är att tillhandahålla användbar och effektiv mjukvara med öppen källkod inom ett område där tidigare lösningar mestadels har varit proprietära, ofullständiga och buggiga [8] . Författaren Edward Reingold programmerade ursprungligen dessa metoder i Emacs Lisp , som en del av GNU Emacs textredigerare , och författarna har utökat en tidigare tidskriftspublikation om denna implementering till en bok [1] [5] . Denna kod har konverterats till Common Lisp för en bok under öppen licens och ingår i boken som ett exakt och entydigt sätt att beskriva varje algoritm [5] .
Boken är i första hand en uppslagsbok, men den kan även läsas av ämnesintresserade läsare [8] . Recensenten Victor J. Katz rekommenderar den här boken till alla som är "intresserade av hur vi hanterar tid" [2] . Recensenten John D. Cook påpekar dock att läsarna måste vara bekanta med Lisp-programmering för att förstå detaljerna i de algoritmer som beskrivs i boken, och att det inte räcker med att skumma igenom boken utan att arbeta igenom detaljerna [5] . Å andra sidan, även om den inte är lätt att läsa, rekommenderar recensenten Antonio F. Rañada boken inte bara "till matematiker, astronomer eller datavetare, utan även till historiker eller alla som är intresserade av vetenskapens kulturella aspekter" [1] .
Recensenten Noel Swerdlow ser den första upplagan som ett "pågående arbete", och föredrar 1800-talstabeller av Robert Schram framför datormetoder [10] . Och samtidigt som han berömmer boken för att den saknar "andrahandsfel, tredje ordningens förenklingar och direkta myter" som finns i många andra verk om kalenderämnet, påpekar recensenten Robert Poole att boken bara handlar om en version av varje kalender, historiskt sett har dessa kalendersystem varit föremål för flera revisioner, och citerar boken som noterar att dess resultat ibland är "matematiskt sunda men historiskt felaktiga". Han tillägger att reduktionen av en mänskligt skapad kalender till en datorberäkning är "ren arrogans", drar han ändå slutsatsen att "vi kan vara tacksamma att en sådan användbar referens har tagits fram från ett projekt av sådan respektingivande meningslöshet" [11] . Recensenten Manfred Kudlek kallar det "den mest omfattande och detaljerade publikationen om kalendersystem" sedan Friedrich Karl Ginsels Handbuch der Mathematischen und Technischen Chronologie i början av 1900-talet [9] .