Ever thought about writing your own computer programs? Want to create your own computer games? 
The Real Truth About Midnight: (And Which Of Those Two Times Is Actually Noon? ) The Definitive Answers!  by  Bob Bishop ("Mr. Logic" on Radio Station KSCO in California) 
Of course, one solution could be to refer to midnight as being just plain "12 Midnight" (without either
an "AM" or "PM" designation).
But such a "solution" merely sidesteps answering the original question.
It is a commonly believed notion that the midnight hour is an AM hour. (Some naive individuals even seem to think that the letters "AM" are actually an abbreviation for "After Midnight".) And some misguided individuals (such as attorneys ) make the foolish claim that it isn't actually AM until one minute past midnight. And still others incorrectly claim that the exact instant of midnight is neither 12 AM nor 12 PM.*
*(Note: This is not the same as making the vacuous claim that "the exact instant of midnight is neither
AM nor PM." By including the number "12", the question about midnight does have a definite answer.)
But now, let's set the record straight, once and for all. However, let me warn you: I am not going to merely parrot back the "popularly accepted" answers to the questions about noon and midnight. Instead, I'm going to present the correct answers. [If all you want are the popular answers about noon and midnight, you can just use "Google" to find them. But (as you will discover shortly), those popular answers are wrong. And that includes the answers that are given on supposedly knowledgeable websites.]
The Correct Answers:
Noon is actually 12 o'clock AM
Midnight is actually 12 o'clock PM

[ Note: The answers shown above are not simply "opinions". Those answers
can be proven to be correct, as you will see when you read the explanations. ]
The Explanations: Why the Noon Hour is Actually 12 AM
and Why the Midnight Hour is Actually 12 PM
Our "Accepted Conventions" for Specifying Time
You've spent your entire life being indoctrinated to our "accepted conventions" for expressing time. (Those conventions label all the hours with numbers that range from "one" through "twelve"  with all of the morning times being called "AM" times and all of the afternoon times being called "PM" times.) In particular, our "accepted convention" for expressing the noon hour is to call it "12 PM" [i.e., 12:00 PM, 12:01PM, 12:02PM, ... 12:59PM], and our "accepted convention" for expressing the midnight hour is to call it "12 AM" [i.e., 12:00 AM, 12:01AM, 12:02AM, ... 12:59AM].
But have you ever stopped to really think about those conventions and not just mindlessly accept them just because "everybody says" that those conventions are correct?
Well, now you're going to have your chance to think about them. And if you look at those conventions objectively, intelligently, and logically, you will discover
Our "accepted conventions" for expressing
the noon and midnight hours are wrong!
To understand why those conventions are wrong, you will need to know the correct meanings of AM and PM. And you will need to know what a number in front of the letters "AM" or "PM" means.
What Do the Letters "AM" and "PM" Mean?
The letters "AM" and "PM" are abbreviations for the Latin expressions "Ante Meridiem" and "Post Meridiem," respectively. (Ante and post are Latin for "before" and "after," respectively. Meridiem is the Latin word for "meridian," the imaginary great circle on the celestial sphere, which passes through the point in the sky directly overhead [the zenith], and through the point on the horizon directly south of the observer.)
Every day, the sun spends essentially half of its time to the east of the meridian (i.e., ante meridiem), and half of its time to the west (post meridiem). And the crossover point (near the middle of the daylight portion of the day) defines local noon, the time when the sun reaches its highest point above the horizon.
Because the meridian is defined in terms of an observer, the exact time at which local noon occurs depends on where the particular observer is located. Therefore local noon seldom (if ever) occurs exactly at "clocktime" noon (i.e., twelve o'clock). So if one were to interpret the meanings of AM and PM literally, then the exact time at which "AM becomes PM" would not be at "clocktime" noon, but would instead occur at different times for observers at different locations.
Even adopting the concept of "standard meridians" (i.e., 24 fixed meridians, one for each of 24 time zones) would not solve the problem because the sun does not make meridian crossings (of any meridian) in exactly 24 hour intervals. Since the orbit of the earth around the sun is not a perfect circle, the times of the sun's meridian crossings slowly change from day to day. Over the course of a year, this daily drift (known as the "equation of time") can amount to as much as about plus or minus 18 minutes.
And, to make matters even worse: During some months of the year, parts of the world are on Daylight Savings Time (when the sun actually crosses the meridian an hour later than our clocks would otherwise indicate). Should we therefore refer to the noon hour as being PM during the winter, but AM during the summer?
When specifying clock times, it is clearly impractical to try and interpret the meaning of the term "meridian crossing" (and "AM" and "PM") in their literal senses. Instead, we can just pretend that there is a hypothetical meridian that the sun crosses at noon.
What Does a Number in Front of the Letters "AM" or "PM" Mean?
When we specify a number in front of the letters "AM" or "PM", that number is not merely an arbitrary and meaningless label. That number indicates an amount of elapsed time.
(Similarly, the numbers on a ruler are not merely "arbitrary and meaningless" labels either.
Those numbers provide quantitative information about the size of the object being measured.)
When we specify a number followed by the letters "AM" (i.e., ante meridiem), that number indicates the amount of time that has elapsed since midnight, prior to the sun's meridian crossing. For example, the expression "1 AM" (i.e., one hour "ante meridiam") means that one hour of time has elapsed prior to the sun's meridian crossing (i.e., one hour has elapsed since midnight), "2 AM" means that two hours have elapsed, etc.
When we specify a number followed by the letters "PM" (i.e., post meridiem), that number indicates the amount of time that has elapsed since the sun's meridian crossing (i.e., the amount of time that has elapsed since noon). For example, the expression "1 PM" (i.e., one hour "post meridiam") means that one hour of time has elapsed since the sun crossed the meridian, "2 PM" means that two hours have elapsed, etc.
Let's Keep on Counting the PM Hours . . .
When three hours have elapsed since the sun's meridian crossing, we call it "3 PM" (i.e., three hours "post meridiam"). And four hours after the meridian crossing is called
Now, let me ask you a "real toughie" question: "If we wait one more hour (past 11 PM), how much time will have elapsed since the sun's meridian crossing?"
Well [duh!], the answer is (of course): "Twelve hours will have elapsed since the sun's meridian crossing." (I.e., twelve hours "post meridiam", or 12 PM). But one hour past 11 PM is midnight.
So, there you have it! Midnight is actually 12 PM!
Now, 12 PM cannot refer to both midnight and noon. And we've just shown that 12 PM refers to midnight.
Therefore, Noon is actually 12 AM!
Attempting to refer to noon as being 12 PM (i.e., twelve hours "post meridiam") would be tantamount to making the absurd claim that: Noon occurs twelve hours after the meridian
crossing... or twelve hours later than noon! (Think about it!)
Still not entirely convinced? Then let's continue with the discussion . . .
Remember: The Names of the Hours Are Not Just Meaningless "Labels"
If the hours had been labeled with twelve meaningless symbols (such as: "$ o'clock", "Q o'clock", "& o'clock", etc.) instead of numerical values (such as: "1 o'clock", "2 o'clock", "3 o'clock", etc.), then it would have been permissible to declare all of the morning times to be AM times only, and all of the afternoon times to be PM times only. And the exact instants of noon and midnight themselves would have been neither AM nor PM.
But the hours were not labeled with meaningless symbols. Instead, numbers were used. And those numbers (along with their corresponding "AM/PM" designations) represent measurements of elapsed time. (I.e., they "count" the number of hours that have elapsed since noon or midnight.) For example, 5 PM means that five hours have elapsed since noon, and 3 AM means that three hours have elapsed since midnight.
How to Count Things
In order to correctly answer the questions about AM and PM, you only have to know how to count.
You do know how to count, don't you? It's easy! For example, if you already have nine apples and someone gives you another apple, you now have ten apples. And if they give you yet another apple, you now have eleven apples.
But if the next thing they give you is a banana, you don't suddenly have twelve bananas! You can't just change the name of what you were counting from "apples" to "bananas", and then keep on counting from where you left off when you were still counting apples. (I.e., 9 apples ... 10 apples ... 11 apples ... 12 bananas!) And yet, some fools seem to think that if you've already counted eleven of the PM hours and you add one more hour to it, you suddenly have twelve of the AM hours!
Remember: Once you begin counting the "PM" hours (1 PM, 2 PM, 3 PM, etc.  on a scale that ranges from one through twelve), you must continue counting those "PM" hours (10 PM, 11 PM, 12 PM). Then, when you're ready to start counting the "AM" hours, you must reset your counter to "one", and then start counting again (i.e., 1 AM, 2 AM, 3 AM ... 10 AM, 11 AM, 12 AM).
As you should know by now, whenever you count anything (be they the AM and PM hours of the day, the fingers on your hand, or the chickens in a chicken coop), you never count them by starting with the number "twelve"!
Let's Continue Counting the Time Past Midnight . . .
To further clarify the concepts of AM and PM, let's return to the moment of midnight (12:00 PM) and resume counting the number of hours and minutes that have elapsed since the meridian crossing:
12:00 PM, 12:01 PM, 12:02 PM, . . .
Notice that we are still counting the PM times. For example, 12:01 PM means that 12 hours and one minute have elapsed since the meridian crossing (i.e., 12 hours and one minute "post meridiam").
As was previously intimated, attempting to refer to 12:01 PM as being one minute past noon would be tantamount to
making the absurd claim that: One minute later than noon occurs twelve hours and one minute later than noon!
When counting the amount of time that has elapsed since the meridian
We do not suddenly switch from a PM designation to an
AM designation just because we've gone past midnight!
If we want to keep on counting the PM times, then we must continue labeling them as "PM". We can not just change the label from "PM" to "AM" and then keep on counting from where we left off when we were still counting the PM times! (Recall our previous discussion in which we started out counting apples, but then tried to claim that we ended up with 12 bananas.)
Let's Continue Counting the PM Times . . .
12:03 PM, 12:04 PM, 12:05 PM, . . . 12:58 PM, 12:59PM, . . .
Now (in one more minute after 12:59 PM), how many hours will have elapsed since the meridian crossing?
Answer: 13 hours will have elapsed since the meridian crossing. (13 hours "post meridiam".) Therefore one hour past midnight can be expressed as 13 PM, two hours past midnight can be expressed as 14 PM, . . . and so on.
Notice again that we are not required to switch from units of PM hours to units of AM hours, just because we've gone past the midnight hour. It's perfectly legitimate to keep counting PM hours for as long as we like. (Of course, we can start counting the AM hours [i.e., 1 AM, 2 AM, etc.] if we so choose. But we are not required to do so.) And similarly, we are not required to switch from units of AM hours to units of PM hours, just because we've gone past noon.
And the same kind of discussion holds true for other things as well. For example, when measuring the length of a long piece of string with a ruler, we are not required to switch from units of "inches" to units of "feet" just because we've gone past the ruler's 12inch mark. We can continue with: "13 inches ... 14 inches ...", etc.
Therefore, it should be obvious that 
Any time of the day or night can be legitimately
expressed as either an AM time or a PM time.
The letters "AM" and "PM merely indicate which of the two reference points (midnight or noon) we have chosen to use as the base from which to express elapsed time. (I.e., we can choose to specify the amount of time that has elapsed since midnight, or we can choose to specify the amount of time that has elapsed since noon.) For example, 2 o'clock in the morning can be expressed as either "2 AM" (i.e., two hours past midnight), or as "14 PM" (i.e., fourteen hours past noon). Both expressions are equally legitimate.
In a similar sense, we could indicate a racer's location on a circular race track by specifying either the distance that he has travelled since leaving the starting line (i.e., his "Post startingline" distance), or by specifying the distance that he has travelled toward the finish line since reaching the halfway point on the track (i.e., his "Ante finishline" distance).
[In this example, the starting line is analogous to noon, with the halfway point representing midnight, and the racer's location representing the current time.]
Now (changing the focus of our attention slightly), think about this: After the racer finally crosses the finish line, his "Post startingline" distance will be quite large (i.e., it will be a few feet more than the entire length of the race track), even though his actual physical location will be only a few feet away from the starting line where he began.
So, after the racer crosses the finish line, what will be his "location" relative to the starting line? Should the correct answer be based on his "physical" location (i.e., just a few feet away)? Or should the correct answer be based on his "logical" location (i.e., his "Post startingline" distance)? Arguments can be made in favor of either answer.
The Sun's "Location" in the Sky
Just as in the above discussion about the racer, we have to distinguish between the sun's "logical" location in the sky, versus its actual "physical" location. Which means, when we use the terms "AM" and "PM" (in reference to "the" meridian crossing), we need to be aware of which meridian crossing we're talking about. (Yes, there's more than just one to choose from.)
For example, when we say that two hours after midnight (i.e., 2 hours "ante meridiem") can also be expressed as 14 hours "post meridiem", we are not referring to the same meridian crossing in each case. The meridian crossing that "2 AM" refers to is one that will occur ten hours from now, and the meridian crossing that 14 PM refers to is one that has already occurred fourteen hours ago. Therefore the sun's "logical" location (14 hours "post meridiem") would indicate that it has already made a meridian crossing, but its "physical" location (two hours "ante meridiem") would indicate that it hasn't made a meridian crossing yet! [And of course, there's no real discrepancy here. Because in this example, the sun's "logical" location and its "physical" location are each being specified relative to different meridian crossings.]
By now, it should be clear that the letters "AM" and "PM" (by themselves) do not necessarily indicate the actual physical location of the sun, or vice versa. For example, just because the current time may be later than noon (i.e., the physical location of the sun may already be past the meridian), that does not mean that the current time must be a PM time (as most naive individuals seem to think).
"Improper Fractions" and "Improper Times"
When I specify times that use numbers greater than 12 (such as "14 PM", "17 AM", etc.), I am not referring to some kind of 24hour clock (such as "military time"). I'm referring to regular everyday time on a conventional 12hour clock.
Yes, using numbers greater than 12 to refer to time on a 12hour clock may seem a little bizarre at first, because such numbers appears to be "to big". (I.e., they lie outside the "proper" range of values.) But it's really not much different than accepting the concept of "improper fractions" (such as 7/3) in arithmetic. Those kinds of fractions are also "too big". (After all, how can a "fraction" of something be greater than the whole thing? )
Borrowing the word "improper" from the term "improper fractions", perhaps we should refer to times such as: 14 PM, 17 AM, etc. as being "improper times". However, such times are perfectly legitimate times, even though those same times could be expressed more "properly" as: 2 AM, 5 PM, etc.
NOTE: When dealing with an improper time, be aware that the meridian crossing that is being implied may not necessarily be either the very next one or the most recent one. For example, a "PM" time such as "25 PM" clearly refers to the meridian crossing that occurred 25 hours ago (and not to the most recent one that just occurred one hour ago). And an "AM" time such as "17 AM" clearly refers to the midnight that occurred 17 hours ago. But the meridian crossing that it refers to could be the one which will occur 19 hours from now, or it could be the one which will occur 43 hours from now, or... etc. [In fact, this "meridiancrossing ambiguity" applies to any AM time (even though proper AM times usually refer only to the very next meridian crossing). In particular, even the proper time of 12 AM refers not to the meridian crossing that is currently happening, but to one that is still at least 24 hours away.]
A Simple Conversion Rule
After a little thought, we can infer the following simple Conversion Rule: To convert between any AM time and an equivalent PM time, merely add or subtract a 12. For example, two hours past noon could be legitimately expressed as being either 2 PM or 14 AM, sixteen hours past midnight could be expressed as being either 16 PM or 4 AM, etc.
Furthermore, the expressing of time does not have to limit itself to only positive hours (just as a thermometer doesn't have to limit itself to only temperatures that are above zero ). For example, seven o'clock in the evening can also be correctly referred to as being minus five o'clock in the morning  since seven o'clock in the evening is five hours prior to midnight. In other words, 7 o'clock PM is equivalent to negative 5 o'clock AM (as can also be verified by the Conversion Rule.)
[Also, think back to our previous "circular race track" analogy. What would the racer's
"Ante finishline" distance be if he had not yet reached the track's halfway point?]
"Zero" O'Clock
By applying our Conversion Rule, we see that "twelve" o'clock can be expressed equivalently as "zero" o'clock.
(And even without using the Conversion Rule, it should be obvious that noon occurs exactly zero hours past noon, and midnight occurs exactly zero hours past midnight.)
We can refer to noon as: zero o'clock PM
and
We can refer to midnight as: zero o'clock AM
Now, as we've already seen, most of the proper times before noon are AM times, except for the midnight hour. And most of the proper times later than noon are PM times, except for the noon hour itself. But if we were to implement the concept of "zero o'clock" (instead of "twelve o'clock"), then specifying any proper time would become very simple and intuitive:
By using the term "zero o'clock", any proper time before noon would be
an AM time, and any proper time later than noon would be a PM time.*
*(And if we did use the term zero o'clock instead of twelve o'clock, then the defini
tion of a "proper time" would be one that is in the range 0:00:00 through 11:59:59)
This idea of using "zero o'clock" to express noon and midnight makes a whole lot more sense than the way we currently do it. After all, whenever we measure anything (such as the length of a piece of string) with a ruler, we don't start at the ruler's 12inch mark. We start at the zeroinch mark.
(Just imagine how confusing it would be to use a ruler that started with a 12 at the very beginning instead of a zero. Then, if you
tried to measure an item that was only half an inch long, your ruler would indicate that it's twelve and a half inches long!)
And similarly, when we measure the "length of time" that has elapsed since noon or midnight, we shouldn't start at the 12hour mark. Instead, we should start at the zerohour mark.
Can There Be Possible Confusions About AM and PM Now?
Perhaps you are thinking: "If some of us start using the letters "AM" and "PM" correctly now, while the rest of us continue using them incorrectly, won't that lead to a lot of confusion? For example, is someone says "12 PM", how will we know if they're incorrectly referring to noon, or if they're correctly referring to midnight?"
If all of the world's clock makers start labeling every one of their clocks with a zero at the top (instead of a twelve), then there will be no confusion as to what "12 AM" or "12 PM" are referring to, because both of those expressions will become obsolete. Referring to noon and midnight as "zero o'clock" will be an easy way of transitioning from the current ways of expressing time, into the correct ways. And there will be no ambiguities to confuse anyone.
The way that clocks should be labeled.
(Then, any time later than noon would be a "PM" time, and
any time later than midnight would be an "AM" time.)
[What? You say that your existing clock doesn't have a zero on it? Well, that's easy enough to fix. Just scrape off the twelve (which never should have been put there in the first place) and paste on a zero instead! ]
The Wrong System of Specifying Time Started Long Ago
The ancient Romans measured the time of day by creating a sundial, and they used Roman numerals to label the position of the sun's shadow on the dial. But the Roman sundial makers didn't know about the concept of zero, because it hadn't been discovered yet. (It was still many hundreds of years away.) So they called noon "twelve" o'clock. And they labeled the first hour of the day as "I", and they labeled the noon hour as "XII".
And that system of specifying time has (unfortunately) persisted to the present day, where our 12hour clocks all start at "one" o'clock and go up to "twelve" o'clock (instead of starting at "zero" o'clock and going up to "eleven" o'clock like they should).
Still Refuse to Accept the Truths about Noon and Midnight?
Once upon a time, there was a traveler who was trying to reach a certain destination. On his way, he came to a fork in the road. He knew that one direction would take him to his destination, and that the other direction went off into the uncharted wilderness. But he didn't know which path was which.
There was a group of men standing nearby, and so the traveler decided to ask them which path was the correct one. The men (who really didn't know the correct path either, but who pretended to know) all confidently told the traveler to take the path on the left.
After walking down the lefthand path for a while, the traveler eventually realized that he was going the wrong direction. But yet, even though he now knew that he had taken the wrong path, he stubbornly continued going down that path anyway, becoming more and more lost  because he refused to accept the fact that the information that everyone had told to him was incorrect, and because he figured that it would be too much trouble for him to turn around and go back!
(Aren't you perhaps being a little bit like that foolish traveler if you stubbornly refuse to accept the actual truths about noon and midnight?)
As a last resort in trying to avoid accepting the truths about noon and midnight, you might be tempted to suggest: "Well, let's just define the noon hour as being 12 PM, and let's just define the midnight hour as being 12 AM, since that's what everybody says they are."
There are at least two problems with this suggestion. One problem is: Truth is not determined by popular opinion. (Remember what happened to our foolish traveler when he followed the "popular opinion" of the nearby men.)
Also, there was a time when everyone thought that the earth was located at the center of the universe, and that everything went around the earth. (It was referred to as "The Ptolemaic Theory".) But just because everybody's "popular opinion" was that the earth was at the center of the universe, it didn't make the earth actually be at the center. [In fact, the universe really has no "center".]
As an aside, it is a strange trait of humanity: When a society has spent its entire existence exposed to incorrect ways of thinking and then later is shown the correct ways, its first reaction is to deny those new ways, and brand them as being wrong! Galileo found this out when he tried to announce his discovery that everything did not go around the Earth. Society was just unwilling to accept his truths, because those truths were contrary to the conventional ways of thinking (just as are the truths about AM and PM that have been presented in this current essay).
Another problem with the previous suggestion is: You cannot make a false statement become a true statement by merely "defining" it to be true. If the hours of the day had been labeled with meaningless names or symbols, then you could have defined them to mean just about anything you want. But, as we've already indicated, numbers are used instead. Therefore the measurement and specification of time are mathematical processes. And you cannot redefine the laws of mathematics (and thereby introduce needless inconsistencies) for the sole purpose of perpetuating former mistakes in reasoning.
(For further discussion about truth and consistency, see Chapter Zero of my book, "Shades of Reality".)
Conclusion
At this point, the famous story about "The Emperor's New Clothes" comes to mind. It's about two weavers who promise an emperor a new suit of clothes that is invisible to anybody who is stupid or incompetent. When the emperor decides to parade in front his subjects, the townsfolk play along with the pretense of seeing his clothes because they don't want to appear stupid. However a little boy recognizes the real truth and cries out, "But he isn't wearing anything!"
Now that you know the "naked truths" about noon and midnight, what are you going to do? Are you going to openly admit that the noon hour is actually 12 AM and that the midnight hour is actually 12 PM? Or are you going to keep on pretending just the opposite, so that you can continue to conform with all of the other fools who "pretend" that they don't know any better?
Summary: Midnight is actually twelve PM (or equivalently, zero AM), and that designation of "PM" (or "AM") remains in effect for the entire midnight hour (i.e., until one AM). Noon is actually twelve AM (or equivalently, zero PM), and that designation of "AM" (or "PM") remains in effect for the entire noon hour (i.e., until one PM). 
The General Form For Expressing Time
When expressing time, the convention that has been adopted is to write the hours, minutes, and seconds (in decreasing order of significance) separated by colon (":") characters. For example, ten minutes and fifteen seconds past seven o'clock in the evening is expressed as "7:10:15 PM" (since hours are more significant than minutes, and minutes are more significant than seconds).
But years, months, and days are also expressions of "time". And so, when expressing time, it's logical that we should also include those terms as well. And, to be consistent with our existing convention of expressing time, those terms should also be prepended in decreasing order of significance (i.e., year, followed by month, followed by day). Therefore, the General Form that should be used for expressing time is:
Year:Month:Day:Hour:Minute:Second
followed by the appropriate "AM" or "PM" designation. For example, ten minutes and fifteen seconds past seven o'clock in the evening on September 21^{st} of the year 1984 would be expressed as:
1984:09:21:07:10:15 PM
which could also be equivalently written as any of the following "improper" expressions:
1984:09:21:19:10:15 AM
1984:09:20:31:10:15 PM
1984:09:20:43:10:15 AM
1984:09:19:55:10:15 PM
1984:09:21:18:70:15 AM
1984:09:21:18:69:75 AM
 etc. 
Listen (Live) to Mr. Logic's Click Here to Visit the Homepage for the "Thinking Machine" Show Click Here to Play Some of Mr. Logic's Online Riddle Games
Click Here to Read Mr. Logic's 
