The dozenal suite is a set of programs designed to assist with working in the dozenal (also called "duodecimal" or "base twelve") system. It includes number converters (dozenal-to-decimal and decimal-to-dozenal), an RPN calculator, a graphical calculator, a metric system converter (works with imperial, U.S. customary, SI metric, and the dozenal TGM), a pretty-printer for dozenal numbers, a date-and-time program, and a dozenal calendar programs, complete with events and to-dos.
NOTE: I have recently become aware that integer overflows are a potential security issue. I have neither the bandwidth nor the knowledge to audit this code for such problems. Therefore, as always, use at your own risk.
On a more technical level, dozenal is written in POSIX-compliant C. The calendar program uses libhdate to determine the dates of certain Jewish holidays, if they are requested by the user, and requires Lua for the scripting. It also uses sunriset.c, by Paul Schlyter, for the sunrise and sunset code. If you want the GUI programs, you'll need the xforms toolkit; but you can compile without it if you'd prefer. That's all; no other external libraries are required.
The programs included are:
- doz Converts decimal numbers into dozenal. Works for integers, floating point, and exponential ("scientific") notation. manual
- dec Converts dozenal numbers into decimal. Works for integers, floating point, and exponential ("scientific") notation. manual
- dozdc A Reverse Polish Notation (RPN) calculator. Works entirely in dozenal. Understands a large variety of arithmetical, trigonometric, and other functions. manual
- tgmconv A metric system converter. Can convert to and from Imperial, U.S. customary, SI metric, and the dozenal TGM system. manual
- dozdate A more or less drop-in replacement for GNU date; gives dates and times in dozenal in a basically unlimited number of formats. manual
- dozcal A dozenal calendar program. Keeps and prints events and todos in arbitrary user-selected formats. Text-based, but otherwise a great replacement for calendar managers like iCal and the like. manual
- dozpret A pretty-printer for dozenal numbers. Includes options for specifying transdecimal digits, radix points, digit separators, and digit groupings. Also includes a preset option for LaTeX output. manual
- dozstring A simple byte filter which inhales a string of characters and outputs that same string, with all numbers converted into dozenal. Takes pains to ensure that the resulting string is the same length as the input string. manual
- dozword A simple program that takes a dozenal number from either standard input or the command line and converts it into a series of words according to either the Systematic Dozenal Nomenclature (SDN) system or the Pendlebury system. Pipe it through espeak for extra fun! manual
- doman Another very simple program that simply converts a dozenal integer into a non-place-value representation of its value. Typically, this will be used for Roman numerals; and, indeed, the defaults are set up for dozenal Roman numerals. However, any symbols and ranks whatsoever may be used. manual