• ChaoticNeutralCzech@feddit.org
        link
        fedilink
        English
        arrow-up
        4
        ·
        edit-2
        5 months ago

        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.