Product Description
Covering how to synchronize networked systems across time zones, the best way to convert date stamps between the various calendar systems in the world, this text includes solutions to common date/time problems and covers calendars of most cultures (including historical).
From the Author
Overview of SCDTLSCDTL is a complete, integrated tool kit of C functions and data structures for dealing with date/time applications.
We deal with many issues, such as Y2K, compression and ISO 8601 document concerns, as well as about 30 different calendars.
The treated calendars include Gregorian (historical and proleptic), Julian (historical and proleptic), Roman republican, Egyptian Solar, Coptic, Islamic (astronomical and civil), Jewish (Hebrew), Maya, Indian civil, Nabonassar Era, Armenian, Khwarizmian (Chorasmian), Alexandrian, Ethiopic, Macedonian, Syrian, Persian Solar, Persian Mobile, Zoroastrian, Baha'i (and Badi), Chinese, French Revolutionary (Republican), International Fixed Calendar, The World Calendar, Positivist, Peter Meyer's "Goddess Lunar Calendar" and Jalali.
Also included is a calendar (and clock) for the planet Mars.
The discussions of historical background are fairly extensive.
Where days of observance are of importance, discussion and code is provided. The Jewish calendar covers many days of observance, as well as functions for Yahrzeit, bar mitzvah, etc.
SCDTL uses the Julian Day number (JD#) system as a linear scale for performing date/time math. As a consequence, most of the difficult date/time problems, such as calendar conversions, are reduced to a few lines of code.
To convert a date in calendar A to an equivalent date in calendar B means writing C code in an application of the following form:
jd = date_A_to_JD0 (&date_A);
date_B = JD0_to_Date_B (jd);
Since the JD# system ties date and time together, the tedious conversions are eliminated.
SCDTL likewise eliminates the necessity of 'rolling your own' code when considering common problems such as day of the week. Surprisingly, a good many of the accepted solutions for this and related problems contain bugs, or are severely limited in range.
The 'Millennium' problem has made one issue very clear - date/time code appears in virtually every program. And, it is easy to make simple and costly mistakes in this area. SCDTL solves this problem.
The style of SCDTL is very simple to use. It was deliberately written to be read, and the code can be used in a 'canned' way, even by novices.
I am interested in feedback. I continue to collect calendar algorithms for more esoteric and historical calendars. Right now, I am looking for more information on the Vietnamese, Japanese, various Thai and Burmese and traditional Indian 'astrological' calendars. I also want some more information on the vagaries of the regional medieval European calendars. It is my intention that SCDTL be 'one stop shopping' for all date/time applications.
I will be setting up a Web page in the near future. The page will be a forum for date/time issues, and serve as a staging area for supplementary date/time code as it becomes available. SCDTL is HUGE (about 4200 pages), with much of the material on CD-ROM. There are 191 test programs, e.g., that exercise every function and demonstrate its use.
Talk to me, at <rms@hiline.net>. It's about time.