'Fixing' 12-Hour Time

Resolving the discontinuities in 12 hour time and proposing Continuous 12-Hour (C12) Time

§12-Hour Time is Confusing

When we teach children to read clocks and tell time, they're often confused by the strange combination of rules we follow. Even some adults mix up whether midnight is in the a.m. or p.m. and how many hours are between two times that span noon. This confusing complexity isn't intrinsic! It can be removed!

§12-Hour Time is Discontinuous

A sensible 12-hour time system would be continuous and linear within its 12-hour segments. Any times (N):mm a.m. and (N+1):mm a.m. should be 1 hour apart and any (N):mm p.m. and (N+1):mm p.m. should be too. Sadly, 12:30 p.m. is actually 11 hours before 11:30 p.m.. In my opinion, this is where a lot of the confusion about hours of the day and distances in time comes from.

§Implied 24-Hour Value

One simple way to demonstrate how 12-hour time deviates from intuition is to imagine a simple hypothetical rule: the 24-hour time for a 12-hour time is equal to its 12-hour time if it is a.m. and equal to 12 hours later if it is p.m.. This rule isn't how 12-hour time works, but plotting the values it gives us makes 12-hour time's major issue obvious.

242322212019181716151413121110987654321012123456789101112123456789101112a.m.p.m.a.m.
A plot of how current "discontinuous" 12-hour time maps to implied time.

This also presents an obvious way to create intra-segment intra-day continuity. Just make the hypothetical rule the actual one making noon 12:00 a.m. and midnight 12:00 p.m..

242322212019181716151413121110987654321012123456789101112123456789101112p.m.a.m.p.m.
A intra-segment and intra-day continuous 12-hour time

Most people would leave it here having made times within the day continuous, but we can do better... we can make times continuous between days! (even if we shouldn't)

§Segment-Amplitude

The approach for inter-segment inter-day continuity will look a little different and we'll start by using a different visualization. Instead of focusing on the "implied 24-hour value" we're going to focus on the amplitude of each time ignoring whether they are a.m. or p.m..

121110987654321012123456789101112123456789101112
Plotting time values ignoring a.m./p.m. in order

For the next step we're going to take a hint from what "a.m." and "p.m." actually stand for:

What's strange about this is that "12 a.m." isn't really "12 hours before midday" though "12 p.m." does mean "12 hours after midday, but what if they did match? What if HH:mm a.m. meant HH hours and mm minutes before noon instead?

Instead of hours increasing up till 12 and then resetting to 1, they would go up to 12 and down to zero and then back up and then back down. Intuitively this would mean that 12 hours after midday is equal to 12 hours before midday of the next!

1211109876543210121211109876543210123456789101112
Continuous 12-hour time

By reversing the order of time in the a.m., we've finally reached a truly inter-segment inter-day continuous 12-hour time, which I propose we call Continuous 12-Hour Time a.k.a. C12 Time and adopt immediately. Its inter-day continuity can be seen in the following figure by repeating the plot across multiple days.

12111098765432101212111098765432101234567891011121211109876543210123456789101112
Continuous 12-hour time across 2 days

In addition to continuity, it's also much easier to tell how long durations of time ranges that cross noon, which are very common, are: you can simply add the a.m. start time to the p.m. end time!

Notably, this innovation can't be applied to 24-hour time demonstrating why 24-hour time shouldn't be taken seriously.

§Clocks

This will obviously have both foreseeable and unforeseeable consequences and implications for clocks and the keeping of time. As we begin to implement it, I'm sure we'll figure out the details.

At some point I hope to build a physical analogue clock demonstrating it, which will conveniently only require a change in the motion of its hands but not its structure, which is a notable feature of my proposal.

For now, please accept this digital clock showing the current time in the proposed system:

12:00 a.m.
A C12 digital clock

§Code

The code for this blog post is available online and licensed under the Apache 2.0 license.