Caters to lowest common denominator.
I had all this explained on elementary school (which was boring and slow as fuck) during English class, and we don't even use 12H system in The Netherlands. It is quite frankly as simple to remember as a logic (tho not necessarily common) grammar rule.
12AM 1AM 2AM 3AM 4AM ... 11AM 12PM 1PM 2PM ... 11PM 12AM 1AM
even the way you explain it:
"then you know 12 PM is 12.00 (after noon hence afternoon) "
when I read "12 after noon", I understand "noon + 12 hours" which should give midnight..
Having worked on the UI of an event-related service, I can say the error rate is much lower if you go with the ‘11:59’ workaround. In addition to the confusion about whether 12 PM is 00:00 or 12:00, there’s confusion about which calendar day 12 AM falls on. When does a Friday midnight movie start? 99.9% of people will show up at the end of Friday, but in a literal user interface you’d have to choose 12 AM Saturday. I thought of fireworks girl very frequently when I worked on that UI.
11:59pm, midnight, 12:01am
11:59am, noon, 12:01pm
> In addition to the confusion about whether 12 PM is 00:00 or 12:00, there’s confusion about which calendar day 12 AM falls on. When does a Friday midnight movie start? 99.9% of people will show up at the end of Friday, but in a literal user interface you’d have to choose 12 AM Saturday.
I use 11:59pm or "end-of-day" for most cases.