CALENDRICAL CALCULATIONS, Third Edition
Total Page:16
File Type:pdf, Size:1020Kb
ii ii CALENDRICAL CALCULATIONS, Third Edition This new edition of the popular calendar book expands the treatment of the previous edition to new calendar variants: generic cyclical calendars and astronomical lunar calendars, as well as the Korean, Vietnamese, Aztec, and Tibetan calendars. As interest grows in the impact of seemingly arbitrary calendrical systems upon our daily lives, this book frames the calendars of the world in a completely algorithmic form. Easy conversion among these calendars is a by- product of the approach, as is the determination of secular and religious holidays. Calendrical Calculations makes accurate calendrical algorithms readily available. This book is a valuable resource for working programmers, as well as a fount of useful algorithmic tools for computer scientists. In addition, the lay reader will find the historical setting and general calendar descriptions of great interest. Beyond his expertise in calendars, Nachum Dershowitz is a leading figure in software verification in general and termina- tion of programs in particular; he is an international authority on equational inference and term rewriting. Other areas in which he has made major contributions include program semantics and combinatorial enumeration. Dershowitz has authored or coauthored more than 100 research papers and several books and has held visiting positions at prominent institutions around the globe. He has won numerous awards for his research and teaching. He was born in 1951, and his graduate degrees in applied mathematics are from the Weizmann Institute in Israel. He is currently a professor of computer science at Tel Aviv University. Edward M. Reingold was born in Chicago, Illinois, in 1945. He has an undergraduate degree in mathematics from the Illinois Institute of Technology and a doctorate in computer science from Cornell University. Reingold was a faculty member in the Department of Computer Science at the University of Illinois at Urbana-Champaign from 1970–2000; he retired as a Professor Emeritus of Computer Science in December 2000 and moved to the Department of Computer Science at the Illinois Institute of Technology as professor and chair, an administrative post he held until 2006. His re- search interests are in theoretical computer science—especially the design and analysis of algorithms and data structures. A Fellow of the Association for Computing Machinery since 1995, Reingold has authored or coauthored more than 70 re- search papers and 10 books; his papers on backtrack search, generation of combinations, weight-balanced binary trees, and drawing of trees and graphs are considered classics. He has won awards for his undergraduate and graduate teaching. Reingold is intensely interested in calendars and their computer implementation; in addition to Calendrical Calculations and Calendrical Tabulations,heistheauthor and former maintainer of the calendar/diary part of GNU Emacs. i ii Calendrical Calculations THIRD EDITION NACHUM DERSHOWITZ Tev Aviv University EDWARD M. REINGOLD Illinois Institute of Technology iii CAMBRIDGE UNIVERSITY PRESS Cambridge, New York, Melbourne, Madrid, Cape Town, Singapore, São Paolo, Delhi Cambridge University Press 32 Avenue of the Americas, New York, NY 10013-2473, USA www.cambridge.org Information on this title: www.cambridge.org/9780521885409 © Cambridge University Press 2008 This publication is in copyright. Subject to statutory exception and to the provisions of relevant collective licensing agreements, no reproduction of any part may take place without the written permission of Cambridge University Press. First published 2008 Printed in the United States of America Acatalog record for this publication is available from the British Library. Library of Congress Cataloging in Publication Data Dershowitz, Nachum. Calendrical calculations / Nachum Dershowitz, Edward M. Reingold. – 3rd ed. p. cm. Rev. ed. of: Calendrical calculations / Edward M. Reingold, Nachum Dershowitz. Millennium ed. Includes bibliographical references and index. ISBN 978-0-521-88540-9 (hardback) – ISBN 978-0-521-70238-6 (pbk.) 1. Calendar – Mathematics. I. Reingold, Edward M., 1945– II. Reingold, Edward M., 1945– Calendrical calculations. III. Title. CE12.D473 2007 529’.3–dc22 2007024347 ISBN 978-0-521-88540-9 hardback ISBN 978-0-521-70238-6 paperback Cambridge University Press has no responsibility for the persistence or accuracy of URLs for external or third-party Internet Web sites referred to in this publication and does not guarantee that any content on such Websites is, or will remain, accurate or appropriate. iv ˙ ˙ ÝÛ ÞÐ ÛÐ ˙ ˙ ÑÝ ÞÝÛ ÐÖ ÑÝØÔ ÜÕÒÝ ˙ Ü ÑÜ v vi Contents List of Frontispieces page xii List of Figures xiii List of Tables xiv Abbreviations xv Mathematical Notations xvi Preface xix Credits xxvii License and Limited Warranty and Remedy xxviii 1 Calendar Basics ................................1 1.1 Calendar Units and Taxonomy 4 1.2 Fixed Day Numbers 9 1.3 Negative Years 12 1.4 Epochs 14 1.5 Julian Day Numbers 16 1.6 Mathematical Notation 17 1.7 Search 20 1.8 Dates and Lists 22 1.9 A Simple Calendar 24 1.10 Cycles of Days 27 1.11 Simultaneous Cycles 30 1.12 Cycles of Years 32 1.13 Warnings about the Calculations 39 References 41 I ARITHMETICAL CALENDARS 2The Gregorian Calendar .......................... 45 2.1 Structure 45 2.2 Implementation 48 vii viii Contents 2.3 Alternative Formulas 52 2.4 The Zeller Congruence 56 2.5 Holidays 57 References 60 3The Julian Calendar ............................ 63 3.1 Structure and Implementation 63 3.2 Roman Nomenclature 65 3.3 Roman Years 69 3.4 Holidays 70 References 71 4The Coptic and Ethiopic Calendars .................... 73 4.1 The Coptic Calendar 73 4.2 The Ethiopic Calendar 75 4.3 Holidays 76 References 77 5The ISO Calendar .............................. 79 Reference 81 6The Islamic Calendar ............................ 83 6.1 Structure and Implementation 83 6.2 Holidays 86 References 87 7The Hebrew Calendar ........................... 89 7.1 Structure and History 90 7.2 Implementation 95 7.3 Holidays and Fast Days 101 7.4 Personal Days 105 7.5 Possible Days of Week 108 References 110 8The Ecclesiastical Calendars ....................... 113 8.1 Orthodox Easter 114 8.2 Gregorian Easter 116 8.3 Astronomical Easter 119 8.4 Movable Christian Holidays 119 References 121 9The Old Hindu Calendars ........................ 123 9.1 Structure and History 123 9.2 The Solar Calendar 126 9.3 The Lunisolar Calendar 128 References 134 Contents ix 10 The Mayan Calendars .......................... 137 10.1 The Long Count 138 10.2 The Haab and Tzolkin Calendars 139 10.3 The Aztec Calendars 145 References 150 11 The Balinese Pawukon Calendar .................... 153 11.1 Structure and Implementation 153 11.2 Conjunction Days 159 References 161 12 Generic Cyclical Calendars ....................... 163 12.1 Single Cycle Calendars 163 12.2 Double Cycle Calendars 166 12.3 Summary 168 II ASTRONOMICAL CALENDARS 13 Time and Astronomy ............................171 13.1 Position 172 13.2 Time 174 13.3 The Day 179 13.4 The Year 185 13.5 Astronomical Solar Calendars 192 13.6 The Month 193 13.7 Times of Day 207 References 214 14 The Persian Calendar ............................217 14.1 Structure 217 14.2 The Astronomical Calendar 219 14.3 The Arithmetic Calendar 221 14.4 Holidays 226 References 227 15 The Baha’´ ´ı Calendar ........................... 229 15.1 Structure 229 15.2 Western Version 231 15.3 The Future Baha’´ ´ıCalendar 233 15.4 Holidays 236 References 237 16 The French Revolutionary Calendar .................. 239 16.1 The Original Form 241 16.2 The Modified Arithmetical Form 242 References 244 x Contents 17 The Chinese Calendar .......................... 247 17.1 Solar Terms 248 17.2 Months 251 17.3 Conversions to and from Fixed Dates 258 17.4 The Sexagesimal Cycle of Names 260 17.5 Common Misconceptions 263 17.6 Holidays 264 17.7 Chinese Age 266 17.8 Chinese Marriage Auguries 267 17.9 The Japanese Calendar 268 17.10 The Korean Calendar 269 17.11 The Vietnamese Calendar 271 References 272 18 The Modern Hindu Calendars ...................... 275 18.1 Hindu Astronomy 281 18.2 Calendars 287 18.3 Sunrise 292 18.4 Alternatives 295 18.5 Astronomical Versions 299 18.6 Holidays 303 References 312 19 The Tibetan Calendar .......................... 315 19.1 Calendar 315 19.2 Holidays 319 References 322 20 Astronomical Lunar Calendars ..................... 325 20.1 Astronomical Easter 325 20.2 Lunar Crescent Visibility 326 20.3 The Observational Islamic Calendar 328 20.4 The Classical Hebrew Calendar 329 References 331 Coda ...................................... 333 III APPENDICES AFunction, Parameter, and Constant Types ............... 337 A.1 Types 337 A.2 Function Types 342 A.3 Constant Types and Values 356 BLisp Implementation ........................... 361 B.1 Lisp Preliminaries 361 Contents xi B.2 Basic Code 364 B.3 The Egyptian/Armenian Calendars 366 B.4 Cycles of Days 367 B.5 The Gregorian Calendar 367 B.6 The Julian Calendar 372 B.7 The Coptic and Ethiopic Calendars 375 B.8 The ISO Calendar 376 B.9 The Islamic Calendar 377 B.10 The Hebrew Calendar 378 B.11 The Ecclesiastical Calendars 385 B.12 The Old Hindu Calendars 386 B.13 The Mayan Calendars 388 B.14 The Balinese Pawukon Calendar 392 B.15 Time and Astronomy 395 B.16 The Persian Calendar 411 B.17 The Baha’´ ´ıCalendar 413 B.18 The French Revolutionary Calendar 416 B.19 The Chinese Calendar 417 B.20 The Modern Hindu Calendars 424 B.21 The Tibetan Calendar 435 B.22 Astronomical Lunar Calendars 437 Reference