• ChaoticNeutralCzech@feddit.org
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      4 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.