It’s more logical. The reason it’s 12 is because the Romans were afraid of zeros. The “12” means either 0 hours or 12 hours after midnight while 1-11 mean 1-11 or 13-23 hours after midnight.
if (pm && numberOnClock != 12) hoursSinceMidnight = numberOnClock+12;
else /*am or 12pm*/
{
if (numberOnClock == 12 /*12am*/) hoursSinceMidnight = 0;
else /*1-11 am or 12pm*/ hoursSinceMidnight=numberOnClock;
}
If a “0” was on top, it would be
if (pm) hoursSinceMidnight=numberOnClock+12;
else /*am*/ hoursSinceMidnight=numberOnClock;
TL;DR: Swap the 0 and 12 on the clock face. The inner (AM) ring now has numbers 0-11 while the outer (PM) ring has numbers 12-23. Things now make sense. We should have done this centuries ago instead of manufacturing measuring instruments whose scale starts at 12 rather than 0.
It’s more logical. The reason it’s 12 is because the Romans were afraid of zeros. The “12” means either 0 hours or 12 hours after midnight while 1-11 mean 1-11 or 13-23 hours after midnight.
If a “0” was on top, it would be
TL;DR: Swap the 0 and 12 on the clock face. The inner (AM) ring now has numbers 0-11 while the outer (PM) ring has numbers 12-23. Things now make sense. We should have done this centuries ago instead of manufacturing measuring instruments whose scale starts at 12 rather than 0.