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