A dozenal clock
Tags: clock, dozenal, base12, decimal
Published: 2022-10-08 20:19:14

Digital clocks around the world use 24 hours each day to display the time. In the night the day starts as 00:00, 00:59, 01:00, 01:59, 02:00, up to 23:00 and 23:59. (Actually, digital time goes up to 24:00 when the day has a leap second.)

Analog clocks display the night starting at 12 (top of the clock). After the large hand has traveled all the way from 12, 1, 2, ..., 11 and back to 12, an hour has passed and the small hand points at 1. This repeats until afternoon, when the same time displays as the middle of the night and both hands point to the 12. After another 12 hours it is night again and the day has passed.

Some countries use AM and PM to denote the time. There the first hour of the day is 12PM (in the night), then 1AM, 2AM, until 12AM (end of the morning), which turns to 1PM, 2PM etc. until 12PM in the night. This notation follows the analog clock.

## Questions

For a long time I have wondered why clocks work this way. I asked myself the following questions:
1. Why is the fist hour of the day named 12 PM, and the following hours start at 1, 2, 3, etc.?
2. Why does the afternoon not start at 10:00 (when the first digit in the hours changes from 0 to 1)?
3. Why do we have 60 minutes in an hour, but are analog clocks divided into 12 sets of 5 minutes?
4. If the digital time is 13:11, why can't I find these numbers on an analog clock?
5. Both 10:00 and 22:00 point at the same number on an analog clock. Why don't these times look similar?
6. Why does an analog clock have three numbers on the clock which have two digits, while the other numbers have one digit?

These questions got me thinking about time, the division of hours and minutes, and the representation of hours and minutes on a digital and analog clock.

## Introduction to base-12

Instead of writing numbers in base 10 (*decimal system*), we will write numbers in base 12, the *dozenal system*.

To do that we need two new symbols to represent the decimal numbers 10 and 11. 

Following the worldwide society that uses base-12 or duodecimal numbers ([British](http://www.dozenalsociety.org.uk/), [American](http://www.dozenal.org)), we shall use the ↊ and ↋ symbols. They are pronounced *dek* and *el*. (You may also find the Greek symbols χ and ξ used for *dek* and *el*, but the ↊ and ↋ symbols have been officially accepted into Unicode since 2015.) 

The first twelve numbers are then: 1, 2, 3, 4, 5, 6, 7, 8, 9, ↊, ↋ and 10.

The digits ↊ and ↋ are easly and uniquely and recognizably representable on a seven-segment display (used in many digital clocks). They can be respresented as 🯲 and 🯳, but turned around 180 degrees. The 🯲 is the same upside down, and the top bar can be removed to make it unique.

There is even a [LaTeX package `dozenal`](https://www.ctan.org/tex-archive/fonts/dozenal) that supports dozenal numbers. Wikipedia has a comprehensive article about the [dozenal system and its history](https://en.wikipedia.org/wiki/Duodecimal).

## A new way to write the time

We will use the dozenal number system to create a better representation for clocks, both digial and analog.

For digital clocks, the following system is used:
- The first digit denotes the night/morning as `0` and the afternoon/evening as `1`.
- The second digit denotes the hour, `0` up to `↋`.
- The hours and minutes are separated by a `·`, although `:` is also accepted.
- The third digit denotes the number of 5-minute groups in the hour, `0` up to `↋`.
- The fourth digit denotes the minute in the 5-minute group, `0` up to `4`.

The second and third digits can be emphasized either by font size, or by font weight (bold font), although it is not required.

A whole day then looks as the following on a digital clock:
- The first minute is `00·00`.
- The second minute is `00·01`.
- The fifth minute is `00·04`.
- The sixth minute is `00·10`.
- ... and so on until the last minute of the first hour is `00:↋4`.
- The first minute of the of the second hour is `01:00`.
- The last minute before noon is `0↋:↋4`.
- Noon is `10:00`.
- The last minute of the day is `0↋:↋4`.
- A leap second would be represented as `20:00`.

For analog clocks, the numbers from 0 to ↋ are spaced evenly around the clock. The number 0 is at the top.

For analog clocks we have the following times:
- 🕛 is `00·00`
- 🕧 is `00·60`
- 🕐 is `01·00`
- 🕜 is `01·60`
- 🕤 is `09·60`
- 🕙 is `0↊·00`
- 🕦 is `0↋·60`

Note that seconds are left out of these examples, but they can be appended and represented the same way as the minutes are represented.

Think about the representation for a bit. What is often denoted as AM / PM can now be seen as the first digit. The morning and evening times `0↊·00` and `1↊·00` are represented as almost the same time. Skimming the time, it is usually only neccesary to look at the second and third digit instead of all four digits. The quarters of the hour can be identified by the digits `0`, `3`, `6` and `9`.

## In practice

The theory is nice, but I decided to put the theory into practice as well in my life, in as many places as possible.

For my digital watch (a Garmin device, with programmable clock faces) I made a Garmin watch face that displays the dozenal time. View the [app on Connect IQ](https://apps.garmin.com/en-US/apps/869126ca-c617-4ca3-a23a-f6cae06985ff).

![Garmin watch face](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/scopadwlwes1fkifvxdt.jpeg)

The wall in my office has a self-made dozenal analog clock. It has been laser-cut from a sheet of steel.

![Wall clock](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wpht0td3cc536cbnml2b.jpeg)

My laptop runs Ubuntu and its system clock is visualized in my task bar using a dozenal clock.

![Laptop system clock](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3ys5vbjaf4l2esi3wxm1.png)

There are other places where I might implement dozenal clocks to replace the decimal clocks, for example:
- my mobile phone
- my alarm clock
- system-wide date formatting, (I tried, see [my question on Unix StackExchange](https://unix.stackexchange.com/questions/593900/call-script-in-locale-definition))

Let me know if you have more ideas!